Refactor schema
This commit is contained in:
parent
3f313ddb12
commit
a77d8ceee4
|
|
@ -1,7 +1,7 @@
|
|||
import graphene
|
||||
from graphene import relay
|
||||
|
||||
from books.schema.nodes import ModuleNode, TopicNode
|
||||
from books.schema.nodes import ModuleNode, TopicNode, ChapterNode, SnapshotChapterNode
|
||||
|
||||
|
||||
class NodeConnection(relay.Connection):
|
||||
|
|
@ -20,6 +20,7 @@ class NodeConnection(relay.Connection):
|
|||
# nodes = graphene.List(TopicNode)
|
||||
|
||||
"""
|
||||
|
||||
class Meta:
|
||||
abstract = True
|
||||
|
||||
|
|
@ -42,3 +43,27 @@ class TopicConnection(NodeConnection):
|
|||
class ModuleConnection(NodeConnection):
|
||||
class Meta:
|
||||
node = ModuleNode
|
||||
|
||||
|
||||
class SnapshotChapterEdge:
|
||||
description_visible = graphene.Boolean()
|
||||
title_visible = graphene.Boolean()
|
||||
|
||||
@staticmethod
|
||||
def resolve_description_visible(parent, info, **kwargs):
|
||||
return parent.node.description_visible
|
||||
|
||||
@staticmethod
|
||||
def resolve_title_visible(parent, info, **kwargs):
|
||||
return parent.node.title_visible
|
||||
|
||||
@staticmethod
|
||||
def resolve_node(parent, info, **kwargs):
|
||||
return parent.node.chapter
|
||||
|
||||
|
||||
class ChapterSnapshotConnection(NodeConnection):
|
||||
class Meta:
|
||||
node = SnapshotChapterNode
|
||||
|
||||
Edge = SnapshotChapterEdge
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ from api.utils import get_object
|
|||
from core.logger import get_logger
|
||||
|
||||
from ..models import Book, Topic, Module, Chapter
|
||||
from .nodes import ContentBlockNode, ChapterNode, ModuleNode, TopicNode, BookNode
|
||||
from .nodes import ContentBlockNode, ChapterNode, ModuleNode, TopicNode
|
||||
from .connections import TopicConnection, ModuleConnection
|
||||
|
||||
logger = get_logger(__name__)
|
||||
|
|
@ -14,17 +14,13 @@ logger = get_logger(__name__)
|
|||
|
||||
class BookQuery(object):
|
||||
node = relay.Node.Field()
|
||||
book = relay.Node.Field(BookNode)
|
||||
topic = graphene.Field(TopicNode, slug=graphene.String())
|
||||
module = graphene.Field(ModuleNode, slug=graphene.String(), id=graphene.ID())
|
||||
chapter = relay.Node.Field(ChapterNode)
|
||||
content_block = relay.Node.Field(ContentBlockNode)
|
||||
|
||||
books = DjangoFilterConnectionField(BookNode)
|
||||
topics = DjangoFilterConnectionField(TopicNode)
|
||||
# topics = relay.ConnectionField(TopicConnection)
|
||||
# modules = relay.ConnectionField(ModuleConnection)
|
||||
modules = DjangoFilterConnectionField(ModuleNode)
|
||||
topics = relay.ConnectionField(TopicConnection)
|
||||
modules = relay.ConnectionField(ModuleConnection)
|
||||
chapters = DjangoFilterConnectionField(ChapterNode)
|
||||
|
||||
def resolve_books(self, *args, **kwargs):
|
||||
|
|
|
|||
Loading…
Reference in New Issue