32 lines
878 B
JavaScript
32 lines
878 B
JavaScript
import CompanyAPI from 'dashboard/api/companies';
|
|
import { createStore } from 'dashboard/store/storeFactory';
|
|
import { throwErrorMessage } from 'dashboard/store/utils/api';
|
|
import camelcaseKeys from 'camelcase-keys';
|
|
|
|
export const useCompaniesStore = createStore({
|
|
name: 'companies',
|
|
type: 'pinia',
|
|
API: CompanyAPI,
|
|
getters: {
|
|
getCompaniesList: state => {
|
|
return camelcaseKeys(state.records, { deep: true });
|
|
},
|
|
},
|
|
actions: () => ({
|
|
async search({ search, page, sort }) {
|
|
this.setUIFlag({ fetchingList: true });
|
|
try {
|
|
const {
|
|
data: { payload, meta },
|
|
} = await CompanyAPI.search(search, page, sort);
|
|
this.records = payload;
|
|
this.setMeta(meta);
|
|
} catch (error) {
|
|
throwErrorMessage(error);
|
|
} finally {
|
|
this.setUIFlag({ fetchingList: false });
|
|
}
|
|
},
|
|
}),
|
|
});
|