@webitel/api-services 0.0.23 → 0.0.25

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.
Files changed (205) hide show
  1. package/package.json +14 -10
  2. package/src/api/axios/generateInstance.ts +30 -0
  3. package/src/api/axios/index.ts +2 -0
  4. package/src/api/clients/_shared/generatePermissionsApi.ts +97 -0
  5. package/src/api/clients/agents/agentChats.ts +74 -0
  6. package/src/api/clients/agents/agents.ts +265 -0
  7. package/src/api/clients/buckets/buckets.ts +112 -0
  8. package/src/api/clients/calendars/calendars.ts +214 -0
  9. package/src/api/clients/caseCloseReasonGroups/caseCloseReasonGroups.ts +128 -0
  10. package/src/api/clients/caseCloseReasons/caseCloseReasons.ts +128 -0
  11. package/src/api/clients/casePriorities/casePriorities.ts +139 -0
  12. package/src/api/clients/caseServiceCatalogs/serviceCatalogs.ts +198 -0
  13. package/src/api/clients/caseServices/services.ts +181 -0
  14. package/src/api/clients/caseSources/caseSources.ts +121 -0
  15. package/src/api/clients/caseStatusConditions/caseStatusConditions.ts +165 -0
  16. package/src/api/clients/caseStatuses/caseStatuses.ts +119 -0
  17. package/src/api/clients/catalog/catalog.ts +44 -0
  18. package/src/api/clients/chatGateways/chatGateways.ts +302 -0
  19. package/src/api/clients/chatGateways/defaults/defaultChatGateway.ts +18 -0
  20. package/src/api/clients/chatGateways/defaults/webChatGateway.ts +72 -0
  21. package/src/api/clients/chatGateways/enums/WebchatAlternativeChannel.enum.ts +14 -0
  22. package/src/api/clients/chatGateways/scripts/generateUri.ts +9 -0
  23. package/src/api/clients/communications/communications.ts +141 -0
  24. package/src/api/clients/configurations/configurations.ts +144 -0
  25. package/src/api/clients/contactGroups/contactGroups.ts +187 -0
  26. package/src/api/clients/flows/flow.ts +225 -0
  27. package/src/api/clients/gateways/defaults/defaultGateway.ts +9 -0
  28. package/src/api/clients/gateways/defaults/registerGateway.ts +12 -0
  29. package/src/api/clients/gateways/defaults/trunkingGateway.ts +16 -0
  30. package/src/api/clients/gateways/gateways.ts +175 -0
  31. package/src/api/clients/index.ts +68 -0
  32. package/src/api/clients/labels/labels.ts +56 -0
  33. package/src/api/clients/lists/blacklists.ts +118 -0
  34. package/src/api/clients/media/media.ts +120 -0
  35. package/src/api/clients/object/object.ts +114 -0
  36. package/src/api/clients/queues/defaults/processing.ts +14 -0
  37. package/src/api/clients/queues/queues.ts +238 -0
  38. package/src/api/clients/quickReplies/quickReplies.ts +117 -0
  39. package/src/api/clients/roles/roles.ts +202 -0
  40. package/src/api/clients/skills/skills.ts +112 -0
  41. package/src/api/clients/slaConditions/slaConditions.ts +165 -0
  42. package/src/api/clients/slas/slas.ts +118 -0
  43. package/src/api/clients/teams/teams.ts +144 -0
  44. package/src/api/clients/users/__tests__/users.spec.ts +265 -0
  45. package/src/api/clients/users/users.ts +230 -0
  46. package/src/api/clients/wtTypes/_shared/utils/sortDynamicFields.ts +21 -0
  47. package/src/api/clients/wtTypes/sysTypes/sysTypes.ts +64 -0
  48. package/src/api/clients/wtTypes/typeExtensions/typeExtensions.ts +122 -0
  49. package/src/api/clients//321/201ontacts/contactChatMessagesHistory.ts +98 -0
  50. package/src/api/clients//321/201ontacts/contacts.ts +339 -0
  51. package/src/api/clients//321/201ontacts/enums/ContactsSearchMode.ts +9 -0
  52. package/src/api/clients//321/201ontacts/index.ts +5 -0
  53. package/src/api/defaults/getDefaultGetListResponse/getDefaultGetListResponse.ts +6 -0
  54. package/src/api/defaults/getDefaultGetParams/getDefaultGetParams.ts +6 -0
  55. package/src/api/defaults/getDefaultInstance/getDefaultInstance.ts +21 -0
  56. package/src/api/defaults/getDefaultOpenAPIConfig/getDefaultOpenAPIConfig.ts +10 -0
  57. package/src/api/defaults/index.ts +11 -0
  58. package/src/api/index.ts +6 -0
  59. package/src/api/interceptors/index.ts +3 -0
  60. package/src/api/interceptors/request/index.ts +2 -0
  61. package/src/api/interceptors/request/updateToken.interceptor.ts +10 -0
  62. package/src/api/interceptors/response/handleUnauthorized.interceptor.ts +12 -0
  63. package/src/api/interceptors/response/index.ts +2 -0
  64. package/src/api/transformers/addQueryParamsToUrl/addQueryParamsToUrl.transformer.ts +19 -0
  65. package/src/api/transformers/applyTransform.ts +17 -0
  66. package/src/api/transformers/camelToSnake/camelToSnake.transformer.ts +5 -0
  67. package/src/api/transformers/generateUrl/generateUrl.transformer.ts +13 -0
  68. package/src/api/transformers/index.ts +28 -0
  69. package/src/api/transformers/log/log.transformer.ts +6 -0
  70. package/src/api/transformers/merge/merge.transformer.ts +8 -0
  71. package/src/api/transformers/mergeEach/mergeEach.transformer.ts +8 -0
  72. package/src/api/transformers/notify/notify.transformer.ts +39 -0
  73. package/src/api/transformers/sanitize/sanitize.transformer.ts +12 -0
  74. package/src/api/transformers/skipIf/skipIf.ts +11 -0
  75. package/src/api/transformers/snakeToCamel/snakeToCamel.transformer.ts +5 -0
  76. package/src/api/transformers/starToSearch/starToSearch.transformer.ts +15 -0
  77. package/src/gen/_docs/html/assets/navigation.js +1 -1
  78. package/src/gen/_docs/html/assets/search.js +1 -1
  79. package/src/gen/_docs/html/interfaces/_models_webitelCasesInputSource.WebitelCasesInputSource.html +0 -1
  80. package/src/gen/_docs/html/interfaces/_models_webitelCasesSource.WebitelCasesSource.html +5 -6
  81. package/src/gen/_docs/html/modules/index.html +1 -1
  82. package/src/gen/_docs/html/modules/sources_sources.zod.gen.html +7 -7
  83. package/src/gen/_docs/html/types/_models_createCaseParams.CreateCaseParams.html +9 -3
  84. package/src/gen/_docs/html/types/_models_updateCase2Params.UpdateCase2Params.html +8 -3
  85. package/src/gen/_docs/html/types/_models_updateCaseParams.UpdateCaseParams.html +8 -3
  86. package/src/gen/_docs/html/variables/cases_cases.zod.gen.createCaseQueryParams.html +1 -1
  87. package/src/gen/_docs/html/variables/cases_cases.zod.gen.updateCase2QueryParams.html +1 -1
  88. package/src/gen/_docs/html/variables/cases_cases.zod.gen.updateCaseQueryParams.html +1 -1
  89. package/src/gen/_models/createCaseParams.ts +8 -0
  90. package/src/gen/_models/updateCase2Params.ts +8 -0
  91. package/src/gen/_models/updateCaseParams.ts +8 -0
  92. package/src/gen/_models/webitelCasesInputSource.ts +0 -1
  93. package/src/gen/_models/webitelCasesSource.ts +5 -6
  94. package/src/gen/cases/cases.zod.gen.ts +18 -0
  95. package/src/gen/sources/sources.msw.api.gen.ts +6 -6
  96. package/src/gen/sources/sources.zod.gen.ts +0 -27
  97. package/types/api/axios/generateInstance.d.ts +2 -0
  98. package/types/api/axios/index.d.ts +1 -0
  99. package/types/api/clients/_shared/generatePermissionsApi.d.ts +13 -0
  100. package/types/api/clients/agents/agentChats.d.ts +8 -0
  101. package/types/api/clients/agents/agents.d.ts +44 -0
  102. package/types/api/clients/buckets/buckets.d.ts +24 -0
  103. package/types/api/clients/calendars/calendars.d.ts +28 -0
  104. package/types/api/clients/caseCloseReasonGroups/caseCloseReasonGroups.d.ts +24 -0
  105. package/types/api/clients/caseCloseReasons/caseCloseReasons.d.ts +30 -0
  106. package/types/api/clients/casePriorities/casePriorities.d.ts +24 -0
  107. package/types/api/clients/caseServiceCatalogs/serviceCatalogs.d.ts +24 -0
  108. package/types/api/clients/caseServices/services.d.ts +35 -0
  109. package/types/api/clients/caseSources/caseSources.d.ts +24 -0
  110. package/types/api/clients/caseStatusConditions/caseStatusConditions.d.ts +36 -0
  111. package/types/api/clients/caseStatuses/caseStatuses.d.ts +24 -0
  112. package/types/api/clients/catalog/catalog.d.ts +9 -0
  113. package/types/api/clients/chatGateways/chatGateways.d.ts +28 -0
  114. package/types/api/clients/chatGateways/defaults/defaultChatGateway.d.ts +15 -0
  115. package/types/api/clients/chatGateways/defaults/webChatGateway.d.ts +64 -0
  116. package/types/api/clients/chatGateways/enums/WebchatAlternativeChannel.enum.d.ts +8 -0
  117. package/types/api/clients/chatGateways/scripts/generateUri.d.ts +2 -0
  118. package/types/api/clients/communications/communications.d.ts +28 -0
  119. package/types/api/clients/configurations/configurations.d.ts +28 -0
  120. package/types/api/clients/contactGroups/contactGroups.d.ts +47 -0
  121. package/types/api/clients/flows/flow.d.ts +28 -0
  122. package/types/api/clients/gateways/defaults/defaultGateway.d.ts +8 -0
  123. package/types/api/clients/gateways/defaults/registerGateway.d.ts +13 -0
  124. package/types/api/clients/gateways/defaults/trunkingGateway.d.ts +11 -0
  125. package/types/api/clients/gateways/gateways.d.ts +28 -0
  126. package/types/api/clients/index.d.ts +33 -0
  127. package/types/api/clients/labels/labels.d.ts +11 -0
  128. package/types/api/clients/lists/blacklists.d.ts +24 -0
  129. package/types/api/clients/media/media.d.ts +19 -0
  130. package/types/api/clients/object/object.d.ts +11 -0
  131. package/types/api/clients/queues/defaults/processing.d.ts +7 -0
  132. package/types/api/clients/queues/queues.d.ts +32 -0
  133. package/types/api/clients/quickReplies/quickReplies.d.ts +24 -0
  134. package/types/api/clients/roles/roles.d.ts +32 -0
  135. package/types/api/clients/skills/skills.d.ts +24 -0
  136. package/types/api/clients/slaConditions/slaConditions.d.ts +30 -0
  137. package/types/api/clients/slas/slas.d.ts +24 -0
  138. package/types/api/clients/teams/teams.d.ts +24 -0
  139. package/types/api/clients/users/users.d.ts +46 -0
  140. package/types/api/clients/wtTypes/_shared/utils/sortDynamicFields.d.ts +2 -0
  141. package/types/api/clients/wtTypes/sysTypes/sysTypes.d.ts +30 -0
  142. package/types/api/clients/wtTypes/typeExtensions/typeExtensions.d.ts +32 -0
  143. package/types/api/clients//321/201ontacts/contactChatMessagesHistory.d.ts +14 -0
  144. package/types/api/clients//321/201ontacts/contacts.d.ts +23 -0
  145. package/types/api/clients//321/201ontacts/enums/ContactsSearchMode.d.ts +8 -0
  146. package/types/api/clients//321/201ontacts/index.d.ts +4 -0
  147. package/types/api/defaults/getDefaultGetListResponse/getDefaultGetListResponse.d.ts +5 -0
  148. package/types/api/defaults/getDefaultGetParams/getDefaultGetParams.d.ts +8 -0
  149. package/types/api/defaults/getDefaultInstance/getDefaultInstance.d.ts +3 -0
  150. package/types/api/defaults/getDefaultOpenAPIConfig/getDefaultOpenAPIConfig.d.ts +3 -0
  151. package/types/api/defaults/index.d.ts +5 -0
  152. package/types/api/index.d.ts +5 -0
  153. package/types/api/interceptors/index.d.ts +2 -0
  154. package/types/api/interceptors/request/index.d.ts +1 -0
  155. package/types/api/interceptors/request/updateToken.interceptor.d.ts +2 -0
  156. package/types/api/interceptors/response/handleUnauthorized.interceptor.d.ts +2 -0
  157. package/types/api/interceptors/response/index.d.ts +1 -0
  158. package/types/api/transformers/addQueryParamsToUrl/addQueryParamsToUrl.transformer.d.ts +2 -0
  159. package/types/api/transformers/applyTransform.d.ts +5 -0
  160. package/types/api/transformers/camelToSnake/camelToSnake.transformer.d.ts +2 -0
  161. package/types/api/transformers/generateUrl/generateUrl.transformer.d.ts +2 -0
  162. package/types/api/transformers/index.d.ts +14 -0
  163. package/types/api/transformers/log/log.transformer.d.ts +2 -0
  164. package/types/api/transformers/merge/merge.transformer.d.ts +2 -0
  165. package/types/api/transformers/mergeEach/mergeEach.transformer.d.ts +2 -0
  166. package/types/api/transformers/notify/notify.transformer.d.ts +2 -0
  167. package/types/api/transformers/sanitize/sanitize.transformer.d.ts +2 -0
  168. package/types/api/transformers/skipIf/skipIf.d.ts +1 -0
  169. package/types/api/transformers/snakeToCamel/snakeToCamel.transformer.d.ts +2 -0
  170. package/types/api/transformers/starToSearch/starToSearch.transformer.d.ts +2 -0
  171. package/types/gen/_models/configServicePatchConfigBody.d.ts +15 -0
  172. package/types/gen/_models/configServiceUpdateConfigBody.d.ts +14 -0
  173. package/types/gen/_models/engineTriggerObjectType.d.ts +0 -1
  174. package/types/gen/_models/fileServiceSearchFilesChannelItem.d.ts +0 -2
  175. package/types/gen/_models/googlerpcStatus.d.ts +4 -4
  176. package/types/gen/_models/groupsAddContactsToGroupParams.d.ts +12 -0
  177. package/types/gen/_models/loggerDeleteConfigBulkRequest.d.ts +9 -0
  178. package/types/gen/_models/loggerDeleteConfigLogsRequest.d.ts +10 -0
  179. package/types/gen/_models/loggerDeleteConfigLogsResponse.d.ts +9 -0
  180. package/types/gen/_models/readSystemObjectsParams.d.ts +9 -0
  181. package/types/gen/_models/searchConfigObjectItem.d.ts +25 -0
  182. package/types/gen/_models/searchConfigParams.d.ts +18 -0
  183. package/types/gen/_models/searchLogByConfigIdActionItem.d.ts +14 -0
  184. package/types/gen/_models/searchLogByConfigIdParams.d.ts +19 -0
  185. package/types/gen/_models/searchLogByRecordIdActionItem.d.ts +14 -0
  186. package/types/gen/_models/searchLogByRecordIdParams.d.ts +22 -0
  187. package/types/gen/_models/searchLogByUserIdActionItem.d.ts +14 -0
  188. package/types/gen/_models/searchLogByUserIdParams.d.ts +25 -0
  189. package/types/gen/_models/storageUploadFileChannel.d.ts +0 -2
  190. package/types/gen/_models/webitelcasesStatus.d.ts +2 -2
  191. package/types/gen/file-policies-service/file-policies-service.zod.gen.d.ts +0 -18
  192. package/types/gen/file-service/file-service.api.gen.d.ts +1 -3
  193. package/types/gen/file-service/file-service.msw.api.gen.d.ts +1 -3
  194. package/types/gen/file-service/file-service.zod.gen.d.ts +0 -18
  195. package/types/gen/trigger-service/trigger-service.zod.gen.d.ts +0 -9
  196. package/src/defaults/index.ts +0 -2
  197. package/src/gen/_docs/html/variables/sources_sources.zod.gen.createSourceBodyNameRegExp.html +0 -1
  198. package/src/gen/_docs/html/variables/sources_sources.zod.gen.createSourceResponseNameRegExp.html +0 -1
  199. package/src/gen/_docs/html/variables/sources_sources.zod.gen.deleteSourceResponseNameRegExp.html +0 -1
  200. package/src/gen/_docs/html/variables/sources_sources.zod.gen.listSourcesResponseItemsItemNameRegExp.html +0 -1
  201. package/src/gen/_docs/html/variables/sources_sources.zod.gen.locateSourceResponseSourceNameRegExp.html +0 -1
  202. package/src/gen/_docs/html/variables/sources_sources.zod.gen.updateSource2BodyNameRegExp.html +0 -1
  203. package/src/gen/_docs/html/variables/sources_sources.zod.gen.updateSource2ResponseNameRegExp.html +0 -1
  204. package/src/gen/_docs/html/variables/sources_sources.zod.gen.updateSourceBodyNameRegExp.html +0 -1
  205. package/src/gen/_docs/html/variables/sources_sources.zod.gen.updateSourceResponseNameRegExp.html +0 -1
