Clean up module query

This commit is contained in:
Ramon Wenger 2018-10-01 13:08:20 +02:00
parent 6f9666407c
commit f5e163c3cd
3 changed files with 44 additions and 40 deletions

View File

@ -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!) {
} }
} }
} }
}
}

View File

@ -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 || {};
}
} }
} }
} }

View File

@ -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