| import api, { getResponseCount } from '@/store/api'; |
| import i18n from '@/i18n'; |
| |
| const SessionsStore = { |
| namespaced: true, |
| state: { |
| allConnections: [], |
| }, |
| getters: { |
| allConnections: (state) => state.allConnections, |
| }, |
| mutations: { |
| setAllConnections: (state, allConnections) => |
| (state.allConnections = allConnections), |
| }, |
| actions: { |
| async getSessionsData({ commit }) { |
| return await api |
| .get('/redfish/v1/SessionService/Sessions') |
| .then((response) => |
| response.data.Members.map((sessionLogs) => sessionLogs['@odata.id']), |
| ) |
| .then((sessionUris) => |
| api.all(sessionUris.map((sessionUri) => api.get(sessionUri))), |
| ) |
| .then((sessionUris) => { |
| const allConnectionsData = sessionUris.map((sessionUri) => { |
| return { |
| sessionID: sessionUri.data?.Id, |
| context: sessionUri.data?.Context |
| ? sessionUri.data?.Context |
| : '-', |
| username: sessionUri.data?.UserName, |
| ipAddress: sessionUri.data?.ClientOriginIPAddress, |
| uri: sessionUri.data['@odata.id'], |
| }; |
| }); |
| commit('setAllConnections', allConnectionsData); |
| }) |
| .catch((error) => { |
| console.log('Client Session Data:', error); |
| }); |
| }, |
| async disconnectSessions({ dispatch }, uris = []) { |
| const promises = uris.map((uri) => |
| api.delete(uri).catch((error) => { |
| console.log(error); |
| return error; |
| }), |
| ); |
| return await api |
| .all(promises) |
| .then((response) => { |
| dispatch('getSessionsData'); |
| return response; |
| }) |
| .then( |
| api.spread((...responses) => { |
| const { successCount, errorCount } = getResponseCount(responses); |
| const toastMessages = []; |
| |
| if (successCount) { |
| const message = i18n.tc( |
| 'pageSessions.toast.successDelete', |
| successCount, |
| ); |
| toastMessages.push({ type: 'success', message }); |
| } |
| |
| if (errorCount) { |
| const message = i18n.tc( |
| 'pageSessions.toast.errorDelete', |
| errorCount, |
| ); |
| toastMessages.push({ type: 'error', message }); |
| } |
| return toastMessages; |
| }), |
| ); |
| }, |
| }, |
| }; |
| export default SessionsStore; |