1import api from '@/store/api'; 2import i18n from '@/i18n'; 3 4const AssemblyStore = { 5 namespaced: true, 6 state: { 7 assemblies: null, 8 }, 9 getters: { 10 assemblies: (state) => state.assemblies, 11 }, 12 mutations: { 13 setAssemblyInfo: (state, data) => { 14 state.assemblies = data.map((assembly) => { 15 const { 16 MemberId, 17 PartNumber, 18 SerialNumber, 19 SparePartNumber, 20 Model, 21 Name, 22 Location, 23 LocationIndicatorActive, 24 } = assembly; 25 return { 26 id: MemberId, 27 partNumber: PartNumber, 28 serialNumber: SerialNumber, 29 sparePartNumber: SparePartNumber, 30 model: Model, 31 name: Name, 32 locationNumber: Location?.PartLocation?.ServiceLabel, 33 identifyLed: LocationIndicatorActive, 34 uri: assembly['@odata.id'], 35 }; 36 }); 37 }, 38 }, 39 actions: { 40 async getAssemblyInfo({ commit }) { 41 return await api 42 .get('/redfish/v1/Chassis/chassis/Assembly') 43 .then(({ data }) => commit('setAssemblyInfo', data?.Assemblies)) 44 .catch((error) => console.log(error)); 45 }, 46 async updateIdentifyLedValue({ dispatch }, led) { 47 const uri = led.uri; 48 const updatedIdentifyLedValue = { 49 LocationIndicatorActive: led.identifyLed, 50 }; 51 return await api.patch(uri, updatedIdentifyLedValue).catch((error) => { 52 dispatch('getAssemblyInfo'); 53 console.log('error', error); 54 if (led.identifyLed) { 55 throw new Error(i18n.t('pageInventory.toast.errorEnableIdentifyLed')); 56 } else { 57 throw new Error( 58 i18n.t('pageInventory.toast.errorDisableIdentifyLed') 59 ); 60 } 61 }); 62 }, 63 }, 64}; 65 66export default AssemblyStore; 67