Use set navigation instead of additional fields with resolvers

This commit is contained in:
Pawel Kowalski 2018-08-23 17:38:32 +02:00
parent 585eccbe12
commit bf913b0417
5 changed files with 10 additions and 11 deletions

View File

@ -5,7 +5,7 @@ query RoomEntriesQuery($slug: String!) {
slug slug
appearance appearance
pk pk
roomEntries { roomentrySet {
edges { edges {
node { node {
id id

View File

@ -5,7 +5,7 @@ query RoomEntriesQuery($slug: String!) {
slug slug
appearance appearance
pk pk
roomEntries { roomentrySet {
edges { edges {
node { node {
id id

View File

@ -5,7 +5,7 @@ query RoomsQuery {
slug slug
appearance appearance
pk pk
roomEntries { roomentrySet {
edges { edges {
node { node {
id id

View File

@ -23,7 +23,6 @@ class RoomEntryNode(DjangoObjectType):
class RoomType(DjangoObjectType): class RoomType(DjangoObjectType):
pk = graphene.Int() pk = graphene.Int()
user_group = UserGroupNode() user_group = UserGroupNode()
room_entries = DjangoFilterConnectionField(RoomEntryNode)
class Meta: class Meta:
model = Room model = Room
@ -35,10 +34,7 @@ class RoomType(DjangoObjectType):
class RoomsQuery(object): class RoomsQuery(object):
room = graphene.Field(RoomType, room = graphene.Field(RoomType, slug=graphene.String(), id=graphene.Int(), appearance=graphene.String())
slug=graphene.String(),
id=graphene.Int(),
appearance=graphene.String())
room_entry = relay.Node.Field(RoomEntryNode) room_entry = relay.Node.Field(RoomEntryNode)
all_rooms = DjangoFilterConnectionField(RoomType) all_rooms = DjangoFilterConnectionField(RoomType)
@ -46,10 +42,10 @@ class RoomsQuery(object):
def resolve_room(self, info, **kwargs): def resolve_room(self, info, **kwargs):
slug = kwargs.get('slug') slug = kwargs.get('slug')
id = kwargs.get('id') room_id = kwargs.get('id')
if id is not None: if room_id is not None:
return Room.objects.get(pk=id) return Room.objects.get(pk=room_id)
if slug is not None: if slug is not None:
return Room.objects.get(slug=slug) return Room.objects.get(slug=slug)
return None return None

View File

@ -29,3 +29,6 @@ class UserGroupNode(DjangoObjectType):
def resolve_pk(self, *args, **kwargs): def resolve_pk(self, *args, **kwargs):
return self.id return self.id
def resolve_users(self, *args, **kwargs):
return self.users