skillbox/server/notes/schema.py

73 lines
1.5 KiB
Python

import graphene
from graphene import relay
from graphene_django import DjangoObjectType
from notes.models import (
Highlight,
Note,
ContentBlockBookmark,
ModuleBookmark,
ChapterBookmark,
InstrumentBookmark,
)
class NoteNode(DjangoObjectType):
pk = graphene.Int()
class Meta:
model = Note
fields = "__all__"
interfaces = (relay.Node,)
def resolve_pk(self, *args, **kwargs):
return self.id
class ContentBlockBookmarkNode(DjangoObjectType):
uuid = graphene.UUID()
note = graphene.Field(NoteNode)
class Meta:
model = ContentBlockBookmark
fields = "__all__"
filter_fields = []
interfaces = (relay.Node,)
class ModuleBookmarkNode(DjangoObjectType):
note = graphene.Field(NoteNode)
class Meta:
model = ModuleBookmark
fields = "__all__"
class ChapterBookmarkNode(DjangoObjectType):
note = graphene.Field(NoteNode)
class Meta:
model = ChapterBookmark
fields = "__all__"
filter_fields = []
interfaces = (relay.Node,)
class InstrumentBookmarkNode(DjangoObjectType):
uuid = graphene.UUID()
note = graphene.Field(NoteNode)
class Meta:
model = InstrumentBookmark
fields = "__all__"
filter_fields = []
interfaces = (relay.Node,)
class HighlightNode(DjangoObjectType):
class Meta:
model = Highlight
fields = "__all__"
filter_fields = []
interfaces = (relay.Node,)