@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,165 @@
1
+ import { SLAConditionsApiFactory } 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
+ } from '../../transformers/index';
16
+
17
+ const instance = getDefaultInstance();
18
+ const configuration = getDefaultOpenAPIConfig();
19
+
20
+ const slaConditionsService = new SLAConditionsApiFactory(
21
+ configuration,
22
+ '',
23
+ instance,
24
+ );
25
+
26
+ const fieldsToSend = [
27
+ 'name',
28
+ 'priorities',
29
+ 'sla_id',
30
+ 'reaction_time',
31
+ 'resolution_time',
32
+ ];
33
+
34
+ const getConditionsList = async ({ parentId, ...rest }) => {
35
+ const fieldsToSend = [
36
+ 'page',
37
+ 'size',
38
+ 'q',
39
+ 'sort',
40
+ 'fields',
41
+ 'id',
42
+ 'slaConditionId',
43
+ 'priorityId',
44
+ ];
45
+
46
+ const {
47
+ page,
48
+ size,
49
+ fields,
50
+ sort,
51
+ id,
52
+ q,
53
+ sla_condition_id: slaConditionId,
54
+ priority_id: priorityId,
55
+ } = applyTransform(rest, [
56
+ merge(getDefaultGetParams()),
57
+ (params) => ({ ...params, q: params.search }),
58
+ sanitize(fieldsToSend),
59
+ camelToSnake(),
60
+ ]);
61
+
62
+ try {
63
+ const response = await slaConditionsService.listSLAConditions(
64
+ parentId,
65
+ page,
66
+ size,
67
+ fields,
68
+ sort,
69
+ id,
70
+ q,
71
+ slaConditionId,
72
+ priorityId,
73
+ );
74
+ const { items, next } = applyTransform(response.data, [
75
+ merge(getDefaultGetListResponse()),
76
+ ]);
77
+ return {
78
+ items: applyTransform(items, [snakeToCamel()]),
79
+ next,
80
+ };
81
+ } catch (err) {
82
+ throw applyTransform(err, [notify]);
83
+ }
84
+ };
85
+
86
+ const getCondition = async ({ parentId, itemId: id }) => {
87
+ const itemResponseHandler = (item) => {
88
+ return item.slaCondition;
89
+ };
90
+
91
+ try {
92
+ const response = await slaConditionsService.locateSLACondition(
93
+ parentId,
94
+ id,
95
+ fieldsToSend,
96
+ );
97
+ return applyTransform(response.data, [snakeToCamel(), itemResponseHandler]);
98
+ } catch (err) {
99
+ throw applyTransform(err, [notify]);
100
+ }
101
+ };
102
+
103
+ const updateCondition = async ({ itemInstance, itemId: id }) => {
104
+ const item = applyTransform(itemInstance, [
105
+ camelToSnake(),
106
+ sanitize(fieldsToSend),
107
+ ]);
108
+
109
+ try {
110
+ const response = await slaConditionsService.updateSLACondition(
111
+ itemInstance.slaId,
112
+ id,
113
+ item,
114
+ );
115
+ return applyTransform(response.data, [snakeToCamel()]);
116
+ } catch (err) {
117
+ throw applyTransform(err, [notify]);
118
+ }
119
+ };
120
+
121
+ const addCondition = async ({ itemInstance, parentId }) => {
122
+ const item = applyTransform(itemInstance, [
123
+ camelToSnake(),
124
+ sanitize(fieldsToSend),
125
+ ]);
126
+
127
+ try {
128
+ const response = await slaConditionsService.createSLACondition(
129
+ parentId,
130
+ item,
131
+ );
132
+ return applyTransform(response.data, [snakeToCamel()]);
133
+ } catch (err) {
134
+ throw applyTransform(err, [notify]);
135
+ }
136
+ };
137
+
138
+ const deleteCondition = async ({ id, parentId }) => {
139
+ try {
140
+ const response = await slaConditionsService.deleteSLACondition(
141
+ parentId,
142
+ id,
143
+ );
144
+ return applyTransform(response.data, []);
145
+ } catch (err) {
146
+ throw applyTransform(err, [notify]);
147
+ }
148
+ };
149
+
150
+ const getLookup = async (params) =>
151
+ getConditionsList({
152
+ ...params,
153
+ fields: params.fields || ['id', 'name'],
154
+ });
155
+
156
+ const SLAConditionsAPI = {
157
+ getList: getConditionsList,
158
+ get: getCondition,
159
+ update: updateCondition,
160
+ delete: deleteCondition,
161
+ add: addCondition,
162
+ getLookup,
163
+ };
164
+
165
+ export default SLAConditionsAPI;
@@ -0,0 +1,118 @@
1
+ import { SLAsApiFactory } 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
+ } from '../../transformers/index';
16
+
17
+ const instance = getDefaultInstance();
18
+ const configuration = getDefaultOpenAPIConfig();
19
+
20
+ const slaService = new SLAsApiFactory(configuration, '', instance);
21
+
22
+ const fieldsToSend = [
23
+ 'name',
24
+ 'description',
25
+ 'valid_from',
26
+ 'valid_to',
27
+ 'calendar',
28
+ 'reaction_time',
29
+ 'resolution_time',
30
+ ];
31
+
32
+ const getSlasList = async (params) => {
33
+ const fieldsToSend = ['page', 'size', 'q', 'sort', 'fields', 'id'];
34
+
35
+ const { page, size, fields, sort, id, q } = applyTransform(params, [
36
+ merge(getDefaultGetParams()),
37
+ (params) => ({ ...params, q: params.search }),
38
+ sanitize(fieldsToSend),
39
+ camelToSnake(),
40
+ ]);
41
+ try {
42
+ const response = await slaService.listSLAs(page, size, fields, sort, id, q);
43
+ const { items, next } = applyTransform(response.data, [
44
+ merge(getDefaultGetListResponse()),
45
+ ]);
46
+ return {
47
+ items: applyTransform(items, []),
48
+ next,
49
+ };
50
+ } catch (err) {
51
+ throw applyTransform(err, [notify]);
52
+ }
53
+ };
54
+
55
+ const getSla = async ({ itemId: id }) => {
56
+ const itemResponseHandler = (item) => {
57
+ return item.sla;
58
+ };
59
+
60
+ try {
61
+ const response = await slaService.locateSLA(id, fieldsToSend);
62
+ return applyTransform(response.data, [snakeToCamel(), itemResponseHandler]);
63
+ } catch (err) {
64
+ throw applyTransform(err, [notify]);
65
+ }
66
+ };
67
+
68
+ const addSla = async ({ itemInstance }) => {
69
+ const item = applyTransform(itemInstance, [
70
+ camelToSnake(),
71
+ sanitize(fieldsToSend),
72
+ ]);
73
+ try {
74
+ const response = await slaService.createSLA(item);
75
+ return applyTransform(response.data, [snakeToCamel()]);
76
+ } catch (err) {
77
+ throw applyTransform(err, [notify]);
78
+ }
79
+ };
80
+
81
+ const updateSla = async ({ itemInstance, itemId: id }) => {
82
+ const item = applyTransform(itemInstance, [
83
+ camelToSnake(),
84
+ sanitize(fieldsToSend),
85
+ ]);
86
+ try {
87
+ const response = await slaService.updateSLA(id, item);
88
+ return applyTransform(response.data, [snakeToCamel()]);
89
+ } catch (err) {
90
+ throw applyTransform(err, [notify]);
91
+ }
92
+ };
93
+
94
+ const deleteSla = async ({ id }) => {
95
+ try {
96
+ const response = await slaService.deleteSLA(id);
97
+ return applyTransform(response.data, []);
98
+ } catch (err) {
99
+ throw applyTransform(err, [notify]);
100
+ }
101
+ };
102
+
103
+ const getSlasLookup = (params) =>
104
+ getSlasList({
105
+ ...params,
106
+ fields: params.fields || ['id', 'name'],
107
+ });
108
+
109
+ const SlasAPI = {
110
+ getList: getSlasList,
111
+ getLookup: getSlasLookup,
112
+ get: getSla,
113
+ add: addSla,
114
+ update: updateSla,
115
+ delete: deleteSla,
116
+ };
117
+
118
+ export default SlasAPI;
@@ -0,0 +1,144 @@
1
+ import { AgentTeamServiceApiFactory } 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 teamService = new AgentTeamServiceApiFactory(configuration, '', instance);
22
+
23
+ const fieldsToSend = [
24
+ 'name',
25
+ 'description',
26
+ 'strategy',
27
+ 'admin',
28
+ 'maxNoAnswer',
29
+ 'wrapUpTime',
30
+ 'noAnswerDelayTime',
31
+ 'taskAcceptTimeout',
32
+ 'callTimeout',
33
+ 'inviteChatTimeout',
34
+ ];
35
+
36
+ const getTeamsList = async (params) => {
37
+ const { page, size, search, sort, fields, id, strategy, adminId } =
38
+ applyTransform(params, [
39
+ merge(getDefaultGetParams()),
40
+ starToSearch('search'),
41
+ ]);
42
+
43
+ try {
44
+ const response = await teamService.searchAgentTeam(
45
+ page,
46
+ size,
47
+ search,
48
+ sort,
49
+ fields,
50
+ id,
51
+ strategy,
52
+ adminId,
53
+ );
54
+ const { items, next } = applyTransform(response.data, [
55
+ snakeToCamel(),
56
+ merge(getDefaultGetListResponse()),
57
+ ]);
58
+ return {
59
+ items,
60
+ next,
61
+ };
62
+ } catch (err) {
63
+ throw applyTransform(err, [notify]);
64
+ }
65
+ };
66
+
67
+ const getTeam = async ({ itemId: id }) => {
68
+ const defaultObject = {
69
+ name: '',
70
+ strategy: {},
71
+ admin: [],
72
+ description: '',
73
+ busyDelayTime: 0,
74
+ callTimeout: 0,
75
+ maxNoAnswer: 0,
76
+ noAnswerDelayTime: 0,
77
+ taskAcceptTimeout: 0,
78
+ inviteChatTimeout: 0,
79
+ rejectDelayTime: 0,
80
+ wrapUpTime: 0,
81
+ };
82
+
83
+ try {
84
+ const response = await teamService.readAgentTeam(id);
85
+ return applyTransform(response.data, [
86
+ snakeToCamel(),
87
+ merge(defaultObject),
88
+ ]);
89
+ } catch (err) {
90
+ throw applyTransform(err, [notify]);
91
+ }
92
+ };
93
+
94
+ const addTeam = async ({ itemInstance }) => {
95
+ const item = applyTransform(itemInstance, [
96
+ sanitize(fieldsToSend),
97
+ camelToSnake(),
98
+ ]);
99
+ try {
100
+ const response = await teamService.createAgentTeam(item);
101
+ return applyTransform(response.data, [snakeToCamel()]);
102
+ } catch (err) {
103
+ throw applyTransform(err, [notify]);
104
+ }
105
+ };
106
+
107
+ const updateTeam = async ({ itemInstance, itemId: id }) => {
108
+ const item = applyTransform(itemInstance, [
109
+ sanitize(fieldsToSend),
110
+ camelToSnake(),
111
+ ]);
112
+ try {
113
+ const response = await teamService.updateAgentTeam(id, item);
114
+ return applyTransform(response.data, [snakeToCamel()]);
115
+ } catch (err) {
116
+ throw applyTransform(err, [notify]);
117
+ }
118
+ };
119
+
120
+ const deleteTeam = async ({ id }) => {
121
+ try {
122
+ const response = await teamService.deleteAgentTeam(id);
123
+ return applyTransform(response.data, []);
124
+ } catch (err) {
125
+ throw applyTransform(err, [notify]);
126
+ }
127
+ };
128
+
129
+ const getTeamsLookup = (params) =>
130
+ getTeamsList({
131
+ ...params,
132
+ fields: params.fields || ['id', 'name'],
133
+ });
134
+
135
+ const TeamsAPI = {
136
+ getList: getTeamsList,
137
+ get: getTeam,
138
+ add: addTeam,
139
+ update: updateTeam,
140
+ delete: deleteTeam,
141
+ getLookup: getTeamsLookup,
142
+ };
143
+
144
+ export default TeamsAPI;
@@ -0,0 +1,265 @@
1
+ import axiosMock from '../../../../tests/mocks/axiosMock';
2
+
3
+ const instanceMock = axiosMock()().default;
4
+
5
+ vi.doMock('../../../defaults/getDefaultInstance/getDefaultInstance.ts', () => ({
6
+ default: () => instanceMock,
7
+ }));
8
+
9
+ describe('UsersAPI', () => {
10
+ beforeEach(() => {
11
+ Object.assign(instanceMock, axiosMock()().default);
12
+ });
13
+
14
+ it('correctly computes "getList" method api call', async () => {
15
+ const get = vi.fn(() =>
16
+ Promise.resolve({
17
+ data: {},
18
+ }),
19
+ );
20
+
21
+ instanceMock.get = get;
22
+
23
+ const UsersAPI = (await import('../users.ts')).default;
24
+
25
+ const inputParams = {
26
+ fields: ['id', 'name', 'vitest'],
27
+ };
28
+ const url = '/users?fields=id&fields=name&fields=vitest&page=1&size=10';
29
+ await UsersAPI.getList(inputParams);
30
+ expect(get).toHaveBeenCalledWith(url);
31
+ });
32
+
33
+ it('correctly computes "getList" method output', async () => {
34
+ const output = {
35
+ items: [
36
+ {
37
+ dnd: false,
38
+ id: 1,
39
+ name: '',
40
+ state: true,
41
+ status: '',
42
+ shouldCaseConvert: '',
43
+ },
44
+ ],
45
+ next: true,
46
+ };
47
+
48
+ const response = {
49
+ data: {
50
+ items: [{ id: 1, should_case_convert: '' }],
51
+ next: true,
52
+ },
53
+ };
54
+
55
+ const get = vi.fn(() => Promise.resolve(response));
56
+
57
+ instanceMock.get = get;
58
+
59
+ const UsersAPI = (await import('../users.ts')).default;
60
+
61
+ expect(await UsersAPI.getList({})).toEqual(output);
62
+ });
63
+
64
+ it('correctly computes "get" method api call', async () => {
65
+ const inputParams = {
66
+ itemId: 1,
67
+ };
68
+ const url = '/users/1';
69
+
70
+ const get = vi.fn(() =>
71
+ Promise.resolve({
72
+ data: {},
73
+ }),
74
+ );
75
+
76
+ instanceMock.get = get;
77
+
78
+ const UsersAPI = (await import('../users.ts')).default;
79
+
80
+ await UsersAPI.get(inputParams);
81
+ expect(get).toHaveBeenCalledWith(url);
82
+ });
83
+
84
+ it('correctly computes "get" method output', async () => {
85
+ const output = {
86
+ id: 1,
87
+ device: {},
88
+ devices: [],
89
+ license: [],
90
+ roles: [],
91
+ variables: [
92
+ {
93
+ key: '',
94
+ value: '',
95
+ },
96
+ ],
97
+ };
98
+
99
+ const response = {
100
+ data: {
101
+ id: 1,
102
+ },
103
+ };
104
+
105
+ const get = vi.fn(() => Promise.resolve(response));
106
+
107
+ instanceMock.get = get;
108
+
109
+ const UsersAPI = (await import('../users.ts')).default;
110
+
111
+ expect(await UsersAPI.get({})).toEqual(output);
112
+ });
113
+
114
+ it('correctly computes "add" method api call', async () => {
115
+ const input = {
116
+ itemInstance: {
117
+ name: 'test',
118
+ },
119
+ };
120
+
121
+ const body = {
122
+ name: 'test',
123
+ profile: {}, // variables field (?)
124
+ };
125
+
126
+ const url = '/users';
127
+
128
+ const post = vi.fn(() =>
129
+ Promise.resolve({
130
+ data: {},
131
+ }),
132
+ );
133
+
134
+ instanceMock.post = post;
135
+
136
+ const UsersAPI = (await import('../users.ts')).default;
137
+
138
+ await UsersAPI.add(input);
139
+ expect(post).toHaveBeenCalledWith(url, body);
140
+ });
141
+
142
+ it('correctly computes "add" method output', async () => {
143
+ const output = {
144
+ id: 1,
145
+ checkCase: '',
146
+ };
147
+
148
+ const response = {
149
+ data: {
150
+ id: 1,
151
+ check_case: '',
152
+ },
153
+ };
154
+
155
+ const post = vi.fn(() => Promise.resolve(response));
156
+
157
+ instanceMock.post = post;
158
+
159
+ const UsersAPI = (await import('../users.ts')).default;
160
+
161
+ expect(await UsersAPI.add({ itemInstance: {} })).toEqual(output);
162
+ });
163
+
164
+ it('correctly computes "update" method api call', async () => {
165
+ const input = {
166
+ itemInstance: {
167
+ name: 'test',
168
+ },
169
+ itemId: 1,
170
+ };
171
+
172
+ const body = {
173
+ name: 'test',
174
+ profile: {}, // variables field (?)
175
+ };
176
+
177
+ const url = '/users/1';
178
+
179
+ const put = vi.fn(() =>
180
+ Promise.resolve({
181
+ data: {},
182
+ }),
183
+ );
184
+
185
+ instanceMock.put = put;
186
+
187
+ const UsersAPI = (await import('../users.ts')).default;
188
+
189
+ await UsersAPI.update(input);
190
+ expect(put).toHaveBeenCalledWith(url, body);
191
+ });
192
+
193
+ it('correctly computes "update" method output', async () => {
194
+ const output = {
195
+ id: 1,
196
+ checkCase: '',
197
+ };
198
+
199
+ const response = {
200
+ data: {
201
+ id: 1,
202
+ check_case: '',
203
+ },
204
+ };
205
+
206
+ const put = vi.fn(() => Promise.resolve(response));
207
+
208
+ instanceMock.put = put;
209
+
210
+ const UsersAPI = (await import('../users.ts')).default;
211
+
212
+ expect(await UsersAPI.update({ itemInstance: {}, itemId: 1 })).toEqual(
213
+ output,
214
+ );
215
+ });
216
+
217
+ it('correctly computes "patch" method api call', async () => {
218
+ const input = {
219
+ changes: {
220
+ name: 'test',
221
+ },
222
+ id: 1,
223
+ };
224
+
225
+ const body = {
226
+ name: 'test',
227
+ };
228
+
229
+ const url = '/users/1';
230
+
231
+ const patch = vi.fn(() =>
232
+ Promise.resolve({
233
+ data: {},
234
+ }),
235
+ );
236
+
237
+ instanceMock.patch = patch;
238
+
239
+ const UsersAPI = (await import('../users.ts')).default;
240
+
241
+ await UsersAPI.patch(input);
242
+ expect(patch).toHaveBeenCalledWith(url, body);
243
+ });
244
+
245
+ it('correctly computes "delete" method api call', async () => {
246
+ const input = {
247
+ id: 1,
248
+ };
249
+
250
+ const url = '/users/1?permanent=true';
251
+
252
+ const _delete = vi.fn(() =>
253
+ Promise.resolve({
254
+ data: {},
255
+ }),
256
+ );
257
+
258
+ instanceMock.delete = _delete;
259
+
260
+ const UsersAPI = (await import('../users.ts')).default;
261
+
262
+ await UsersAPI.delete(input);
263
+ expect(_delete).toHaveBeenCalledWith(url);
264
+ });
265
+ });