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 Assemblies: [ 50 { 51 MemberId: led.memberId, 52 LocationIndicatorActive: led.identifyLed, 53 }, 54 ], 55 }; 56 57 return await api 58 .patch(uri, updatedIdentifyLedValue) 59 .then(() => { 60 if (led.identifyLed) { 61 return i18n.global.t( 62 'pageInventory.toast.successEnableIdentifyLed', 63 ); 64 } else { 65 return i18n.global.t( 66 'pageInventory.toast.successDisableIdentifyLed', 67 ); 68 } 69 }) 70 .catch((error) => { 71 dispatch('getAssemblyInfo'); 72 console.log('error', error); 73 if (led.identifyLed) { 74 throw new Error( 75 i18n.global.t('pageInventory.toast.errorEnableIdentifyLed'), 76 ); 77 } else { 78 throw new Error( 79 i18n.global.t('pageInventory.toast.errorDisableIdentifyLed'), 80 ); 81 } 82 }); 83 }, 84 }, 85}; 86 87export default AssemblyStore; 88