Make a room queryable by slug
This commit is contained in:
parent
5b4b393f6b
commit
724f741b51
|
|
@ -1,5 +1,6 @@
|
||||||
import graphene
|
import graphene
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
from graphene import relay
|
||||||
from graphene_django.debug import DjangoDebug
|
from graphene_django.debug import DjangoDebug
|
||||||
|
|
||||||
# Keep this import exactly here, it's necessary for StreamField conversion
|
# 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):
|
class Query(RoomsQuery, ObjectivesQuery, BookQuery, graphene.ObjectType):
|
||||||
# This class will inherit from multiple Queries
|
# This class will inherit from multiple Queries
|
||||||
|
node = relay.Node.Field()
|
||||||
|
|
||||||
if settings.DEBUG:
|
if settings.DEBUG:
|
||||||
debug = graphene.Field(DjangoDebug, name='__debug')
|
debug = graphene.Field(DjangoDebug, name='__debug')
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ from rooms.models import Room
|
||||||
from user.schema import UserGroupNode
|
from user.schema import UserGroupNode
|
||||||
|
|
||||||
|
|
||||||
class RoomNode(DjangoObjectType):
|
class RoomType(DjangoObjectType):
|
||||||
pk = graphene.Int()
|
pk = graphene.Int()
|
||||||
userGroup = UserGroupNode()
|
userGroup = UserGroupNode()
|
||||||
|
|
||||||
|
|
@ -21,5 +21,18 @@ class RoomNode(DjangoObjectType):
|
||||||
|
|
||||||
|
|
||||||
class RoomsQuery(object):
|
class RoomsQuery(object):
|
||||||
room = relay.Node.Field(RoomNode)
|
room = graphene.Field(RoomType,
|
||||||
all_rooms = DjangoFilterConnectionField(RoomNode)
|
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