UNPKG

@mee4dy/crud

Version:

Create a backend and frontend in 5 minutes! With our powerful full stack crud system, customize it to suit you.

85 lines (66 loc) 1.97 kB
import { replacePK } from '../../common/helpers/pk.helper'; import { FormTypesEnum } from './enums/form-types.enum'; export default { async fetch({ state, commit, getters, dispatch }, options) { if (options?.pk) { commit('setPK', options?.pk); } if (getters.getType !== FormTypesEnum.edit) { return; } if (options?.reset === undefined || options.reset) { dispatch('reset', true); } const endpoint = getters.getEndpoint('fetch'); if (!endpoint) { return console.error('Endpoint for "fetch" not found! Please configure CrudStoreForm'); } try { commit('setLoading', true); const url = replacePK(endpoint, getters.getPK); const response = await this.$axios.get(url); let itemData = response?.data?.data?.item; if (typeof state.prepareData === 'function') { itemData = state.prepareData(itemData); } if (itemData) { commit('setDataDefault', itemData); commit('setData', itemData); } return response?.data; } catch (e) { console.log(e); } finally { commit('setLoading', false); } }, async submit({ commit, dispatch, getters }) { const endpoint = getters.getEndpointSubmit; if (!endpoint) { return console.error('Endpoint for "submit" not found! Please configure CrudStoreForm'); } const url = replacePK(endpoint, getters.getPK); const pk = getters.getPK; const data = getters.getData; try { commit('setSending', true); const response = await this.$axios.post(url, { pk: pk || undefined, data: data, }); return response?.data; } catch (e) { console.log(e); } finally { commit('setSending', false); } }, reset({ commit, getters }, force = false) { let data = getters.getDataDefault; if (force) { data = {}; } commit('setData', data); return data; }, };