import api from '@/store/api'; import i18n from '@/i18n'; const MotherboardStore = { namespaced: true, state: { motherboard: [], motherboardLastHour: [], limits: [], }, getters: { motherboard: (state) => state.motherboard, motherboardLastHour: (state) => state.motherboardLastHour, limits: (state) => state.limits, }, mutations: { setMotherboardDynamic: (state, data) => { state.motherboard = data; }, setMotherboardDynamicLastHour: (state, data) => { state.motherboardLastHour = data; }, setLimits: (state, data) => { state.limits = data; }, }, actions: { async patchLimits({ dispatch }, { warning, groups }) { return await api .patch('/redfish/v1/Chassis/SILA_Baseboard/Thermal', { Temperatures: groups.map((group) => { return { MemberId: group, UpperThresholdNonCritical: warning, }; }), }) .catch((error) => { console.log(error); throw new Error(i18n.t('pageMotherboard.toast.errorLimitUpdate')); }) .finally(() => dispatch('getLimits')); }, async getLimits({ commit }) { return await api .get('/redfish/v1/Chassis/SILA_Baseboard/Thermal') .then(({ data: { Temperatures = [] } }) => { commit('setLimits', Temperatures); }) .catch((error) => console.log(error)); }, async getMotherboardDynamic({ commit }, { lastHour }) { let url = null; if (lastHour) { url = '/redfish/v1/TelemetryService/MetricReports/other_temp&period=last_hour'; } else { url = '/redfish/v1/TelemetryService/MetricReports/other_temp'; } return await api .get(url) .then(({ data: { MetricValues = [] } }) => { if (lastHour) { commit('setMotherboardDynamicLastHour', MetricValues); } else { commit('setMotherboardDynamic', MetricValues); } }) .catch((error) => console.log(error)); }, }, }; export default MotherboardStore;