blob: c6ab7cf709dc4151bc55712b7cd343cb7c3e567b [file] [log] [blame]
import api from '@/store/api';
import i18n from '@/i18n';
const AssemblyStore = {
namespaced: true,
state: {
assemblies: null,
},
getters: {
assemblies: (state) => state.assemblies,
},
mutations: {
setAssemblyInfo: (state, data) => {
state.assemblies = data.map((assembly) => {
const {
MemberId,
PartNumber,
SerialNumber,
SparePartNumber,
Model,
Name,
Location,
LocationIndicatorActive,
} = assembly;
return {
id: MemberId,
partNumber: PartNumber,
serialNumber: SerialNumber,
sparePartNumber: SparePartNumber,
model: Model,
name: Name,
locationNumber: Location?.PartLocation?.ServiceLabel,
identifyLed: LocationIndicatorActive,
uri: assembly['@odata.id'],
};
});
},
},
actions: {
async getAssemblyInfo({ commit }) {
return await api
.get('/redfish/v1/Chassis/chassis/Assembly')
.then(({ data }) => commit('setAssemblyInfo', data?.Assemblies))
.catch((error) => console.log(error));
},
async updateIdentifyLedValue({ dispatch }, led) {
const uri = led.uri;
const updatedIdentifyLedValue = {
Assemblies: [
{
MemberId: led.memberId,
LocationIndicatorActive: led.identifyLed,
},
],
};
return await api.patch(uri, updatedIdentifyLedValue).catch((error) => {
dispatch('getAssemblyInfo');
console.log('error', error);
if (led.identifyLed) {
throw new Error(i18n.t('pageInventory.toast.errorEnableIdentifyLed'));
} else {
throw new Error(
i18n.t('pageInventory.toast.errorDisableIdentifyLed'),
);
}
});
},
},
};
export default AssemblyStore;