1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- import { REST } from 'vuejs/api/rest-axios'
- import { MGQ } from 'vuejs/api/graphql-axios'
- import { print } from 'graphql/language/printer'
- import gql from 'graphql-tag'
- import productsGQL from 'vuejs/api/gql/products.fragment.gql'
- export default {
- namespaced: true,
- // initial state
- state: {
- products_ids: [],
- products: []
- },
- // getters
- getters: {},
- // mutations
- mutations: {
- setProductsIds (state, ids) {
- state.products_ids = ids
- },
- setProducts (state, p) {
- state.products = p
- }
- },
- // actions
- actions: {
- getProducts ({ dispatch, commit, state }) {
- dispatch('loadProductsIds')
- },
- loadProductsIds ({ dispatch, commit, state }) {
- REST.get('/pricing_rest?_format=json', {})
- .then(({ data }) => {
- console.log('getProducts REST: data', data)
- const ids = []
- for (let i = 0; i < data.length; i++) {
- ids.push(data[i].product_id)
- }
- commit('setProductsIds', ids)
- dispatch('loadProducts')
- })
- .catch((error) => {
- console.warn('Issue with pricing', error)
- Promise.reject(error)
- })
- },
- loadProducts ({ dispatch, commit, state }) {
- const ast = gql`{
- products(ids: [${state.products_ids}], lang: "${drupalDecoupled.lang_code}") {
- ...ProductsFields
- }
- }
- ${productsGQL}
- `
- MGQ.post('', { query: print(ast) })
- .then((resp) => {
- console.log('loadProductsGQL resp', resp)
- commit('setProducts', resp.data.data.products)
- })
- .catch(error => {
- console.warn('Issue with loadProducts', error)
- Promise.reject(error)
- })
- }
- }
- }
|