skillbox/server/books/schema/mutations/topic.py

29 lines
637 B
Python

import graphene
from graphene import relay
from api.utils import get_object
from books.models import Topic
from books.schema.queries import TopicNode
class UpdateLastTopic(relay.ClientIDMutation):
class Input:
# todo: use slug here too
id = graphene.ID()
topic = graphene.Field(TopicNode)
@classmethod
def mutate_and_get_payload(cls, root, info, **args):
user = info.context.user
id = args.get('id')
topic = get_object(Topic, id)
if not topic:
raise Topic.DoesNotExist
user.last_topic = topic
user.save()
return cls(topic=topic)