@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,198 @@
1
+ import { CatalogsApiFactory } 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 catalogsService = new CatalogsApiFactory(configuration, '', instance);
22
+
23
+ const fieldsToSend = [
24
+ 'id',
25
+ 'name',
26
+ 'code',
27
+ 'sla',
28
+ 'teams',
29
+ 'skills',
30
+ 'status',
31
+ 'state',
32
+ 'prefix',
33
+ 'close_reason_group',
34
+ 'reason',
35
+ 'description',
36
+ 'services',
37
+ ];
38
+ const servicesFieldsToSend = [
39
+ 'id',
40
+ 'name',
41
+ 'group',
42
+ 'assignee',
43
+ 'assignee.name',
44
+ 'description',
45
+ 'code',
46
+ 'prefix',
47
+ 'state',
48
+ 'sla',
49
+ 'root_id',
50
+ 'catalog_id',
51
+ ];
52
+
53
+ const getCatalogsList = async (params) => {
54
+ const fieldsToSend = [
55
+ 'page',
56
+ 'size',
57
+ 'q',
58
+ 'sort',
59
+ 'fields',
60
+ 'id',
61
+ 'hasSubservices',
62
+ ];
63
+
64
+ const { page, size, fields, sort, id, q, has_subservices } = applyTransform(
65
+ params,
66
+ [
67
+ merge(getDefaultGetParams()),
68
+ starToSearch('search'),
69
+ (params) => ({ ...params, q: params.search }),
70
+ sanitize(fieldsToSend),
71
+ camelToSnake(),
72
+ ],
73
+ );
74
+ try {
75
+ const response = await catalogsService.listCatalogs(
76
+ page,
77
+ size,
78
+ [...fields, 'services'],
79
+ sort,
80
+ id,
81
+ q,
82
+ true,
83
+ '100', // Implemented depth 100 for load all subservices in one request
84
+ servicesFieldsToSend,
85
+ has_subservices,
86
+ );
87
+ const { items, next } = applyTransform(response.data, [
88
+ merge(getDefaultGetListResponse()),
89
+ ]);
90
+ return {
91
+ items: applyTransform(items, [snakeToCamel()]),
92
+ next,
93
+ };
94
+ } catch (err) {
95
+ throw applyTransform(err, [notify]);
96
+ }
97
+ };
98
+
99
+ const getCatalog = async ({ itemId: id }) => {
100
+ const itemResponseHandler = (item) => {
101
+ return item.catalog;
102
+ };
103
+
104
+ try {
105
+ const response = await catalogsService.locateCatalog(
106
+ id,
107
+ fieldsToSend,
108
+ servicesFieldsToSend,
109
+ );
110
+ return applyTransform(response.data, [snakeToCamel(), itemResponseHandler]);
111
+ } catch (err) {
112
+ throw applyTransform(err, [notify]);
113
+ }
114
+ };
115
+
116
+ const addCatalog = async ({ itemInstance }) => {
117
+ const fieldsToSend = [
118
+ 'name',
119
+ 'description',
120
+ 'prefix',
121
+ 'code',
122
+ 'state',
123
+ 'sla',
124
+ 'status',
125
+ 'close_reason_group',
126
+ 'teams',
127
+ 'skills',
128
+ ];
129
+ const item = applyTransform(itemInstance, [
130
+ camelToSnake(),
131
+ sanitize(fieldsToSend),
132
+ ]);
133
+ try {
134
+ const response = await catalogsService.createCatalog(item);
135
+ return applyTransform(response.data, [snakeToCamel()]);
136
+ } catch (err) {
137
+ throw applyTransform(err, [notify]);
138
+ }
139
+ };
140
+
141
+ const updateCatalog = async ({ itemInstance, itemId: id }) => {
142
+ const fieldsToSend = [
143
+ 'name',
144
+ 'description',
145
+ 'prefix',
146
+ 'code',
147
+ 'state',
148
+ 'sla',
149
+ 'status',
150
+ 'close_reason_group',
151
+ 'teams',
152
+ 'skills',
153
+ ];
154
+ const item = applyTransform(itemInstance, [
155
+ camelToSnake(),
156
+ sanitize(fieldsToSend),
157
+ ]);
158
+ try {
159
+ const response = await catalogsService.updateCatalog(id, item);
160
+ return applyTransform(response.data, [snakeToCamel()]);
161
+ } catch (err) {
162
+ throw applyTransform(err, [notify]);
163
+ }
164
+ };
165
+
166
+ const patchCatalog = async ({ itemInstance, itemId: id }) => {
167
+ const fieldsToSend = ['name', 'description', 'state'];
168
+ const item = applyTransform(itemInstance, [
169
+ camelToSnake(),
170
+ sanitize(fieldsToSend),
171
+ ]);
172
+ try {
173
+ const response = await catalogsService.updateCatalog2(id, item);
174
+ return applyTransform(response.data, [snakeToCamel()]);
175
+ } catch (err) {
176
+ throw applyTransform(err, [notify]);
177
+ }
178
+ };
179
+
180
+ const deleteCatalog = async ({ id }) => {
181
+ try {
182
+ const response = await catalogsService.deleteCatalog(id);
183
+ return applyTransform(response.data, []);
184
+ } catch (err) {
185
+ throw applyTransform(err, [notify]);
186
+ }
187
+ };
188
+
189
+ const ServiceCatalogsAPI = {
190
+ getList: getCatalogsList,
191
+ get: getCatalog,
192
+ add: addCatalog,
193
+ update: updateCatalog,
194
+ patch: patchCatalog,
195
+ delete: deleteCatalog,
196
+ };
197
+
198
+ export default ServiceCatalogsAPI;
@@ -0,0 +1,181 @@
1
+ import { ServicesApiFactory, WebitelContactsGroupType } 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 servicesService = new ServicesApiFactory(configuration, '', instance);
22
+
23
+ const fieldsToSend = [
24
+ 'name',
25
+ 'code',
26
+ 'sla',
27
+ 'status',
28
+ 'state',
29
+ 'description',
30
+ 'group',
31
+ 'assignee',
32
+ 'services',
33
+ 'root_id',
34
+ 'catalog_id',
35
+ ];
36
+
37
+ const getServicesList = async ({ rootId, ...rest }) => {
38
+ const fieldsToSend = ['page', 'size', 'q', 'sort', 'fields', 'id'];
39
+
40
+ const { page, size, fields, sort, id, q } = applyTransform(rest, [
41
+ merge(getDefaultGetParams()),
42
+ starToSearch('search'),
43
+ (params) => ({ ...params, q: params.search }),
44
+ sanitize(fieldsToSend),
45
+ camelToSnake(),
46
+ ]);
47
+ try {
48
+ const response = await servicesService.listServices(
49
+ page,
50
+ size,
51
+ sort,
52
+ id,
53
+ q,
54
+ rootId,
55
+ undefined,
56
+ fields,
57
+ );
58
+ const { items, next } = applyTransform(response.data, [
59
+ merge(getDefaultGetListResponse()),
60
+ ]);
61
+ return {
62
+ items: applyTransform(items, []),
63
+ next,
64
+ };
65
+ } catch (err) {
66
+ throw applyTransform(err, [notify]);
67
+ }
68
+ };
69
+
70
+ const getService = async ({ itemId: id }) => {
71
+ const fieldsToSend = [
72
+ 'name',
73
+ 'code',
74
+ 'sla',
75
+ 'state',
76
+ 'prefix',
77
+ 'group',
78
+ 'assignee',
79
+ 'description',
80
+ 'catalog_id',
81
+ 'root_id',
82
+ ];
83
+
84
+ const itemResponseHandler = (item) => {
85
+ return item.service;
86
+ };
87
+
88
+ try {
89
+ const response = await servicesService.locateService(id, fieldsToSend);
90
+ return applyTransform(response.data, [snakeToCamel(), itemResponseHandler]);
91
+ } catch (err) {
92
+ throw applyTransform(err, [notify]);
93
+ }
94
+ };
95
+
96
+ const preRequestHandler = ({ rootId, catalogId }) => {
97
+ return (item) => ({
98
+ ...item,
99
+ assignee:
100
+ item.group?.type === WebitelContactsGroupType.DYNAMIC
101
+ ? {}
102
+ : item.assignee,
103
+ rootId,
104
+ catalogId,
105
+ });
106
+ };
107
+
108
+ const addService = async ({ itemInstance, rootId, catalogId }) => {
109
+ const item = applyTransform(itemInstance, [
110
+ preRequestHandler({ rootId, catalogId }),
111
+ camelToSnake(),
112
+ sanitize(fieldsToSend),
113
+ ]);
114
+
115
+ try {
116
+ const response = await servicesService.createService(item);
117
+ return applyTransform(response.data, [snakeToCamel()]);
118
+ } catch (err) {
119
+ throw applyTransform(err, [notify]);
120
+ }
121
+ };
122
+
123
+ const updateService = async ({
124
+ itemInstance,
125
+ itemId: id,
126
+ rootId,
127
+ catalogId,
128
+ }) => {
129
+ const item = applyTransform(itemInstance, [
130
+ preRequestHandler({ rootId, catalogId }),
131
+ camelToSnake(),
132
+ sanitize(fieldsToSend),
133
+ ]);
134
+
135
+ try {
136
+ const response = await servicesService.updateService(id, item);
137
+ return applyTransform(response.data, [snakeToCamel()]);
138
+ } catch (err) {
139
+ throw applyTransform(err, [notify]);
140
+ }
141
+ };
142
+
143
+ const patchService = async ({ changes, id }) => {
144
+ const body = applyTransform(changes, [
145
+ sanitize(fieldsToSend),
146
+ camelToSnake(),
147
+ ]);
148
+ try {
149
+ const response = await servicesService.updateService2(id, body);
150
+ return applyTransform(response.data, [snakeToCamel()]);
151
+ } catch (err) {
152
+ throw applyTransform(err, [notify]);
153
+ }
154
+ };
155
+
156
+ const deleteService = async ({ id }) => {
157
+ try {
158
+ const response = await servicesService.deleteService(id);
159
+ return applyTransform(response.data, []);
160
+ } catch (err) {
161
+ throw applyTransform(err, [notify]);
162
+ }
163
+ };
164
+
165
+ const getServicesLookup = async (params) =>
166
+ getServicesList({
167
+ ...params,
168
+ fields: params.fields || ['id', 'name'],
169
+ });
170
+
171
+ const ServicesAPI = {
172
+ getList: getServicesList,
173
+ get: getService,
174
+ add: addService,
175
+ update: updateService,
176
+ patch: patchService,
177
+ delete: deleteService,
178
+ getLookup: getServicesLookup,
179
+ };
180
+
181
+ export default ServicesAPI;
@@ -0,0 +1,121 @@
1
+ import {
2
+ createSourceBody,
3
+ getSources,
4
+ listSourcesQueryParams,
5
+ updateSourceBody,
6
+ } from '@webitel/api-services/gen';
7
+ import {
8
+ getFieldsToSendFromZodSchema,
9
+ getShallowFieldsToSendFromZodSchema,
10
+ } from '@webitel/api-services/gen/utils';
11
+
12
+ import {
13
+ getDefaultGetListResponse,
14
+ getDefaultGetParams,
15
+ } from '../../defaults/index';
16
+ import applyTransform, {
17
+ camelToSnake,
18
+ merge,
19
+ notify,
20
+ sanitize,
21
+ snakeToCamel,
22
+ } from '../../transformers/index';
23
+
24
+ const sourceService = getSources();
25
+
26
+ const getSourcesList = async (params) => {
27
+ const fieldsToSend = getShallowFieldsToSendFromZodSchema(
28
+ listSourcesQueryParams,
29
+ );
30
+
31
+ const { page, size, fields, sort, id, q, type } = applyTransform(params, [
32
+ merge(getDefaultGetParams()),
33
+ sanitize(fieldsToSend),
34
+ camelToSnake(),
35
+ ]);
36
+
37
+ try {
38
+ const response = await sourceService.listSources({
39
+ page,
40
+ size,
41
+ fields,
42
+ sort,
43
+ id,
44
+ q: q || params.search,
45
+ type,
46
+ });
47
+ const { items, next } = applyTransform(response.data, [
48
+ merge(getDefaultGetListResponse()),
49
+ ]);
50
+ return {
51
+ items: applyTransform(items, []),
52
+ next,
53
+ };
54
+ } catch (err) {
55
+ throw applyTransform(err, [notify]);
56
+ }
57
+ };
58
+
59
+ const getSource = async ({ itemId: id }) => {
60
+ const itemResponseHandler = (item) => item.source; // TODO wtf??
61
+
62
+ try {
63
+ const response = await sourceService.locateSource(id);
64
+ return applyTransform(response.data, [snakeToCamel(), itemResponseHandler]);
65
+ } catch (err) {
66
+ throw applyTransform(err, [notify]);
67
+ }
68
+ };
69
+
70
+ const addSource = async ({ itemInstance }) => {
71
+ const item = applyTransform(itemInstance, [
72
+ sanitize(getShallowFieldsToSendFromZodSchema(createSourceBody)),
73
+ camelToSnake(),
74
+ ]);
75
+ try {
76
+ const response = await sourceService.createSource(item);
77
+ return applyTransform(response.data, [snakeToCamel()]);
78
+ } catch (err) {
79
+ throw applyTransform(err, [notify]);
80
+ }
81
+ };
82
+
83
+ const updateSource = async ({ itemInstance, itemId: id }) => {
84
+ const item = applyTransform(itemInstance, [
85
+ camelToSnake(),
86
+ sanitize(getShallowFieldsToSendFromZodSchema(updateSourceBody)),
87
+ ]);
88
+
89
+ try {
90
+ const response = await sourceService.updateSource(id, item);
91
+ return applyTransform(response.data, [snakeToCamel()]);
92
+ } catch (err) {
93
+ throw applyTransform(err, [notify]);
94
+ }
95
+ };
96
+
97
+ const deleteSource = async ({ id }) => {
98
+ try {
99
+ const response = await sourceService.deleteSource(id);
100
+ return applyTransform(response.data, []);
101
+ } catch (err) {
102
+ throw applyTransform(err, [notify]);
103
+ }
104
+ };
105
+
106
+ const getLookup = (params) =>
107
+ getSourcesList({
108
+ ...params,
109
+ fields: params.fields || ['id', 'name', 'type'],
110
+ });
111
+
112
+ const CaseSourcesAPI = {
113
+ getList: getSourcesList,
114
+ get: getSource,
115
+ add: addSource,
116
+ update: updateSource,
117
+ delete: deleteSource,
118
+ getLookup,
119
+ };
120
+
121
+ export default CaseSourcesAPI;
@@ -0,0 +1,165 @@
1
+ import { StatusConditionsApiFactory } 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 statusConditionsService = new StatusConditionsApiFactory(
21
+ configuration,
22
+ '',
23
+ instance,
24
+ );
25
+
26
+ const fieldsToSend = ['name', 'description'];
27
+
28
+ const getStatusConditionsList = async ({ parentId, ...rest }) => {
29
+ const fieldsToSend = ['page', 'size', 'q', 'sort', 'fields', 'id'];
30
+
31
+ const { page, size, fields, sort, id, q } = applyTransform(rest, [
32
+ merge(getDefaultGetParams()),
33
+ (params) => ({ ...params, q: params.search }),
34
+ sanitize(fieldsToSend),
35
+ camelToSnake(),
36
+ ]);
37
+
38
+ try {
39
+ const response = await statusConditionsService.listStatusConditions(
40
+ parentId,
41
+ page,
42
+ size,
43
+ fields,
44
+ sort,
45
+ id,
46
+ q,
47
+ );
48
+ const { items, next } = applyTransform(response.data, [
49
+ merge(getDefaultGetListResponse()),
50
+ ]);
51
+ return {
52
+ items: applyTransform(items, [snakeToCamel()]),
53
+ next,
54
+ };
55
+ } catch (err) {
56
+ throw applyTransform(err, [notify]);
57
+ }
58
+ };
59
+
60
+ const getStatusCondition = async ({ parentId, itemId: id }) => {
61
+ const itemResponseHandler = (item) => {
62
+ return item.status;
63
+ };
64
+
65
+ try {
66
+ const response = await statusConditionsService.locateStatusCondition(
67
+ parentId,
68
+ id,
69
+ fieldsToSend,
70
+ );
71
+ return applyTransform(response.data, [snakeToCamel(), itemResponseHandler]);
72
+ } catch (err) {
73
+ throw applyTransform(err, [notify]);
74
+ }
75
+ };
76
+
77
+ const updateStatusCondition = async ({
78
+ itemInstance,
79
+ itemId: id,
80
+ parentId,
81
+ }) => {
82
+ const item = applyTransform(itemInstance, [
83
+ camelToSnake(),
84
+ sanitize(fieldsToSend),
85
+ ]);
86
+
87
+ try {
88
+ const response = await statusConditionsService.updateStatusCondition(
89
+ parentId,
90
+ id,
91
+ item,
92
+ );
93
+ return applyTransform(response.data, [snakeToCamel()]);
94
+ } catch (err) {
95
+ throw applyTransform(err, [notify]);
96
+ }
97
+ };
98
+
99
+ const addStatusCondition = async ({ itemInstance, parentId }) => {
100
+ const item = applyTransform(itemInstance, [
101
+ camelToSnake(),
102
+ sanitize(fieldsToSend),
103
+ ]);
104
+
105
+ try {
106
+ const response = await statusConditionsService.createStatusCondition(
107
+ parentId,
108
+ item,
109
+ );
110
+ return applyTransform(response.data, [snakeToCamel()]);
111
+ } catch (err) {
112
+ throw applyTransform(err, [notify]);
113
+ }
114
+ };
115
+
116
+ const patchStatusCondition = async ({ id, parentId, changes }) => {
117
+ const fieldsToSend = ['name', 'description', 'initial', 'final'];
118
+ const input = applyTransform(changes, [
119
+ camelToSnake(),
120
+ sanitize(fieldsToSend),
121
+ ]);
122
+
123
+ try {
124
+ const response = await statusConditionsService.updateStatusCondition2(
125
+ parentId,
126
+ id,
127
+ input,
128
+ );
129
+ return applyTransform(response.data, []);
130
+ } catch (err) {
131
+ throw applyTransform(err, [notify]);
132
+ }
133
+ };
134
+
135
+ const deleteStatusCondition = async ({ id, parentId }) => {
136
+ try {
137
+ const response = await statusConditionsService.deleteStatusCondition(
138
+ parentId,
139
+ id,
140
+ );
141
+ return applyTransform(response.data, []);
142
+ } catch (err) {
143
+ throw applyTransform(err, [notify]);
144
+ }
145
+ };
146
+
147
+ const getStatusesLookup = (params) =>
148
+ getStatusConditionsList({
149
+ ...params,
150
+ parentId: params.parentId,
151
+ id: params.id,
152
+ fields: params.fields || ['id', 'name'],
153
+ });
154
+
155
+ const CaseStatusConditionsAPI = {
156
+ getList: getStatusConditionsList,
157
+ getLookup: getStatusesLookup,
158
+ get: getStatusCondition,
159
+ update: updateStatusCondition,
160
+ patch: patchStatusCondition,
161
+ delete: deleteStatusCondition,
162
+ add: addStatusCondition,
163
+ };
164
+
165
+ export default CaseStatusConditionsAPI;