UNPKG

@api-platform/client-generator

Version:

Generate apps built with Next, Nuxt, Quasar, React, React Native, Vue or Vuetify for any API documented using Hydra or OpenAPI

55 lines (46 loc) 1.43 kB
import SubmissionError from '../../../error/SubmissionError'; import fetch from '../../../utils/fetch'; export const resetCommon = ({ commit }, { types }) => { commit(types.RESET); }; export const retrieveCommon = ({ commit }, dest, { types }) => { commit(types.TOGGLE_LOADING); return fetch(dest) .then(response => response.json()) .then(data => { commit(types.TOGGLE_LOADING); commit(types.SET_RETRIEVED, data); }) .catch(e => { commit(types.TOGGLE_LOADING); commit(types.SET_ERROR, e.message); }); }; export const updateCommon = ({ commit, state }, { values, ep }, { types }) => { commit(types.SET_ERROR, ''); commit(types.TOGGLE_LOADING); return fetch( { id: (state.retrieved && state.retrieved['@id']) || values['@id'], ep }, { method: 'PUT', headers: new Headers({ 'Content-Type': 'application/ld+json' }), body: JSON.stringify(values), } ) .then(response => response.json()) .then(data => { commit(types.TOGGLE_LOADING); commit(types.SET_UPDATED, data); }) .catch(e => { commit(types.TOGGLE_LOADING); if (e instanceof SubmissionError) { commit(types.SET_VIOLATIONS, e.errors); // eslint-disable-next-line commit(types.SET_ERROR, e.errors._error); return; } // eslint-disable-next-line commit(types.SET_ERROR, e.message); }); };