chore: refactor 2

This commit is contained in:
Vishnu Narayanan
2024-01-25 15:41:14 +05:30
parent cb2fa4da45
commit d2f5b5f976
6 changed files with 122 additions and 4 deletions
+3 -3
View File
@@ -2,9 +2,9 @@
import ApiClient from './ApiClient';
class SLA extends ApiClient {
class SlaAPI extends ApiClient {
constructor() {
super('sla', { accountScoped: true });
super('sla_policies', { accountScoped: true });
}
get({ page }) {
@@ -13,4 +13,4 @@ class SLA extends ApiClient {
}
}
export default new SLA();
export default new SlaAPI();
@@ -102,3 +102,9 @@ export const OPEN_AI_EVENTS = Object.freeze({
export const GENERAL_EVENTS = Object.freeze({
COMMAND_BAR: 'Used commandbar',
});
export const SLA_EVENTS = Object.freeze({
CREATE: 'Created an SLA',
UPDATE: 'Updated an SLA',
DELETED: 'Deleted an SLA',
});
@@ -1,5 +1,5 @@
{
"SLA_MGMT": {
"SLA": {
"HEADER": "SLA",
"HEADER_BTN_TXT": "Add sla",
"LOADING": "Fetching slas",
+2
View File
@@ -38,6 +38,7 @@ import macros from './modules/macros';
import notifications from './modules/notifications';
import portals from './modules/helpCenterPortals';
import reports from './modules/reports';
import sla from './modules/sla';
import teamMembers from './modules/teamMembers';
import teams from './modules/teams';
import userNotificationSettings from './modules/userNotificationSettings';
@@ -109,6 +110,7 @@ export default new Vuex.Store({
userNotificationSettings,
webhooks,
draftMessages,
sla,
},
plugins,
});
@@ -0,0 +1,103 @@
import * as MutationHelpers from 'shared/helpers/vuex/mutationHelpers';
import types from '../mutation-types';
import SlaAPI from '../../api/sla';
import AnalyticsHelper from '../../helper/AnalyticsHelper';
import { SLA_EVENTS } from '../../helper/AnalyticsHelper/events';
export const state = {
records: [],
uiFlags: {
isFetching: false,
isFetchingItem: false,
isCreating: false,
isDeleting: false,
},
};
export const getters = {
getSLA(_state) {
return _state.records;
},
getUIFlags(_state) {
return _state.uiFlags;
},
};
export const actions = {
get: async function getSLA({ commit }) {
commit(types.SET_SLA_UI_FLAG, { isFetching: true });
try {
const response = await SlaAPI.get(true);
const sortedSLA = response.data.payload.sort((a, b) =>
a.title.localeCompare(b.title)
);
commit(types.SET_SLA, sortedSLA);
} catch (error) {
// Ignore error
} finally {
commit(types.SET_SLA_UI_FLAG, { isFetching: false });
}
},
create: async function createSLA({ commit }, cannedObj) {
commit(types.SET_SLA_UI_FLAG, { isCreating: true });
try {
const response = await SlaAPI.create(cannedObj);
AnalyticsHelper.track(SLA_EVENTS.CREATE);
commit(types.ADD_SLA, response.data);
} catch (error) {
const errorMessage = error?.response?.data?.message;
throw new Error(errorMessage);
} finally {
commit(types.SET_SLA_UI_FLAG, { isCreating: false });
}
},
update: async function updateSLA({ commit }, { id, ...updateObj }) {
commit(types.SET_SLA_UI_FLAG, { isUpdating: true });
try {
const response = await SlaAPI.update(id, updateObj);
AnalyticsHelper.track(SLA_EVENTS.UPDATE);
commit(types.EDIT_SLA, response.data);
} catch (error) {
throw new Error(error);
} finally {
commit(types.SET_SLA_UI_FLAG, { isUpdating: false });
}
},
delete: async function deleteSLA({ commit }, id) {
commit(types.SET_SLA_UI_FLAG, { isDeleting: true });
try {
await SlaAPI.delete(id);
AnalyticsHelper.track(SLA_EVENTS.DELETED);
commit(types.DELETE_SLA, id);
} catch (error) {
throw new Error(error);
} finally {
commit(types.SET_SLA_UI_FLAG, { isDeleting: false });
}
},
};
export const mutations = {
[types.SET_SLA_UI_FLAG](_state, data) {
_state.uiFlags = {
..._state.uiFlags,
...data,
};
},
[types.SET_SLA]: MutationHelpers.set,
[types.ADD_SLA]: MutationHelpers.create,
[types.EDIT_SLA]: MutationHelpers.update,
[types.DELETE_SLA]: MutationHelpers.destroy,
};
export default {
namespaced: true,
state,
getters,
actions,
mutations,
};
@@ -296,4 +296,11 @@ export default {
SET_AUDIT_LOGS_UI_FLAG: 'SET_AUDIT_LOGS_UI_FLAG',
SET_AUDIT_LOGS: 'SET_AUDIT_LOGS',
SET_AUDIT_LOGS_META: 'SET_AUDIT_LOGS_META',
// SLA
SET_SLA_UI_FLAG: 'SET_SLA_UI_FLAG',
SET_SLA: 'SET_SLA',
ADD_SLA: 'ADD_SLA',
EDIT_SLA: 'EDIT_SLA',
DELETE_SLA: 'DELETE_SLA',
};