| import api from '@/store/api'; |
| import i18n from '@/i18n'; |
| |
| const ChassisStore = { |
| namespaced: true, |
| state: { |
| chassis: [], |
| }, |
| getters: { |
| chassis: (state) => state.chassis, |
| }, |
| mutations: { |
| setChassisInfo: (state, data) => { |
| state.chassis = data.map((chassis) => { |
| const { |
| Id, |
| Status = {}, |
| PartNumber, |
| SerialNumber, |
| ChassisType, |
| Manufacturer, |
| PowerState, |
| LocationIndicatorActive, |
| AssetTag, |
| Model, |
| MaxPowerWatts, |
| MinPowerWatts, |
| Name, |
| Location, |
| } = chassis; |
| |
| return { |
| id: Id, |
| health: Status.Health, |
| partNumber: PartNumber, |
| serialNumber: SerialNumber, |
| chassisType: ChassisType, |
| manufacturer: Manufacturer, |
| powerState: PowerState, |
| statusState: Status.State, |
| healthRollup: Status.HealthRollup, |
| assetTag: AssetTag, |
| model: Model, |
| maxPowerWatts: MaxPowerWatts, |
| minPowerWatts: MinPowerWatts, |
| name: Name, |
| identifyLed: LocationIndicatorActive, |
| uri: chassis['@odata.id'], |
| locationNumber: Location?.PartLocation?.ServiceLabel, |
| }; |
| }); |
| }, |
| }, |
| actions: { |
| async getChassisInfo({ commit }) { |
| return await api |
| .get('/redfish/v1/Chassis') |
| .then(({ data: { Members = [] } }) => |
| Members.map((member) => api.get(member['@odata.id'])), |
| ) |
| .then((promises) => api.all(promises)) |
| .then((response) => { |
| const data = response.map(({ data }) => data); |
| commit('setChassisInfo', data); |
| }) |
| .catch((error) => console.log(error)); |
| }, |
| async updateIdentifyLedValue({ dispatch }, led) { |
| const uri = led.uri; |
| const updatedIdentifyLedValue = { |
| LocationIndicatorActive: led.identifyLed, |
| }; |
| return await api |
| .patch(uri, updatedIdentifyLedValue) |
| .then(() => dispatch('getChassisInfo')) |
| .catch((error) => { |
| dispatch('getChassisInfo'); |
| 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 ChassisStore; |