| Sukanya Pandey | 34efde2 | 2020-12-02 19:04:09 +0530 | [diff] [blame] | 1 | import api, { getResponseCount } from '@/store/api'; | 
|  | 2 | import i18n from '@/i18n'; | 
|  | 3 |  | 
| Sandeepa Singh | b440616 | 2021-07-26 15:05:39 +0530 | [diff] [blame] | 4 | const SessionsStore = { | 
| Sukanya Pandey | 34efde2 | 2020-12-02 19:04:09 +0530 | [diff] [blame] | 5 | namespaced: true, | 
|  | 6 | state: { | 
|  | 7 | allConnections: [], | 
|  | 8 | }, | 
|  | 9 | getters: { | 
|  | 10 | allConnections: (state) => state.allConnections, | 
|  | 11 | }, | 
|  | 12 | mutations: { | 
|  | 13 | setAllConnections: (state, allConnections) => | 
|  | 14 | (state.allConnections = allConnections), | 
|  | 15 | }, | 
|  | 16 | actions: { | 
| Sandeepa Singh | b440616 | 2021-07-26 15:05:39 +0530 | [diff] [blame] | 17 | async getSessionsData({ commit }) { | 
| Sukanya Pandey | 34efde2 | 2020-12-02 19:04:09 +0530 | [diff] [blame] | 18 | return await api | 
|  | 19 | .get('/redfish/v1/SessionService/Sessions') | 
|  | 20 | .then((response) => | 
|  | 21 | response.data.Members.map((sessionLogs) => sessionLogs['@odata.id']) | 
|  | 22 | ) | 
|  | 23 | .then((sessionUris) => | 
|  | 24 | api.all(sessionUris.map((sessionUri) => api.get(sessionUri))) | 
|  | 25 | ) | 
|  | 26 | .then((sessionUris) => { | 
|  | 27 | const allConnectionsData = sessionUris.map((sessionUri) => { | 
|  | 28 | return { | 
| SurenNeware | 2ef1147 | 2021-02-04 19:15:06 +0530 | [diff] [blame] | 29 | clientID: sessionUri.data?.Oem?.OpenBMC.ClientID, | 
| Sukanya Pandey | 34efde2 | 2020-12-02 19:04:09 +0530 | [diff] [blame] | 30 | username: sessionUri.data?.UserName, | 
| SurenNeware | 2ef1147 | 2021-02-04 19:15:06 +0530 | [diff] [blame] | 31 | ipAddress: sessionUri.data?.ClientOriginIPAddress, | 
| Sukanya Pandey | 34efde2 | 2020-12-02 19:04:09 +0530 | [diff] [blame] | 32 | uri: sessionUri.data['@odata.id'], | 
|  | 33 | }; | 
|  | 34 | }); | 
|  | 35 | commit('setAllConnections', allConnectionsData); | 
|  | 36 | }) | 
|  | 37 | .catch((error) => { | 
|  | 38 | console.log('Client Session Data:', error); | 
|  | 39 | }); | 
|  | 40 | }, | 
|  | 41 | async disconnectSessions({ dispatch }, uris = []) { | 
|  | 42 | const promises = uris.map((uri) => | 
|  | 43 | api.delete(uri).catch((error) => { | 
|  | 44 | console.log(error); | 
|  | 45 | return error; | 
|  | 46 | }) | 
|  | 47 | ); | 
|  | 48 | return await api | 
|  | 49 | .all(promises) | 
|  | 50 | .then((response) => { | 
| Sandeepa Singh | b440616 | 2021-07-26 15:05:39 +0530 | [diff] [blame] | 51 | dispatch('getSessionsData'); | 
| Sukanya Pandey | 34efde2 | 2020-12-02 19:04:09 +0530 | [diff] [blame] | 52 | return response; | 
|  | 53 | }) | 
|  | 54 | .then( | 
|  | 55 | api.spread((...responses) => { | 
|  | 56 | const { successCount, errorCount } = getResponseCount(responses); | 
|  | 57 | const toastMessages = []; | 
|  | 58 |  | 
|  | 59 | if (successCount) { | 
|  | 60 | const message = i18n.tc( | 
| Sandeepa Singh | b440616 | 2021-07-26 15:05:39 +0530 | [diff] [blame] | 61 | 'pageSessions.toast.successDelete', | 
| Sukanya Pandey | 34efde2 | 2020-12-02 19:04:09 +0530 | [diff] [blame] | 62 | successCount | 
|  | 63 | ); | 
|  | 64 | toastMessages.push({ type: 'success', message }); | 
|  | 65 | } | 
|  | 66 |  | 
|  | 67 | if (errorCount) { | 
|  | 68 | const message = i18n.tc( | 
| Sandeepa Singh | b440616 | 2021-07-26 15:05:39 +0530 | [diff] [blame] | 69 | 'pageSessions.toast.errorDelete', | 
| Sukanya Pandey | 34efde2 | 2020-12-02 19:04:09 +0530 | [diff] [blame] | 70 | errorCount | 
|  | 71 | ); | 
|  | 72 | toastMessages.push({ type: 'error', message }); | 
|  | 73 | } | 
|  | 74 | return toastMessages; | 
|  | 75 | }) | 
|  | 76 | ); | 
|  | 77 | }, | 
|  | 78 | }, | 
|  | 79 | }; | 
| Sandeepa Singh | b440616 | 2021-07-26 15:05:39 +0530 | [diff] [blame] | 80 | export default SessionsStore; |