commerce-vuex
Version:
Commerce vuex module
140 lines (118 loc) • 5.08 kB
JavaScript
import { snakeCase } from 'lodash'
import createHumps from 'lodash-humps/lib/createHumps'
import { getField, updateField } from 'vuex-map-fields'
import unclaimedBusinessService from './unclaimed_business.service'
import humps from 'lodash-humps'
const { doPostOne } = unclaimedBusinessService
const snakes = createHumps(snakeCase)
export default {
namespaced: true,
state: {
inProgress: true,
externalOne:null,
},
getters: {
getField,
},
mutations: {
updateField,
inProgress(state, yesOrNo) {
state.inProgress = yesOrNo
},
setExternalOne(state, one) {
state.externalOne = one;
},
},
actions: {
newExternal({ commit },{appId,businessEntityId}) {
commit('inProgress', false);
commit('setExternalOne', {
"companyName": "",
"brand": null,
"countryId": [],
"naics_code":'',
"active_profiles":[],
"appId":appId,
"businessEntityId":businessEntityId
});
},
unclaimedBusinessPost: async ({ commit, state }) => {
commit('inProgress', true);
try {
let businessDetails=
{"app_id":state.externalOne.appId,"name":state.externalOne.companyName,"active_profiles":state.externalOne.activeProfiles,"owner_id":state.externalOne.businessEntityId}
;
//let barndObj=[];
/* let barndIds=[];
state.externalOne.brand.filter((data) =>{
// barndObj.push({'app_id': state.externalOne.appId,'name':data.name });
barndIds.push(data.id);
}
);*/
let businessBrand = null;// barndObj;
let businessServices =[{
"app_id":state.externalOne.appId,
"name":state.externalOne.companyName,
"naics_code":state.externalOne.naicsCode,
"provisionings":{"contract_type": "distributor","retailer_connection_approval":"both","retailer_connection_fee_bearer":"brand-and-distributor"},
"brand_id":state.externalOne.brand,
"countries_iso3":state.externalOne.countryId
}];
let output= await doPostOne( { businessDetails: businessDetails,businessBrand:businessBrand,businessServices:businessServices } );
commit('inProgress', false);
return ({ 'output': humps(output )});
}
// eslint-disable-next-line no-useless-catch
catch (err) {
throw err
}
finally {
commit('inProgress', false)
}
},
unclaimedBrandOwnerPost: async ({ commit, state },{brandName}) => {
commit('inProgress', true);
try {
let businessDetails=
{"app_id":state.externalOne.appId,"name":state.externalOne.companyName,"active_profiles":state.externalOne.activeProfiles,"owner_id":state.externalOne.businessEntityId}
;
//let barndObj=[];
// let barndIds=null;
let businessBrand = {"app_id":state.externalOne.appId, "name":brandName}
let businessServices =[{
"app_id":state.externalOne.appId,
"name":state.externalOne.companyName,
"naics_code":state.externalOne.naicsCode,
"provisionings":null,
"brand_id":state.externalOne.barnd,
"countries_iso3":state.externalOne.countryId
}];
let output= await doPostOne( { businessDetails: businessDetails,businessBrand:businessBrand,businessServices:businessServices } );
commit('inProgress', false);
return ({ 'output': humps(output )});
}
// eslint-disable-next-line no-useless-catch
catch (err) {
throw err
}
finally {
commit('inProgress', false)
}
},
createUnclaimedNewBusiness: async ({ commit, state },{ businessDetails,businessBrand,businessServices }) => {
commit('inProgress', true);
try {
let output= await doPostOne( { businessDetails,businessBrand,businessServices } );
commit('inProgress', false);
return ({ 'output': humps(output )});
}
// eslint-disable-next-line no-useless-catch
catch (err) {
throw err
}
finally {
commit('inProgress', false)
}
}
}
}