@@ -0,0 +1,238 @@
1
+ import deepCopy from 'deep-copy';
2
+ import { QueueServiceApiFactory } from 'webitel-sdk';
3
+
4
+ import isEmpty from '../../../scripts/isEmpty';
5
+ import {
6
+ getDefaultGetListResponse,
7
+ getDefaultGetParams,
8
+ getDefaultInstance,
9
+ getDefaultOpenAPIConfig,
10
+ } from '../../defaults/index';
11
+ import applyTransform, {
12
+ camelToSnake,
13
+ merge,
14
+ mergeEach,
15
+ notify,
16
+ sanitize,
17
+ snakeToCamel,
18
+ starToSearch,
19
+ } from '../../transformers/index';
20
+ import processing from './defaults/processing';
21
+
22
+ const instance = getDefaultInstance();
23
+ const configuration = getDefaultOpenAPIConfig();
24
+
25
+ const queueService = new QueueServiceApiFactory(configuration, '', instance);
26
+
27
+ const doNotConvertKeys = ['variables'];
28
+
29
+ const fieldsToSend = [
30
+ 'name',
31
+ 'type',
32
+ 'strategy',
33
+ 'team',
34
+ 'priority',
35
+ 'dncList',
36
+ 'schema',
37
+ 'payload',
38
+ 'taskProcessing',
39
+ 'maxOfRetry',
40
+ 'timeout',
41
+ 'secBetweenRetries',
42
+ 'variables',
43
+ 'calendar',
44
+ 'description',
45
+ 'enabled',
46
+ 'ringtone',
47
+ 'doSchema',
48
+ 'afterSchema',
49
+ 'stickyAgent',
50
+ 'grantee',
51
+ 'tags',
52
+ ];
53
+
54
+ const preRequestHandler = (item) => {
55
+ const copy = deepCopy(item);
56
+ copy.variables = copy.variables.reduce((variables, variable) => {
57
+ if (!variable.key) return variables;
58
+ return { ...variables, [variable.key]: variable.value };
59
+ }, {});
60
+ return copy;
61
+ };
62
+
63
+ const getQueuesList = async (params) => {
64
+ const defaultObject = {
65
+ type: 0,
66
+ enabled: false,
67
+ active: 0,
68
+ waiting: 0,
69
+ priority: '0',
70
+ };
71
+
72
+ const { page, size, search, sort, fields, id, queueType, team, tags } =
73
+ applyTransform(params, [
74
+ merge(getDefaultGetParams()),
75
+ starToSearch('search'),
76
+ ]);
77
+
78
+ try {
79
+ const response = await queueService.searchQueue(
80
+ page,
81
+ size,
82
+ search,
83
+ sort,
84
+ fields,
85
+ id,
86
+ queueType,
87
+ team,
88
+ tags,
89
+ );
90
+ const { items, next } = applyTransform(response.data, [
91
+ snakeToCamel(doNotConvertKeys),
92
+ merge(getDefaultGetListResponse()),
93
+ ]);
94
+ return {
95
+ items: applyTransform(items, [mergeEach(defaultObject)]),
96
+ next,
97
+ };
98
+ } catch (err) {
99
+ throw applyTransform(err, [notify]);
100
+ }
101
+ };
102
+
103
+ const getQueue = async ({ itemId: id }) => {
104
+ const defaultObject = {
105
+ tags: [],
106
+ type: 0,
107
+ formSchema: {},
108
+ taskProcessing: {},
109
+ };
110
+ const responseHandler = (item) => {
111
+ const copy = deepCopy(item);
112
+ try {
113
+ if (copy.variables) {
114
+ copy.variables = Object.keys(copy.variables).map((key) => ({
115
+ key,
116
+ value: copy.variables[key],
117
+ }));
118
+ }
119
+ if (isEmpty(copy.taskProcessing)) {
120
+ copy.taskProcessing = processing({
121
+ enabled: !!copy.processing,
122
+ formSchema: copy.formSchema,
123
+ sec: copy.processingSec || 0,
124
+ renewalSec: copy.processingRenewalSec || 0,
125
+ });
126
+ }
127
+ return copy;
128
+ } catch (err) {
129
+ throw err;
130
+ }
131
+ };
132
+ try {
133
+ const response = await queueService.readQueue(id);
134
+ return applyTransform(response.data, [
135
+ snakeToCamel(doNotConvertKeys),
136
+ merge(defaultObject),
137
+ responseHandler,
138
+ ]);
139
+ } catch (err) {
140
+ throw applyTransform(err, [notify]);
141
+ }
142
+ };
143
+
144
+ const addQueue = async ({ itemInstance }) => {
145
+ const item = applyTransform(itemInstance, [
146
+ preRequestHandler,
147
+ sanitize(fieldsToSend),
148
+ camelToSnake(doNotConvertKeys),
149
+ ]);
150
+ try {
151
+ const response = await queueService.createQueue(item);
152
+ return applyTransform(response.data, [snakeToCamel(doNotConvertKeys)]);
153
+ } catch (err) {
154
+ throw applyTransform(err, [notify]);
155
+ }
156
+ };
157
+
158
+ const updateQueue = async ({ itemInstance, itemId: id }) => {
159
+ const item = applyTransform(itemInstance, [
160
+ preRequestHandler,
161
+ sanitize(fieldsToSend),
162
+ camelToSnake(doNotConvertKeys),
163
+ ]);
164
+ try {
165
+ const response = await queueService.updateQueue(id, item);
166
+ return applyTransform(response.data, [snakeToCamel(doNotConvertKeys)]);
167
+ } catch (err) {
168
+ throw applyTransform(err, [notify]);
169
+ }
170
+ };
171
+
172
+ const patchQueue = async ({ id, changes }) => {
173
+ const item = applyTransform(changes, [
174
+ sanitize(fieldsToSend),
175
+ camelToSnake(doNotConvertKeys),
176
+ ]);
177
+ try {
178
+ const response = await queueService.patchQueue(id, item);
179
+ return applyTransform(response.data, [snakeToCamel(doNotConvertKeys)]);
180
+ } catch (err) {
181
+ throw applyTransform(err, [notify]);
182
+ }
183
+ };
184
+
185
+ const deleteQueue = async ({ id }) => {
186
+ try {
187
+ const response = await queueService.deleteQueue(id);
188
+ return applyTransform(response.data, []);
189
+ } catch (err) {
190
+ throw applyTransform(err, [notify]);
191
+ }
192
+ };
193
+
194
+ const getQueuesLookup = (params) =>
195
+ getQueuesList({
196
+ ...params,
197
+ fields: params.fields || ['id', 'name', 'type'],
198
+ });
199
+
200
+ const getQueuesTags = async (params) => {
201
+ const { page, size, search, sort, fields } = applyTransform(params, [
202
+ merge(getDefaultGetParams()),
203
+ starToSearch(),
204
+ camelToSnake(doNotConvertKeys),
205
+ ]);
206
+ try {
207
+ const response = await queueService.searchQueueTags(
208
+ page,
209
+ size,
210
+ search,
211
+ sort,
212
+ fields,
213
+ );
214
+ const { items, next } = applyTransform(response.data, [
215
+ snakeToCamel(doNotConvertKeys),
216
+ merge(getDefaultGetListResponse()),
217
+ ]);
218
+ return {
219
+ items,
220
+ next,
221
+ };
222
+ } catch (err) {
223
+ throw applyTransform(err, [notify]);
224
+ }
225
+ };
226
+
227
+ const QueuesAPI = {
228
+ getList: getQueuesList,
229
+ get: getQueue,
230
+ add: addQueue,
231
+ patch: patchQueue,
232
+ update: updateQueue,
233
+ delete: deleteQueue,
234
+ getLookup: getQueuesLookup,
235
+ getQueuesTags,
236
+ };
237
+
238
+ export default QueuesAPI;
@@ -0,0 +1,117 @@
1
+ import { getQuickRepliesService } from '@webitel/api-services/gen';
2
+
3
+ import {
4
+ getDefaultGetListResponse,
5
+ getDefaultGetParams,
6
+ } from '../../defaults/index';
7
+ import applyTransform, {
8
+ camelToSnake,
9
+ merge,
10
+ notify,
11
+ sanitize,
12
+ snakeToCamel,
13
+ } from '../../transformers/index';
14
+
15
+ const quickReplyService = getQuickRepliesService();
16
+
17
+ const fieldsToSend = [
18
+ 'name',
19
+ 'queues',
20
+ 'article',
21
+ 'teams',
22
+ 'text',
23
+ ];
24
+
25
+ const getQuickRepliesList = async (params) => {
26
+ const fieldsToSend = ['page', 'size', 'q', 'sort', 'fields', 'id'];
27
+
28
+ const { page, size, fields, sort, id, q } = applyTransform(params, [
29
+ merge(getDefaultGetParams()),
30
+ (params) => ({ ...params, q: params.search }),
31
+ sanitize(fieldsToSend),
32
+ camelToSnake(),
33
+ ]);
34
+
35
+ try {
36
+ const response = await quickReplyService.searchQuickReplies({
37
+ page,
38
+ size,
39
+ fields,
40
+ sort,
41
+ id,
42
+ q,
43
+ });
44
+ const { items, next } = applyTransform(response.data, [
45
+ merge(getDefaultGetListResponse()),
46
+ ]);
47
+ return {
48
+ items: applyTransform(items, [snakeToCamel()]),
49
+ next,
50
+ };
51
+ } catch (err) {
52
+ throw applyTransform(err, [notify]);
53
+ }
54
+ };
55
+
56
+ const getQuickReply = async ({ itemId: id }) => {
57
+
58
+ try {
59
+ const response = await quickReplyService.readQuickReply(id);
60
+ return applyTransform(response.data, [snakeToCamel()]);
61
+ } catch (err) {
62
+ throw applyTransform(err, [notify]);
63
+ }
64
+ };
65
+
66
+ const addQuickReply= async ({ itemInstance }) => {
67
+ const item = applyTransform(itemInstance, [
68
+ sanitize(fieldsToSend),
69
+ camelToSnake(),
70
+ ]);
71
+ try {
72
+ const response = await quickReplyService.createQuickReply(item);
73
+ return applyTransform(response.data, [snakeToCamel()]);
74
+ } catch (err) {
75
+ throw applyTransform(err, [notify]);
76
+ }
77
+ };
78
+
79
+
80
+ const updateQuickReply = async ({ itemInstance, itemId: id }) => {
81
+ const item = applyTransform(itemInstance, [
82
+ camelToSnake(),
83
+ sanitize(fieldsToSend),
84
+ ]);
85
+
86
+ try {
87
+ const response = await quickReplyService.updateQuickReply(id, item);
88
+ return applyTransform(response.data, [snakeToCamel()]);
89
+ } catch (err) {
90
+ throw applyTransform(err, [notify]);
91
+ }
92
+ };
93
+
94
+ const deleteQuickReply= async ({ id }) => {
95
+ try {
96
+ const response = await quickReplyService.deleteQuickReply(id);
97
+ return applyTransform(response.data, []);
98
+ } catch (err) {
99
+ throw applyTransform(err, [notify]);
100
+ }
101
+ };
102
+
103
+ const getLookup = (params) =>
104
+ getQuickRepliesList({
105
+ ...params,
106
+ fields: params.fields || ['id', 'name'],
107
+ });
108
+
109
+ const QuickRepliesApi = {
110
+ getList: getQuickRepliesList,
111
+ get: getQuickReply,
112
+ add: addQuickReply,
113
+ update: updateQuickReply,
114
+ delete: deleteQuickReply,
115
+ getLookup,
116
+ }
117
+ export default QuickRepliesApi;
@@ -0,0 +1,202 @@
1
+ import deepCopy from 'deep-copy';
2
+
3
+ import ApplicationsAccess from '../../../modules/Userinfo/classes/ApplicationsAccess';
4
+ import {
5
+ getDefaultGetListResponse,
6
+ getDefaultGetParams,
7
+ getDefaultInstance,
8
+ } from '../../defaults/index';
9
+ import applyTransform, {
10
+ camelToSnake,
11
+ generateUrl,
12
+ merge,
13
+ notify,
14
+ sanitize,
15
+ snakeToCamel,
16
+ starToSearch,
17
+ } from '../../transformers/index';
18
+
19
+ const instance = getDefaultInstance();
20
+
21
+ const baseUrl = '/roles';
22
+ const fieldsToSend = ['name', 'description', 'permissions', 'metadata'];
23
+
24
+ const preRequestHandler = (item) => {
25
+ const copy = deepCopy(item);
26
+ copy.metadata.access = ApplicationsAccess.minify(copy.metadata.access);
27
+ return copy;
28
+ };
29
+
30
+ const getRoleList = async (params) => {
31
+ const fieldsToSend = ['page', 'size', 'q', 'sort', 'fields', 'ids'];
32
+
33
+ const url = applyTransform(params, [
34
+ merge(getDefaultGetParams()),
35
+ (params) => {
36
+ params.ids = params.ids || params.id; // accept either ids or id as param
37
+ return params;
38
+ },
39
+ starToSearch('search'),
40
+ (params) => ({ ...params, q: params.search }),
41
+ sanitize(fieldsToSend),
42
+ camelToSnake(),
43
+ generateUrl(baseUrl),
44
+ ]);
45
+ try {
46
+ const response = await instance.get(url);
47
+ const { items, next } = applyTransform(response.data, [
48
+ snakeToCamel(),
49
+ merge(getDefaultGetListResponse()),
50
+ ]);
51
+ return {
52
+ items,
53
+ next,
54
+ };
55
+ } catch (err) {
56
+ throw applyTransform(err, [notify]);
57
+ }
58
+ };
59
+
60
+ const getRole = async ({ itemId: id }) => {
61
+ const defaultObject = {
62
+ name: '',
63
+ description: '',
64
+ permissions: [],
65
+ metadata: {},
66
+ };
67
+
68
+ const itemResponseHandler = (response) => {
69
+ const copy = deepCopy(response);
70
+ copy.metadata.access = new ApplicationsAccess({
71
+ access: copy.metadata.access,
72
+ }).getAccess();
73
+ return copy;
74
+ };
75
+
76
+ const url = `${baseUrl}/${id}?fields=metadata&fields=permissions&fields=name&fields=description`;
77
+
78
+ try {
79
+ const response = await instance.get(url);
80
+ return applyTransform(response.data, [
81
+ snakeToCamel(),
82
+ merge(defaultObject),
83
+ itemResponseHandler,
84
+ ]);
85
+ } catch (err) {
86
+ throw applyTransform(err, [notify]);
87
+ }
88
+ };
89
+
90
+ const getExtendedRoles = async (params) => {
91
+ const fieldsToSend = ['page', 'size', 'q', 'sort', 'fields', 'id'];
92
+
93
+ const url = applyTransform(params, [
94
+ merge(getDefaultGetParams()),
95
+ starToSearch('search'),
96
+ (params) => ({ ...params, q: params.search }),
97
+ sanitize(fieldsToSend),
98
+ camelToSnake(),
99
+ generateUrl(baseUrl),
100
+ ]);
101
+ try {
102
+ const response = await instance.get(url);
103
+ const { items, next } = applyTransform(response.data, [
104
+ snakeToCamel(),
105
+ merge(getDefaultGetListResponse()),
106
+ ]);
107
+ return {
108
+ items,
109
+ next,
110
+ };
111
+ } catch (err) {
112
+ throw applyTransform(err, [notify]);
113
+ }
114
+ };
115
+
116
+ const addRole = async ({ itemInstance }) => {
117
+ const item = applyTransform(itemInstance, [
118
+ preRequestHandler,
119
+ sanitize(fieldsToSend),
120
+ camelToSnake(),
121
+ ]);
122
+ try {
123
+ const response = await instance.post(baseUrl, item);
124
+ return applyTransform(response.data, [snakeToCamel()]);
125
+ } catch (err) {
126
+ throw applyTransform(err, [notify]);
127
+ }
128
+ };
129
+
130
+ const updateRole = async ({ itemInstance, itemId: id }) => {
131
+ const item = applyTransform(itemInstance, [
132
+ preRequestHandler,
133
+ sanitize(fieldsToSend),
134
+ camelToSnake(),
135
+ ]);
136
+
137
+ const url = `${baseUrl}/${id}`;
138
+ try {
139
+ const response = await instance.put(url, item);
140
+ return applyTransform(response.data, [snakeToCamel()]);
141
+ } catch (err) {
142
+ throw applyTransform(err, [notify]);
143
+ }
144
+ };
145
+
146
+ const deleteRole = async ({ id }) => {
147
+ const url = `${baseUrl}/${id}`;
148
+ try {
149
+ const response = await instance.delete(url);
150
+ return applyTransform(response.data, []);
151
+ } catch (err) {
152
+ throw applyTransform(err, [notify]);
153
+ }
154
+ };
155
+
156
+ const getRolesLookup = (params) =>
157
+ getRoleList({
158
+ ...params,
159
+ fields: params.fields || ['id', 'name'],
160
+ });
161
+
162
+ const PERMISSIONS_LIST_URL = '/permissions';
163
+
164
+ const getPermissionsOptions = async (params) => {
165
+ const fieldsToSend = ['page', 'size', 'q', 'sort', 'fields', 'id'];
166
+
167
+ const url = applyTransform(params, [
168
+ merge(getDefaultGetParams()),
169
+ starToSearch('search'),
170
+ (params) => ({ ...params, q: params.search }),
171
+ sanitize(fieldsToSend),
172
+ camelToSnake(),
173
+ generateUrl(PERMISSIONS_LIST_URL),
174
+ ]);
175
+ try {
176
+ const response = await instance.get(url);
177
+ const { items, next } = applyTransform(response.data, [
178
+ snakeToCamel(),
179
+ merge(getDefaultGetListResponse()),
180
+ ]);
181
+ return {
182
+ items,
183
+ next,
184
+ };
185
+ } catch (err) {
186
+ throw applyTransform(err, [notify]);
187
+ }
188
+ };
189
+
190
+ const RolesAPI = {
191
+ getList: getRoleList,
192
+ get: getRole,
193
+ add: addRole,
194
+ update: updateRole,
195
+ delete: deleteRole,
196
+ getLookup: getRolesLookup,
197
+
198
+ getExtendedRoles,
199
+ getPermissionsOptions,
200
+ };
201
+
202
+ export default RolesAPI;
@@ -0,0 +1,112 @@
1
+ import { SkillServiceApiFactory } from 'webitel-sdk';
2
+
3
+ import {
4
+ getDefaultGetListResponse,
5
+ getDefaultGetParams,
6
+ getDefaultInstance,
7
+ getDefaultOpenAPIConfig,
8
+ } from '../../defaults/index';
9
+ import applyTransform, {
10
+ camelToSnake,
11
+ merge,
12
+ notify,
13
+ sanitize,
14
+ snakeToCamel,
15
+ starToSearch,
16
+ } from '../../transformers/index';
17
+
18
+ const instance = getDefaultInstance();
19
+ const configuration = getDefaultOpenAPIConfig();
20
+
21
+ const skillService = new SkillServiceApiFactory(configuration, '', instance);
22
+
23
+ const getSkillsList = async (params) => {
24
+ const { page, size, search, sort, fields, id } = applyTransform(params, [
25
+ merge(getDefaultGetParams()),
26
+ starToSearch('search'),
27
+ ]);
28
+
29
+ try {
30
+ const response = await skillService.searchSkill(
31
+ page,
32
+ size,
33
+ search,
34
+ sort,
35
+ fields,
36
+ id,
37
+ );
38
+ const { items, next } = applyTransform(response.data, [
39
+ snakeToCamel(),
40
+ merge(getDefaultGetListResponse()),
41
+ ]);
42
+ return {
43
+ items,
44
+ next,
45
+ };
46
+ } catch (err) {
47
+ throw applyTransform(err, [notify]);
48
+ }
49
+ };
50
+
51
+ const getSkill = async ({ itemId: id }) => {
52
+ try {
53
+ const response = await skillService.readSkill(id);
54
+ return applyTransform(response.data, [snakeToCamel()]);
55
+ } catch (err) {
56
+ throw applyTransform(err, [notify]);
57
+ }
58
+ };
59
+
60
+ const fieldsToSend = ['name', 'description'];
61
+
62
+ const addSkill = async ({ itemInstance }) => {
63
+ const item = applyTransform(itemInstance, [
64
+ sanitize(fieldsToSend),
65
+ camelToSnake(),
66
+ ]);
67
+ try {
68
+ const response = await skillService.createSkill(item);
69
+ return applyTransform(response.data, [snakeToCamel()]);
70
+ } catch (err) {
71
+ throw applyTransform(err, [notify]);
72
+ }
73
+ };
74
+
75
+ const updateSkill = async ({ itemInstance, itemId: id }) => {
76
+ const item = applyTransform(itemInstance, [
77
+ sanitize(fieldsToSend),
78
+ camelToSnake(),
79
+ ]);
80
+ try {
81
+ const response = await skillService.updateSkill(id, item);
82
+ return applyTransform(response.data, [snakeToCamel()]);
83
+ } catch (err) {
84
+ throw applyTransform(err, [notify]);
85
+ }
86
+ };
87
+
88
+ const deleteSkill = async ({ id }) => {
89
+ try {
90
+ const response = await skillService.deleteSkill(id);
91
+ return applyTransform(response.data, []);
92
+ } catch (err) {
93
+ throw applyTransform(err, [notify]);
94
+ }
95
+ };
96
+
97
+ const getSkillsLookup = (params) =>
98
+ getSkillsList({
99
+ ...params,
100
+ fields: params.fields || ['id', 'name'],
101
+ });
102
+
103
+ const SkillsAPI = {
104
+ getList: getSkillsList,
105
+ get: getSkill,
106
+ add: addSkill,
107
+ update: updateSkill,
108
+ delete: deleteSkill,
109
+ getLookup: getSkillsLookup,
110
+ };
111
+
112
+ export default SkillsAPI;