Clean up module query
This commit is contained in:
parent
6f9666407c
commit
f5e163c3cd
|
|
@ -1,8 +1,6 @@
|
||||||
#import "./fragments/contentBlockParts.gql"
|
#import "./fragments/contentBlockParts.gql"
|
||||||
query ModulesQuery($slug: String!) {
|
query ModulesQuery($slug: String!) {
|
||||||
modules(slug: $slug) {
|
module(slug: $slug) {
|
||||||
edges {
|
|
||||||
node {
|
|
||||||
id
|
id
|
||||||
slug
|
slug
|
||||||
title
|
title
|
||||||
|
|
@ -42,5 +40,3 @@ query ModulesQuery($slug: String!) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -20,18 +20,15 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
apollo: {
|
apollo: {
|
||||||
moduleQuery() {
|
module() {
|
||||||
return {
|
return {
|
||||||
query: MODULE_DETAILS_QUERY,
|
query: MODULE_DETAILS_QUERY,
|
||||||
variables: {
|
variables: {
|
||||||
slug: store.state.moduleSlug
|
slug: store.state.moduleSlug
|
||||||
},
|
},
|
||||||
manual: true,
|
update(data) {
|
||||||
result({data, loading, networkStatus}) {
|
|
||||||
if (!loading) {
|
|
||||||
const cleanedData = this.$getRidOfEdges(data);
|
const cleanedData = this.$getRidOfEdges(data);
|
||||||
this.module = cleanedData.modules[0] || {};
|
return cleanedData.module || {};
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ from graphene import relay
|
||||||
from graphene_django import DjangoObjectType
|
from graphene_django import DjangoObjectType
|
||||||
from graphene_django.filter import DjangoFilterConnectionField
|
from graphene_django.filter import DjangoFilterConnectionField
|
||||||
|
|
||||||
|
from api.utils import get_object
|
||||||
from book.models import Book, Topic, Module, Chapter, ContentBlock
|
from book.models import Book, Topic, Module, Chapter, ContentBlock
|
||||||
from book.schema.queries import BookNode, TopicNode, ModuleNode, ContentBlockNode
|
from book.schema.queries import BookNode, TopicNode, ModuleNode, ContentBlockNode
|
||||||
|
|
||||||
|
|
@ -49,7 +50,7 @@ class VisibilityNode(DjangoObjectType):
|
||||||
class BookQuery(object):
|
class BookQuery(object):
|
||||||
book = relay.Node.Field(BookNode)
|
book = relay.Node.Field(BookNode)
|
||||||
topic = relay.Node.Field(TopicNode)
|
topic = relay.Node.Field(TopicNode)
|
||||||
module = relay.Node.Field(ModuleNode)
|
module = graphene.Field(ModuleNode, slug=graphene.String())
|
||||||
chapter = relay.Node.Field(FilteredChapterNode)
|
chapter = relay.Node.Field(FilteredChapterNode)
|
||||||
content_block = relay.Node.Field(ContentBlockNode)
|
content_block = relay.Node.Field(ContentBlockNode)
|
||||||
|
|
||||||
|
|
@ -69,3 +70,13 @@ class BookQuery(object):
|
||||||
|
|
||||||
def resolve_chapters(self, *args, **kwargs):
|
def resolve_chapters(self, *args, **kwargs):
|
||||||
return Chapter.objects.filter(**kwargs).live()
|
return Chapter.objects.filter(**kwargs).live()
|
||||||
|
|
||||||
|
def resolve_module(self, info, **kwargs):
|
||||||
|
slug = kwargs.get('slug')
|
||||||
|
id = kwargs.get('id')
|
||||||
|
|
||||||
|
if id is not None:
|
||||||
|
return get_object(Module, id)
|
||||||
|
if slug is not None:
|
||||||
|
return Module.objects.get(slug=slug)
|
||||||
|
return None
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue