@webitel/api-services 1.0.10 → 1.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/api/clients/__tests__/wireParamsCoverage.spec.ts +286 -0
- package/src/api/clients/activeCalls/activeCalls.ts +72 -0
- package/src/api/clients/agentPauseCauses/agentPauseCauses.ts +182 -0
- package/src/api/clients/agentSkills/agentSkills.ts +193 -0
- package/src/api/clients/agents/__tests__/agents.wireParams.spec.ts +51 -0
- package/src/api/clients/agents/agents.ts +203 -18
- package/src/api/clients/auditForms/auditForms.ts +6 -2
- package/src/api/clients/auditForms/auditRates.ts +91 -0
- package/src/api/clients/backendProfiles/backendProfiles.ts +194 -0
- package/src/api/clients/buckets/buckets.ts +21 -25
- package/src/api/clients/callHistory/callAnnotations.ts +91 -0
- package/src/api/clients/callHistory/callHistory.ts +76 -7
- package/src/api/clients/casePriorities/__tests__/casePriorities.spec.ts +50 -0
- package/src/api/clients/casePriorities/casePriorities.ts +25 -41
- package/src/api/clients/caseStatusConditions/caseStatusConditions.ts +19 -29
- package/src/api/clients/caseStatuses/caseStatuses.ts +10 -21
- package/src/api/clients/catalog/catalog.ts +2 -8
- package/src/api/clients/changelogs/changelogs.ts +8 -0
- package/src/api/clients/chatplans/chatplans.ts +173 -0
- package/src/api/clients/cognitiveProfiles/cognitiveProfiles.ts +209 -0
- package/src/api/clients/communications/communications.ts +38 -42
- package/src/api/clients/dialplans/dialplans.ts +197 -0
- package/src/api/clients/emailProfiles/emailProfiles.ts +222 -0
- package/src/api/clients/fileServices/fileServices.ts +7 -2
- package/src/api/clients/flows/flow.ts +54 -43
- package/src/api/clients/fts/fts.ts +61 -0
- package/src/api/clients/history/transcript/callTranscript.ts +10 -20
- package/src/api/clients/importTemplates/importTemplates.ts +180 -0
- package/src/api/clients/index.ts +30 -0
- package/src/api/clients/lists/blacklistNumbers.ts +155 -0
- package/src/api/clients/lists/blacklists.ts +20 -25
- package/src/api/clients/logs/logs.ts +157 -0
- package/src/api/clients/media/media.ts +19 -15
- package/src/api/clients/object/object.ts +3 -14
- package/src/api/clients/outboundResourceGroups/outboundResourceGroups.ts +187 -0
- package/src/api/clients/outboundResourceGroups/resourcesInGroup.ts +169 -0
- package/src/api/clients/outboundResources/outboundResources.ts +225 -0
- package/src/api/clients/outboundResources/resourceDisplays.ts +165 -0
- package/src/api/clients/pauseTemplates/pauseTemplates.ts +203 -0
- package/src/api/clients/queues/__tests__/queueLogs.spec.ts +3 -3
- package/src/api/clients/queues/__tests__/queueMembers.spec.ts +4 -4
- package/src/api/clients/queues/queueLogs.ts +8 -3
- package/src/api/clients/queues/queueMembers.ts +3 -3
- package/src/api/clients/queues/queues.ts +52 -0
- package/src/api/clients/regions/regions.ts +21 -25
- package/src/api/clients/schemaVariables/schemaVariables.ts +167 -0
- package/src/api/clients/shiftTemplates/shiftTemplates.ts +176 -0
- package/src/api/clients/skills/skillAgents.ts +190 -0
- package/src/api/clients/skills/skills.ts +21 -25
- package/src/api/clients/storagePolicies/storagePolicies.ts +270 -0
- package/src/api/clients/teamHooks/teamHooks.ts +195 -0
- package/src/api/clients/teamTriggers/agentTriggers.ts +77 -0
- package/src/api/clients/teamTriggers/teamFlows.ts +194 -0
- package/src/api/clients/teams/teams.ts +31 -31
- package/src/api/clients/triggers/triggerJobs.ts +63 -0
- package/src/api/clients/triggers/triggers.ts +266 -0
- package/src/api/clients/userSettings/userSettings.ts +8 -9
- package/src/api/clients/users/users.ts +2 -0
- package/src/api/clients/workingConditions/workingConditions.ts +184 -0
- package/src/api/clients/workspaceWidgets/workspaceWidgets.ts +73 -0
- package/src/api/clients//321/201ontacts/contactChatMessagesHistory.ts +15 -26
- package/src/validations/calendar/__tests__/calendar.validations.spec.ts +85 -0
- package/src/validations/calendar/calendar.validations.ts +1 -1
- package/types/.tsbuildinfo +1 -1
- package/types/api/clients/activeCalls/activeCalls.d.ts +7 -0
- package/types/api/clients/agentPauseCauses/agentPauseCauses.d.ts +21 -0
- package/types/api/clients/agentSkills/agentSkills.d.ts +12 -0
- package/types/api/clients/agents/agents.d.ts +23 -2
- package/types/api/clients/auditForms/auditForms.d.ts +7 -0
- package/types/api/clients/auditForms/auditRates.d.ts +10 -0
- package/types/api/clients/backendProfiles/backendProfiles.d.ts +21 -0
- package/types/api/clients/callHistory/callAnnotations.d.ts +12 -0
- package/types/api/clients/callHistory/callHistory.d.ts +24 -3
- package/types/api/clients/chatplans/chatplans.d.ts +21 -0
- package/types/api/clients/cognitiveProfiles/cognitiveProfiles.d.ts +21 -0
- package/types/api/clients/dialplans/dialplans.d.ts +16 -0
- package/types/api/clients/emailProfiles/emailProfiles.d.ts +27 -0
- package/types/api/clients/fileServices/fileServices.d.ts +1 -1
- package/types/api/clients/fts/fts.d.ts +7 -0
- package/types/api/clients/importTemplates/importTemplates.d.ts +21 -0
- package/types/api/clients/index.d.ts +30 -0
- package/types/api/clients/lists/blacklistNumbers.d.ts +11 -0
- package/types/api/clients/logs/logs.d.ts +15 -0
- package/types/api/clients/outboundResourceGroups/outboundResourceGroups.d.ts +20 -0
- package/types/api/clients/outboundResourceGroups/resourcesInGroup.d.ts +11 -0
- package/types/api/clients/outboundResources/outboundResources.d.ts +21 -0
- package/types/api/clients/outboundResources/resourceDisplays.d.ts +11 -0
- package/types/api/clients/pauseTemplates/pauseTemplates.d.ts +20 -0
- package/types/api/clients/queues/queues.d.ts +5 -0
- package/types/api/clients/schemaVariables/schemaVariables.d.ts +21 -0
- package/types/api/clients/shiftTemplates/shiftTemplates.d.ts +20 -0
- package/types/api/clients/skills/skillAgents.d.ts +13 -0
- package/types/api/clients/storagePolicies/storagePolicies.d.ts +26 -0
- package/types/api/clients/teamHooks/teamHooks.d.ts +12 -0
- package/types/api/clients/teamTriggers/agentTriggers.d.ts +23 -0
- package/types/api/clients/teamTriggers/teamFlows.d.ts +12 -0
- package/types/api/clients/triggers/triggerJobs.d.ts +7 -0
- package/types/api/clients/triggers/triggers.d.ts +22 -0
- package/types/api/clients/userSettings/userSettings.d.ts +2 -2
- package/types/api/clients/workingConditions/workingConditions.d.ts +20 -0
- package/types/api/clients/workspaceWidgets/workspaceWidgets.d.ts +3 -0
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { getLoggerService } from '../../../gen-wire';
|
|
2
|
+
import { getDefaultGetListResponse, getDefaultGetParams } from '../../defaults';
|
|
3
|
+
import {
|
|
4
|
+
applyTransform,
|
|
5
|
+
merge,
|
|
6
|
+
notify,
|
|
7
|
+
sanitize,
|
|
8
|
+
snakeToCamel,
|
|
9
|
+
starToSearch,
|
|
10
|
+
} from '../../transformers';
|
|
11
|
+
import type { ApiParams } from '../_shared/types';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* The logger endpoints have no natural ordering, so both lists default to
|
|
15
|
+
* newest first.
|
|
16
|
+
*/
|
|
17
|
+
const DEFAULT_SORT = '-date';
|
|
18
|
+
|
|
19
|
+
const getLogsByUserList = async (params: ApiParams) => {
|
|
20
|
+
const fieldsToSend = [
|
|
21
|
+
'parentId',
|
|
22
|
+
'page',
|
|
23
|
+
'size',
|
|
24
|
+
'search',
|
|
25
|
+
'sort',
|
|
26
|
+
'fields',
|
|
27
|
+
'action',
|
|
28
|
+
'object',
|
|
29
|
+
'from',
|
|
30
|
+
'to',
|
|
31
|
+
'userIp',
|
|
32
|
+
];
|
|
33
|
+
|
|
34
|
+
const {
|
|
35
|
+
parentId,
|
|
36
|
+
page,
|
|
37
|
+
size,
|
|
38
|
+
search,
|
|
39
|
+
sort,
|
|
40
|
+
fields,
|
|
41
|
+
action,
|
|
42
|
+
object,
|
|
43
|
+
from,
|
|
44
|
+
to,
|
|
45
|
+
userIp,
|
|
46
|
+
} = applyTransform(params, [
|
|
47
|
+
sanitize(fieldsToSend),
|
|
48
|
+
merge(getDefaultGetParams()),
|
|
49
|
+
starToSearch('search'),
|
|
50
|
+
]);
|
|
51
|
+
|
|
52
|
+
try {
|
|
53
|
+
const response = await getLoggerService().loggerServiceSearchLogByUserId(
|
|
54
|
+
Number(parentId),
|
|
55
|
+
{
|
|
56
|
+
page,
|
|
57
|
+
size,
|
|
58
|
+
// the generated param is `q`; `search` is what the datalist store sends
|
|
59
|
+
q: search,
|
|
60
|
+
sort: sort || DEFAULT_SORT,
|
|
61
|
+
fields,
|
|
62
|
+
object_id: object,
|
|
63
|
+
action,
|
|
64
|
+
user_ip: userIp,
|
|
65
|
+
date_from: from,
|
|
66
|
+
date_to: to,
|
|
67
|
+
},
|
|
68
|
+
);
|
|
69
|
+
const { items, next } = applyTransform(response.data, [
|
|
70
|
+
snakeToCamel(),
|
|
71
|
+
merge(getDefaultGetListResponse()),
|
|
72
|
+
]);
|
|
73
|
+
return {
|
|
74
|
+
items,
|
|
75
|
+
next,
|
|
76
|
+
};
|
|
77
|
+
} catch (err) {
|
|
78
|
+
throw applyTransform(err, [
|
|
79
|
+
notify,
|
|
80
|
+
]);
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
const getLogsByConfigList = async (params: ApiParams) => {
|
|
85
|
+
const fieldsToSend = [
|
|
86
|
+
'parentId',
|
|
87
|
+
'page',
|
|
88
|
+
'size',
|
|
89
|
+
'search',
|
|
90
|
+
'sort',
|
|
91
|
+
'fields',
|
|
92
|
+
'action',
|
|
93
|
+
'user',
|
|
94
|
+
'from',
|
|
95
|
+
'to',
|
|
96
|
+
'userIp',
|
|
97
|
+
];
|
|
98
|
+
|
|
99
|
+
const {
|
|
100
|
+
parentId,
|
|
101
|
+
page,
|
|
102
|
+
size,
|
|
103
|
+
search,
|
|
104
|
+
sort,
|
|
105
|
+
fields,
|
|
106
|
+
action,
|
|
107
|
+
user,
|
|
108
|
+
from,
|
|
109
|
+
to,
|
|
110
|
+
userIp,
|
|
111
|
+
} = applyTransform(params, [
|
|
112
|
+
sanitize(fieldsToSend),
|
|
113
|
+
merge(getDefaultGetParams()),
|
|
114
|
+
starToSearch('search'),
|
|
115
|
+
]);
|
|
116
|
+
|
|
117
|
+
try {
|
|
118
|
+
const response = await getLoggerService().loggerServiceSearchLogByConfigId(
|
|
119
|
+
Number(parentId),
|
|
120
|
+
{
|
|
121
|
+
page,
|
|
122
|
+
size,
|
|
123
|
+
// the generated param is `q`; `search` is what the datalist store sends
|
|
124
|
+
q: search,
|
|
125
|
+
sort: sort || DEFAULT_SORT,
|
|
126
|
+
fields,
|
|
127
|
+
user_id: user,
|
|
128
|
+
action,
|
|
129
|
+
user_ip: userIp,
|
|
130
|
+
date_from: from,
|
|
131
|
+
date_to: to,
|
|
132
|
+
},
|
|
133
|
+
);
|
|
134
|
+
const { items, next } = applyTransform(response.data, [
|
|
135
|
+
snakeToCamel(),
|
|
136
|
+
merge(getDefaultGetListResponse()),
|
|
137
|
+
]);
|
|
138
|
+
return {
|
|
139
|
+
items,
|
|
140
|
+
next,
|
|
141
|
+
};
|
|
142
|
+
} catch (err) {
|
|
143
|
+
throw applyTransform(err, [
|
|
144
|
+
notify,
|
|
145
|
+
]);
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
/** Audit log of everything one user did. */
|
|
150
|
+
export const UserLogsAPI = {
|
|
151
|
+
getList: getLogsByUserList,
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
/** Audit log of everything done to one logger config's object. */
|
|
155
|
+
export const ConfigLogsAPI = {
|
|
156
|
+
getList: getLogsByConfigList,
|
|
157
|
+
};
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
|
-
import {
|
|
2
|
+
import { getMediaFileService } from '../../../gen-wire';
|
|
3
3
|
import {
|
|
4
4
|
getDefaultGetListResponse,
|
|
5
5
|
getDefaultGetParams,
|
|
6
6
|
getDefaultInstance,
|
|
7
|
-
getDefaultOpenAPIConfig,
|
|
8
7
|
} from '../../defaults';
|
|
9
8
|
import {
|
|
10
9
|
applyTransform,
|
|
10
|
+
camelToSnake,
|
|
11
11
|
merge,
|
|
12
12
|
notify,
|
|
13
|
+
sanitize,
|
|
13
14
|
snakeToCamel,
|
|
14
15
|
starToSearch,
|
|
15
16
|
} from '../../transformers';
|
|
@@ -21,28 +22,31 @@ import type {
|
|
|
21
22
|
} from '../_shared/types';
|
|
22
23
|
|
|
23
24
|
const instance = getDefaultInstance();
|
|
24
|
-
const configuration = getDefaultOpenAPIConfig();
|
|
25
|
-
|
|
26
|
-
const mediaService = MediaFileServiceApiFactory(configuration, '', instance);
|
|
27
25
|
|
|
28
26
|
const token = localStorage.getItem('access-token');
|
|
29
27
|
const baseUrl = import.meta.env.VITE_API_URL;
|
|
30
28
|
|
|
31
29
|
const getMediaList = async (params: ApiParams) => {
|
|
32
|
-
const
|
|
30
|
+
const requestParams = applyTransform(params, [
|
|
33
31
|
merge(getDefaultGetParams()),
|
|
34
32
|
starToSearch('search'),
|
|
33
|
+
camelToSnake(),
|
|
34
|
+
(params) => ({
|
|
35
|
+
...params,
|
|
36
|
+
q: params.search,
|
|
37
|
+
}),
|
|
38
|
+
sanitize([
|
|
39
|
+
'page',
|
|
40
|
+
'size',
|
|
41
|
+
'q',
|
|
42
|
+
'sort',
|
|
43
|
+
'fields',
|
|
44
|
+
'id',
|
|
45
|
+
]),
|
|
35
46
|
]);
|
|
36
47
|
|
|
37
48
|
try {
|
|
38
|
-
const response = await
|
|
39
|
-
page,
|
|
40
|
-
size,
|
|
41
|
-
search,
|
|
42
|
-
sort,
|
|
43
|
-
fields,
|
|
44
|
-
id,
|
|
45
|
-
);
|
|
49
|
+
const response = await getMediaFileService().searchMediaFile(requestParams);
|
|
46
50
|
const { items, next } = applyTransform(response.data, [
|
|
47
51
|
snakeToCamel(),
|
|
48
52
|
merge(getDefaultGetListResponse()),
|
|
@@ -137,7 +141,7 @@ const addMedia = async (params: ApiParams) => {
|
|
|
137
141
|
|
|
138
142
|
const deleteMedia = async ({ id }: DeleteItemParams) => {
|
|
139
143
|
try {
|
|
140
|
-
const response = await
|
|
144
|
+
const response = await getMediaFileService().deleteMediaFile(String(id));
|
|
141
145
|
return applyTransform(response.data, []);
|
|
142
146
|
} catch (err) {
|
|
143
147
|
throw applyTransform(err, [
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getTypes } from '../../../gen-wire';
|
|
2
2
|
import {
|
|
3
3
|
getDefaultGetListResponse,
|
|
4
4
|
getDefaultGetParams,
|
|
5
5
|
getDefaultInstance,
|
|
6
|
-
getDefaultOpenAPIConfig,
|
|
7
6
|
} from '../../defaults';
|
|
8
7
|
import {
|
|
9
8
|
applyTransform,
|
|
@@ -18,9 +17,6 @@ import {
|
|
|
18
17
|
import type { ApiParams } from '../_shared/types';
|
|
19
18
|
|
|
20
19
|
const instance = getDefaultInstance();
|
|
21
|
-
const configuration = getDefaultOpenAPIConfig();
|
|
22
|
-
|
|
23
|
-
const typeService = TypesApiFactory(configuration, '', instance);
|
|
24
20
|
|
|
25
21
|
const getObjectList = async (params: ApiParams) => {
|
|
26
22
|
const fieldsToSend = [
|
|
@@ -43,21 +39,14 @@ const getObjectList = async (params: ApiParams) => {
|
|
|
43
39
|
camelToSnake(),
|
|
44
40
|
]);
|
|
45
41
|
try {
|
|
46
|
-
const response = await
|
|
42
|
+
const response = await getTypes().searchTypes({
|
|
47
43
|
q,
|
|
48
44
|
id,
|
|
49
|
-
undefined,
|
|
50
|
-
undefined,
|
|
51
|
-
undefined,
|
|
52
|
-
undefined,
|
|
53
|
-
undefined,
|
|
54
|
-
undefined,
|
|
55
|
-
undefined,
|
|
56
45
|
size,
|
|
57
46
|
page,
|
|
58
47
|
sort,
|
|
59
48
|
fields,
|
|
60
|
-
);
|
|
49
|
+
});
|
|
61
50
|
const { data, next } = applyTransform(response.data, [
|
|
62
51
|
merge(getDefaultGetListResponse()),
|
|
63
52
|
]);
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import deepCopy from 'deep-copy';
|
|
2
|
+
import { getOutboundResourceGroupService } from '../../../gen-wire';
|
|
3
|
+
import { getDefaultGetListResponse, getDefaultGetParams } from '../../defaults';
|
|
4
|
+
import {
|
|
5
|
+
applyTransform,
|
|
6
|
+
camelToSnake,
|
|
7
|
+
merge,
|
|
8
|
+
notify,
|
|
9
|
+
sanitize,
|
|
10
|
+
snakeToCamel,
|
|
11
|
+
starToSearch,
|
|
12
|
+
} from '../../transformers';
|
|
13
|
+
import type {
|
|
14
|
+
AddItemParams,
|
|
15
|
+
ApiParams,
|
|
16
|
+
DeleteItemParams,
|
|
17
|
+
GetItemParams,
|
|
18
|
+
UpdateItemParams,
|
|
19
|
+
} from '../_shared/types';
|
|
20
|
+
|
|
21
|
+
const fieldsToSend = [
|
|
22
|
+
'name',
|
|
23
|
+
'description',
|
|
24
|
+
'strategy',
|
|
25
|
+
'communication',
|
|
26
|
+
'time',
|
|
27
|
+
];
|
|
28
|
+
|
|
29
|
+
/*
|
|
30
|
+
* The form models a time range as `{ start, end }`, the API as
|
|
31
|
+
* `{ startTimeOfDay, endTimeOfDay }`. `getResourceGroup` maps them back.
|
|
32
|
+
*/
|
|
33
|
+
const preRequestHandler = (item: ApiParams) => {
|
|
34
|
+
const copy = deepCopy(item);
|
|
35
|
+
copy.time = copy.time.map((range: ApiParams) => ({
|
|
36
|
+
startTimeOfDay: range.start,
|
|
37
|
+
endTimeOfDay: range.end,
|
|
38
|
+
}));
|
|
39
|
+
return copy;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
const getResourceGroupsList = async (params: ApiParams) => {
|
|
43
|
+
const { page, size, search, sort, fields, id } = applyTransform(params, [
|
|
44
|
+
merge(getDefaultGetParams()),
|
|
45
|
+
starToSearch('search'),
|
|
46
|
+
]);
|
|
47
|
+
|
|
48
|
+
try {
|
|
49
|
+
const response =
|
|
50
|
+
await getOutboundResourceGroupService().searchOutboundResourceGroup({
|
|
51
|
+
page,
|
|
52
|
+
size,
|
|
53
|
+
// the generated param is `q`; `search` is what the datalist store sends
|
|
54
|
+
q: search,
|
|
55
|
+
sort,
|
|
56
|
+
fields,
|
|
57
|
+
id,
|
|
58
|
+
});
|
|
59
|
+
const { items, next } = applyTransform(response.data, [
|
|
60
|
+
snakeToCamel(),
|
|
61
|
+
merge(getDefaultGetListResponse()),
|
|
62
|
+
]);
|
|
63
|
+
return {
|
|
64
|
+
items,
|
|
65
|
+
next,
|
|
66
|
+
};
|
|
67
|
+
} catch (err) {
|
|
68
|
+
throw applyTransform(err, [
|
|
69
|
+
notify,
|
|
70
|
+
]);
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
const getResourceGroup = async ({ itemId: id }: GetItemParams) => {
|
|
75
|
+
const defaultObject = {
|
|
76
|
+
name: '',
|
|
77
|
+
strategy: '',
|
|
78
|
+
description: '',
|
|
79
|
+
communication: {},
|
|
80
|
+
time: [],
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
const responseHandler = (response: ApiParams) => {
|
|
84
|
+
const time = response.time.map((range: ApiParams) => ({
|
|
85
|
+
start: range.startTimeOfDay || 0,
|
|
86
|
+
end: range.endTimeOfDay || 0,
|
|
87
|
+
}));
|
|
88
|
+
return {
|
|
89
|
+
...response,
|
|
90
|
+
time,
|
|
91
|
+
};
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
try {
|
|
95
|
+
const response =
|
|
96
|
+
await getOutboundResourceGroupService().readOutboundResourceGroup(
|
|
97
|
+
String(id),
|
|
98
|
+
);
|
|
99
|
+
return applyTransform(response.data, [
|
|
100
|
+
snakeToCamel(),
|
|
101
|
+
merge(defaultObject),
|
|
102
|
+
responseHandler,
|
|
103
|
+
]);
|
|
104
|
+
} catch (err) {
|
|
105
|
+
throw applyTransform(err, [
|
|
106
|
+
notify,
|
|
107
|
+
]);
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
const addResourceGroup = async ({ itemInstance }: AddItemParams) => {
|
|
112
|
+
const item = applyTransform(itemInstance, [
|
|
113
|
+
preRequestHandler,
|
|
114
|
+
sanitize(fieldsToSend),
|
|
115
|
+
camelToSnake(),
|
|
116
|
+
]);
|
|
117
|
+
try {
|
|
118
|
+
const response =
|
|
119
|
+
await getOutboundResourceGroupService().createOutboundResourceGroup(item);
|
|
120
|
+
return applyTransform(response.data, [
|
|
121
|
+
snakeToCamel(),
|
|
122
|
+
]);
|
|
123
|
+
} catch (err) {
|
|
124
|
+
throw applyTransform(err, [
|
|
125
|
+
notify,
|
|
126
|
+
]);
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
const updateResourceGroup = async ({
|
|
131
|
+
itemInstance,
|
|
132
|
+
itemId: id,
|
|
133
|
+
}: UpdateItemParams) => {
|
|
134
|
+
const item = applyTransform(itemInstance, [
|
|
135
|
+
preRequestHandler,
|
|
136
|
+
sanitize(fieldsToSend),
|
|
137
|
+
camelToSnake(),
|
|
138
|
+
]);
|
|
139
|
+
try {
|
|
140
|
+
const response =
|
|
141
|
+
await getOutboundResourceGroupService().updateOutboundResourceGroup(
|
|
142
|
+
String(id),
|
|
143
|
+
item,
|
|
144
|
+
);
|
|
145
|
+
return applyTransform(response.data, [
|
|
146
|
+
snakeToCamel(),
|
|
147
|
+
]);
|
|
148
|
+
} catch (err) {
|
|
149
|
+
throw applyTransform(err, [
|
|
150
|
+
notify,
|
|
151
|
+
]);
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
const deleteResourceGroup = async ({ id }: DeleteItemParams) => {
|
|
156
|
+
try {
|
|
157
|
+
const response =
|
|
158
|
+
await getOutboundResourceGroupService().deleteOutboundResourceGroup(
|
|
159
|
+
String(id),
|
|
160
|
+
);
|
|
161
|
+
return applyTransform(response.data, []);
|
|
162
|
+
} catch (err) {
|
|
163
|
+
throw applyTransform(err, [
|
|
164
|
+
notify,
|
|
165
|
+
]);
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
const getResourceGroupsLookup = (
|
|
170
|
+
params: Parameters<typeof getResourceGroupsList>[0],
|
|
171
|
+
) =>
|
|
172
|
+
getResourceGroupsList({
|
|
173
|
+
...params,
|
|
174
|
+
fields: params.fields || [
|
|
175
|
+
'id',
|
|
176
|
+
'name',
|
|
177
|
+
],
|
|
178
|
+
});
|
|
179
|
+
|
|
180
|
+
export const OutboundResourceGroupsAPI = {
|
|
181
|
+
getList: getResourceGroupsList,
|
|
182
|
+
get: getResourceGroup,
|
|
183
|
+
add: addResourceGroup,
|
|
184
|
+
update: updateResourceGroup,
|
|
185
|
+
delete: deleteResourceGroup,
|
|
186
|
+
getLookup: getResourceGroupsLookup,
|
|
187
|
+
};
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { getOutboundResourceGroupService } from '../../../gen-wire';
|
|
2
|
+
import { getDefaultGetListResponse, getDefaultGetParams } from '../../defaults';
|
|
3
|
+
import {
|
|
4
|
+
applyTransform,
|
|
5
|
+
camelToSnake,
|
|
6
|
+
merge,
|
|
7
|
+
notify,
|
|
8
|
+
sanitize,
|
|
9
|
+
snakeToCamel,
|
|
10
|
+
starToSearch,
|
|
11
|
+
} from '../../transformers';
|
|
12
|
+
import type {
|
|
13
|
+
ApiId,
|
|
14
|
+
ApiParams,
|
|
15
|
+
NestedAddItemParams,
|
|
16
|
+
NestedDeleteItemParams,
|
|
17
|
+
NestedGetItemParams,
|
|
18
|
+
NestedUpdateItemParams,
|
|
19
|
+
} from '../_shared/types';
|
|
20
|
+
|
|
21
|
+
const fieldsToSend = [
|
|
22
|
+
'groupId',
|
|
23
|
+
'name',
|
|
24
|
+
'description',
|
|
25
|
+
'resource',
|
|
26
|
+
'reserveResource',
|
|
27
|
+
'priority',
|
|
28
|
+
];
|
|
29
|
+
|
|
30
|
+
const preRequestHandler = (parentId: ApiId) => (item: ApiParams) => ({
|
|
31
|
+
...item,
|
|
32
|
+
groupId: parentId,
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
const getResourcesInGroupList = async (params: ApiParams) => {
|
|
36
|
+
const { page, size, search, sort, fields, id, parentId } = applyTransform(
|
|
37
|
+
params,
|
|
38
|
+
[
|
|
39
|
+
merge(getDefaultGetParams()),
|
|
40
|
+
starToSearch('search'),
|
|
41
|
+
],
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
try {
|
|
45
|
+
const response =
|
|
46
|
+
await getOutboundResourceGroupService().searchOutboundResourceInGroup(
|
|
47
|
+
String(parentId),
|
|
48
|
+
{
|
|
49
|
+
page,
|
|
50
|
+
size,
|
|
51
|
+
// the generated param is `q`; `search` is what the datalist store sends
|
|
52
|
+
q: search,
|
|
53
|
+
sort,
|
|
54
|
+
fields,
|
|
55
|
+
id,
|
|
56
|
+
},
|
|
57
|
+
);
|
|
58
|
+
const { items, next } = applyTransform(response.data, [
|
|
59
|
+
snakeToCamel(),
|
|
60
|
+
merge(getDefaultGetListResponse()),
|
|
61
|
+
]);
|
|
62
|
+
return {
|
|
63
|
+
items,
|
|
64
|
+
next,
|
|
65
|
+
};
|
|
66
|
+
} catch (err) {
|
|
67
|
+
throw applyTransform(err, [
|
|
68
|
+
notify,
|
|
69
|
+
]);
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
const getResourceInGroup = async ({
|
|
74
|
+
parentId,
|
|
75
|
+
itemId: id,
|
|
76
|
+
}: NestedGetItemParams) => {
|
|
77
|
+
try {
|
|
78
|
+
const response =
|
|
79
|
+
await getOutboundResourceGroupService().readOutboundResourceInGroup(
|
|
80
|
+
String(parentId),
|
|
81
|
+
String(id),
|
|
82
|
+
);
|
|
83
|
+
return applyTransform(response.data, [
|
|
84
|
+
snakeToCamel(),
|
|
85
|
+
]);
|
|
86
|
+
} catch (err) {
|
|
87
|
+
throw applyTransform(err, [
|
|
88
|
+
notify,
|
|
89
|
+
]);
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
const addResourceInGroup = async ({
|
|
94
|
+
parentId,
|
|
95
|
+
itemInstance,
|
|
96
|
+
}: NestedAddItemParams) => {
|
|
97
|
+
const item = applyTransform(itemInstance, [
|
|
98
|
+
preRequestHandler(parentId),
|
|
99
|
+
sanitize(fieldsToSend),
|
|
100
|
+
camelToSnake(),
|
|
101
|
+
]);
|
|
102
|
+
try {
|
|
103
|
+
const response =
|
|
104
|
+
await getOutboundResourceGroupService().createOutboundResourceInGroup(
|
|
105
|
+
String(parentId),
|
|
106
|
+
item,
|
|
107
|
+
);
|
|
108
|
+
return applyTransform(response.data, [
|
|
109
|
+
snakeToCamel(),
|
|
110
|
+
]);
|
|
111
|
+
} catch (err) {
|
|
112
|
+
throw applyTransform(err, [
|
|
113
|
+
notify,
|
|
114
|
+
]);
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
const updateResourceInGroup = async ({
|
|
119
|
+
parentId,
|
|
120
|
+
itemInstance,
|
|
121
|
+
itemId: id,
|
|
122
|
+
}: NestedUpdateItemParams) => {
|
|
123
|
+
const item = applyTransform(itemInstance, [
|
|
124
|
+
preRequestHandler(parentId),
|
|
125
|
+
sanitize(fieldsToSend),
|
|
126
|
+
camelToSnake(),
|
|
127
|
+
]);
|
|
128
|
+
try {
|
|
129
|
+
const response =
|
|
130
|
+
await getOutboundResourceGroupService().updateOutboundResourceInGroup(
|
|
131
|
+
String(parentId),
|
|
132
|
+
String(id),
|
|
133
|
+
item,
|
|
134
|
+
);
|
|
135
|
+
return applyTransform(response.data, [
|
|
136
|
+
snakeToCamel(),
|
|
137
|
+
]);
|
|
138
|
+
} catch (err) {
|
|
139
|
+
throw applyTransform(err, [
|
|
140
|
+
notify,
|
|
141
|
+
]);
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
const deleteResourceInGroup = async ({
|
|
146
|
+
parentId,
|
|
147
|
+
id,
|
|
148
|
+
}: NestedDeleteItemParams) => {
|
|
149
|
+
try {
|
|
150
|
+
const response =
|
|
151
|
+
await getOutboundResourceGroupService().deleteOutboundResourceInGroup(
|
|
152
|
+
String(parentId),
|
|
153
|
+
String(id),
|
|
154
|
+
);
|
|
155
|
+
return applyTransform(response.data, []);
|
|
156
|
+
} catch (err) {
|
|
157
|
+
throw applyTransform(err, [
|
|
158
|
+
notify,
|
|
159
|
+
]);
|
|
160
|
+
}
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
export const ResourcesInGroupAPI = {
|
|
164
|
+
getList: getResourcesInGroupList,
|
|
165
|
+
get: getResourceInGroup,
|
|
166
|
+
add: addResourceInGroup,
|
|
167
|
+
update: updateResourceInGroup,
|
|
168
|
+
delete: deleteResourceInGroup,
|
|
169
|
+
};
|