From ea073a29acff8bf13688ece779e2362c46ef93d2 Mon Sep 17 00:00:00 2001 From: Pawel Kowalski Date: Fri, 17 Aug 2018 18:08:15 +0200 Subject: [PATCH] Replace specific edge/node removal with a generic solution: move into globally available function. - Why is it not possible to change data with apollo link? --- client/src/components/Module.vue | 2 +- client/src/components/ObjectiveGroup.vue | 2 +- client/src/graphql/client.js | 19 +++++++++- client/src/pages/module.vue | 44 +++++++++++++----------- 4 files changed, 43 insertions(+), 24 deletions(-) diff --git a/client/src/components/Module.vue b/client/src/components/Module.vue index 64030ada..6c21777a 100644 --- a/client/src/components/Module.vue +++ b/client/src/components/Module.vue @@ -8,7 +8,7 @@

Lernziele

- +

1.1 Lehrbeginn

diff --git a/client/src/components/ObjectiveGroup.vue b/client/src/components/ObjectiveGroup.vue index 9f9aeaf8..96a8d9fe 100644 --- a/client/src/components/ObjectiveGroup.vue +++ b/client/src/components/ObjectiveGroup.vue @@ -3,7 +3,7 @@

{{group.title}}

diff --git a/client/src/graphql/client.js b/client/src/graphql/client.js index 37e60326..15d213d6 100644 --- a/client/src/graphql/client.js +++ b/client/src/graphql/client.js @@ -13,6 +13,21 @@ const httpLink = new HttpLink({ } }) +const purgeEdgesNodes = new ApolloLink((operation, forward) => { + return forward(operation).map(response => { + // if (response.data.user.lastLoginDate) { + // response.data.user.lastLoginDate = new Date( + // response.data.user.lastLoginDate + // ); + // } + // data.data.modules = ['is_me'] + // response.data.modules = ['is_me'] + // debugger + + return response; + }); +}); + const consoleLink = new ApolloLink((operation, forward) => { console.log(`starting request for ${operation.operationName}`); @@ -37,14 +52,16 @@ const consoleLink = new ApolloLink((operation, forward) => { return forward(operation).map((data) => { console.log(`ending request for ${operation.operationName}`); + // data.data.modules = ['is_me'] // debugger // let data = getRidOfEdges(inData) // return resultData; + return data }) }) -const composedLink = ApolloLink.from([consoleLink, httpLink]); +const composedLink = ApolloLink.from([purgeEdgesNodes, consoleLink, httpLink]); // Create the apollo client export default new ApolloClient({ diff --git a/client/src/pages/module.vue b/client/src/pages/module.vue index 925dffc4..424d03b2 100644 --- a/client/src/pages/module.vue +++ b/client/src/pages/module.vue @@ -39,29 +39,31 @@ } } - // Result of edges/nodes removal - // - var purgedData = getRidOfEdges(data) - // debugger - if (!loading) { - const node = data.modules.edges[0].node; - this.module = { - ...node, - objectiveGroups: mapNodes(node.objectivegroupSet, node => { - return { - ...node, - objectives: mapNodes(node.objectiveSet, node => node) - }; - }), - chapters: mapNodes(node.chapters, node => { - return { - ...node, - contentBlocks: mapNodes(node.contentBlocks, node => node) - } - }) - }; + // Result of edges/nodes removal + // + const purgedData = getRidOfEdges(data) + this.module = purgedData.modules[0] } + + // if (!loading) { + // const node = data.modules.edges[0].node; + // this.module = { + // ...node, + // objectiveGroups: mapNodes(node.objectivegroupSet, node => { + // return { + // ...node, + // objectives: mapNodes(node.objectiveSet, node => node) + // }; + // }), + // chapters: mapNodes(node.chapters, node => { + // return { + // ...node, + // contentBlocks: mapNodes(node.contentBlocks, node => node) + // } + // }) + // }; + // } } } },