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