Skip to content
Snippets Groups Projects

Draft: Resolve "[3.0] Introduce Graphene/GraphQL"

Closed Nik | Klampfradler requested to merge 700-3-0-introduce-graphene-graphql into master
1 file
+ 20
2
Compare changes
  • Side-by-side
  • Inline
+ 20
2
@@ -3,8 +3,13 @@ from graphene_django import DjangoObjectType
from graphene_django.forms.mutation import DjangoModelFormMutation
from .forms import PersonForm
from .models import Person
from .util.core_helpers import get_app_module, get_app_packages
from .models import Notification, Person
from .util.core_helpers import get_app_module, get_app_packages, has_person
class NotificationType(DjangoObjectType):
class Meta:
model = Notification
class PersonType(DjangoObjectType):
@@ -22,8 +27,15 @@ class PersonMutation(DjangoModelFormMutation):
class Query(graphene.ObjectType):
ping = graphene.String(default_value="pong")
notifications = graphene.List(NotificationType)
persons = graphene.List(PersonType)
person_by_id = graphene.Field(PersonType, id=graphene.ID())
who_am_i = graphene.Field(PersonType)
def resolve_notifications(root, info, **kwargs):
# FIXME do permission stuff
return Notification.objects.all()
def resolve_persons(root, info, **kwargs):
# FIXME do permission stuff
@@ -32,6 +44,12 @@ class Query(graphene.ObjectType):
def resolve_person_by_id(root, info, id):
return Person.objects.get(pk=id)
def resolve_who_am_i(root, info, **kwargs):
if has_person(info.context.user):
return info.context.user.person
else:
return None
class Mutation(graphene.ObjectType):
update_person = PersonMutation.Field()
Loading