Make a room queryable by slug
This commit is contained in:
parent
5b4b393f6b
commit
724f741b51
|
|
@ -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')
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue