diff --git a/src/api/queries/TextsDepart.gql b/src/api/queries/TextsDepart.gql new file mode 100644 index 0000000..61bc8d3 --- /dev/null +++ b/src/api/queries/TextsDepart.gql @@ -0,0 +1,6 @@ +query TextsDepart { + textsdepart { + id, + title + } +} diff --git a/src/api/queries/index.js b/src/api/queries/index.js new file mode 100644 index 0000000..fa65e28 --- /dev/null +++ b/src/api/queries/index.js @@ -0,0 +1,3 @@ +export { default as TextsDepart } from './TextsDepart.gql' +export { default as TextRef } from './TextRef.gql' +export { default as TextdepartRecursive } from './TextdepartRecursive.gql' diff --git a/src/store/index.js b/src/store/index.js index 0a30739..c2b3c72 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -1,56 +1,13 @@ import Vue from 'vue' import Vuex from 'vuex' -import api from '@/api' -import { print } from 'graphql/language/printer' -import TextRef from '@/api/queries/TextRef.gql' -import TextdepartRecursive from '@/api/queries/TextdepartRecursive.gql' +import texts from './modules/texts' Vue.use(Vuex) - export default new Vuex.Store({ modules: { - }, - - state: { - }, - - mutations: { - }, - - actions: { - 'GET_TEXT' ({ state }, { id }) { - return api.post('', { query: print(TextRef), variables: { id } }).then(data => (data.data.data)) - }, - - 'GET_TREE' ({ dispatch }, id) { - return api.post('', { query: print(TextdepartRecursive), variables: { id } }).then(({ data }) => { - return data.data.textref - }) - } + texts } }) - -// Temp data processing -function parse (d, originalId) { - const child = { - name: d.title, - type: d.__typename.toLowerCase(), - class: 'family-' + d.familles[0].id - } - if (d.id === originalId) { - child.class += ' first' - } - let children = [] - for (const key of ['text_en_rebond', 'text_produits']) { - if (d[key]) { - children = [...children, ...d[key].filter(text => text.id !== originalId)] - } - } - if (children.length) { - child.children = children.map(child => parse(child, originalId)) - } - return child -} diff --git a/src/store/modules/corpus.js b/src/store/modules/corpus.js deleted file mode 100644 index 95d279b..0000000 --- a/src/store/modules/corpus.js +++ /dev/null @@ -1,24 +0,0 @@ - -export default { - namespaced: true, - // initial state - state: { - // items: [], - }, - // getters - getters: { - - }, - // mutations - mutations: { - - }, - // actions - actions: { - - }, - // methods - methods: { - - } -} diff --git a/src/store/modules/texts.js b/src/store/modules/texts.js new file mode 100644 index 0000000..c1537ad --- /dev/null +++ b/src/store/modules/texts.js @@ -0,0 +1,47 @@ +import api from '@/api' +import { print } from 'graphql/language/printer' +import { + TextsDepart, TextRef, TextdepartRecursive +} from '@/api/queries' + + +export default { + state: { + textsDepart: undefined + }, + + mutations: { + 'SET_TEXTS_DEPART' (state, texts) { + state.textsDepart = texts + } + }, + + actions: { + 'GET_TEXTS_DEPART' ({ state, commit }) { + return api.post('', { query: print(TextsDepart) }).then(({ data }) => { + commit('SET_TEXTS_DEPART', data.data.textsdepart) + return state.textsDepart + }) + }, + + 'GET_TEXT' ({ state }, { id }) { + return api.post('', { query: print(TextRef), variables: { id } }) + .then(data => (data.data.data)) + }, + + 'GET_TREE' ({ dispatch }, id) { + return api.post('', { query: print(TextdepartRecursive), variables: { id } }) + .then(({ data }) => (data.data.textref)) + } + }, + + getters: { + textsDepartOptions: state => { + if (!state.textsDepart) return undefined + return state.textsDepart.map(({ id, title }) => ({ + value: id, + text: `(${id}) ${title}` + })) + } + } +}