Make a room queryable by slug

This commit is contained in:
Ramon Wenger 2018-08-23 16:03:13 +02:00
parent 5b4b393f6b
commit 724f741b51
2 changed files with 18 additions and 3 deletions

View File

@ -1,5 +1,6 @@
import graphene
from django.conf import settings
from graphene import relay
from graphene_django.debug import DjangoDebug
# Keep this import exactly here, it's necessary for StreamField conversion
@ -12,6 +13,7 @@ from rooms.schema import RoomsQuery
class Query(RoomsQuery, ObjectivesQuery, BookQuery, graphene.ObjectType):
# This class will inherit from multiple Queries
node = relay.Node.Field()
if settings.DEBUG:
debug = graphene.Field(DjangoDebug, name='__debug')

View File

@ -7,7 +7,7 @@ from rooms.models import Room
from user.schema import UserGroupNode
class RoomNode(DjangoObjectType):
class RoomType(DjangoObjectType):
pk = graphene.Int()
userGroup = UserGroupNode()
@ -21,5 +21,18 @@ class RoomNode(DjangoObjectType):
class RoomsQuery(object):
room = relay.Node.Field(RoomNode)
all_rooms = DjangoFilterConnectionField(RoomNode)
room = graphene.Field(RoomType,
slug=graphene.String(),
id=graphene.Int(),
appearance=graphene.String())
all_rooms = DjangoFilterConnectionField(RoomType)
def resolve_room(self, info, **kwargs):
slug = kwargs.get('slug')
id = kwargs.get('id')
if id is not None:
return Room.objects.get(pk=id)
if slug is not None:
return Room.objects.get(slug=slug)
return None