@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,141 @@
1
+ import { CommunicationTypeServiceApiFactory } 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
+ mergeEach,
13
+ notify,
14
+ sanitize,
15
+ snakeToCamel,
16
+ starToSearch,
17
+ } from '../../transformers/index';
18
+
19
+ const instance = getDefaultInstance();
20
+ const configuration = getDefaultOpenAPIConfig();
21
+
22
+ const communicationService = new CommunicationTypeServiceApiFactory(
23
+ configuration,
24
+ '',
25
+ instance,
26
+ );
27
+
28
+ const getCommunicationsList = async (params) => {
29
+ const defaultObject = {
30
+ default: false,
31
+ };
32
+
33
+ const { page, size, search, sort, fields, id } = applyTransform(params, [
34
+ merge(getDefaultGetParams()),
35
+ starToSearch('search'),
36
+ ]);
37
+
38
+ try {
39
+ const response = await communicationService.searchCommunicationType(
40
+ page,
41
+ size,
42
+ search,
43
+ sort,
44
+ fields,
45
+ id,
46
+ );
47
+ const { items, next } = applyTransform(response.data, [
48
+ snakeToCamel(),
49
+ merge(getDefaultGetListResponse()),
50
+ ]);
51
+ return {
52
+ items: applyTransform(items, [mergeEach(defaultObject)]),
53
+ next,
54
+ };
55
+ } catch (err) {
56
+ throw applyTransform(err, [notify]);
57
+ }
58
+ };
59
+
60
+ const getCommunication = async ({ itemId: id }) => {
61
+ try {
62
+ const response = await communicationService.readCommunicationType(id);
63
+ return applyTransform(response.data, [snakeToCamel()]);
64
+ } catch (err) {
65
+ throw applyTransform(err, [notify]);
66
+ }
67
+ };
68
+
69
+ const fieldsToSend = ['code', 'name', 'description', 'channel', 'default'];
70
+
71
+ const addCommunication = async ({ itemInstance }) => {
72
+ const item = applyTransform(itemInstance, [
73
+ sanitize(fieldsToSend),
74
+ camelToSnake(),
75
+ ]);
76
+ try {
77
+ const response = await communicationService.createCommunicationType(item);
78
+ return applyTransform(response.data, [snakeToCamel()]);
79
+ } catch (err) {
80
+ throw applyTransform(err, [notify]);
81
+ }
82
+ };
83
+
84
+ const patchCommunication = async ({ changes, id }) => {
85
+ const body = applyTransform(changes, [
86
+ sanitize(fieldsToSend),
87
+ camelToSnake(),
88
+ ]);
89
+ try {
90
+ const response = await communicationService.patchCommunicationType(
91
+ id,
92
+ body,
93
+ );
94
+ return applyTransform(response.data, [snakeToCamel()]);
95
+ } catch (err) {
96
+ throw applyTransform(err, [notify]);
97
+ }
98
+ };
99
+
100
+ const updateCommunication = async ({ itemInstance, itemId: id }) => {
101
+ const item = applyTransform(itemInstance, [
102
+ sanitize(fieldsToSend),
103
+ camelToSnake(),
104
+ ]);
105
+ try {
106
+ const response = await communicationService.updateCommunicationType(
107
+ id,
108
+ item,
109
+ );
110
+ return applyTransform(response.data, [snakeToCamel()]);
111
+ } catch (err) {
112
+ throw applyTransform(err, [notify]);
113
+ }
114
+ };
115
+
116
+ const deleteCommunication = async ({ id }) => {
117
+ try {
118
+ const response = await communicationService.deleteCommunicationType(id);
119
+ return applyTransform(response.data, []);
120
+ } catch (err) {
121
+ throw applyTransform(err, [notify]);
122
+ }
123
+ };
124
+
125
+ const getCommunicationsLookup = (params) =>
126
+ getCommunicationsList({
127
+ ...params,
128
+ fields: params.fields || ['id', 'name'],
129
+ });
130
+
131
+ const CommunicationsAPI = {
132
+ getList: getCommunicationsList,
133
+ get: getCommunication,
134
+ add: addCommunication,
135
+ patch: patchCommunication,
136
+ update: updateCommunication,
137
+ delete: deleteCommunication,
138
+ getLookup: getCommunicationsLookup,
139
+ };
140
+
141
+ export default CommunicationsAPI;
@@ -0,0 +1,144 @@
1
+ import { SystemSettingServiceApiFactory } 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 configurationService = new SystemSettingServiceApiFactory(
22
+ configuration,
23
+ '',
24
+ instance,
25
+ );
26
+
27
+ const getList = async (params) => {
28
+ const { page, size, search, sort, fields, name } = applyTransform(params, [
29
+ merge(getDefaultGetParams()),
30
+ starToSearch('search'),
31
+ ]);
32
+
33
+ try {
34
+ const response = await configurationService.searchSystemSetting(
35
+ page,
36
+ size,
37
+ search,
38
+ sort,
39
+ fields,
40
+ name,
41
+ );
42
+ const { items, next } = applyTransform(response.data, [
43
+ snakeToCamel(),
44
+ merge(getDefaultGetListResponse()),
45
+ ]);
46
+ return {
47
+ items,
48
+ next,
49
+ };
50
+ } catch (err) {
51
+ throw applyTransform(err, [notify]);
52
+ }
53
+ };
54
+
55
+ const get = async ({ itemId: id }) => {
56
+ try {
57
+ const response = await configurationService.readSystemSetting(id);
58
+ return applyTransform(response.data, [snakeToCamel()]);
59
+ } catch (err) {
60
+ throw applyTransform(err, [notify]);
61
+ }
62
+ };
63
+
64
+ const fieldsToSend = ['id', 'name', 'value'];
65
+
66
+ const add = async ({ itemInstance }) => {
67
+ const item = applyTransform(itemInstance, [
68
+ sanitize(fieldsToSend),
69
+ camelToSnake(),
70
+ ]);
71
+ try {
72
+ const response = await configurationService.createSystemSetting(item);
73
+ return applyTransform(response.data, [snakeToCamel()]);
74
+ } catch (err) {
75
+ throw applyTransform(err, [notify]);
76
+ }
77
+ };
78
+
79
+ const update = async ({ itemInstance, itemId: id }) => {
80
+ const item = applyTransform(itemInstance, [
81
+ sanitize(fieldsToSend),
82
+ camelToSnake(),
83
+ ]);
84
+ try {
85
+ const response = await configurationService.updateSystemSetting(id, item);
86
+ return applyTransform(response.data, [snakeToCamel()]);
87
+ } catch (err) {
88
+ throw applyTransform(err, [notify]);
89
+ }
90
+ };
91
+
92
+ const getLookup = (params) =>
93
+ getList({
94
+ ...params,
95
+ fields: params.fields || ['name'],
96
+ });
97
+
98
+ const deleteItem = async ({ id }) => {
99
+ try {
100
+ const response = await configurationService.deleteSystemSetting(id);
101
+ return applyTransform(response.data, []);
102
+ } catch (err) {
103
+ throw applyTransform(err, [notify]);
104
+ }
105
+ };
106
+
107
+ const getObjectsList = async (params) => {
108
+ const { page, size, search, sort, fields } = applyTransform(params, [
109
+ merge(getDefaultGetParams()),
110
+ starToSearch('search'),
111
+ ]);
112
+
113
+ try {
114
+ const response = await configurationService.searchAvailableSystemSetting(
115
+ page,
116
+ size,
117
+ search,
118
+ sort,
119
+ fields,
120
+ );
121
+ const { items, next } = applyTransform(response.data, [
122
+ snakeToCamel(),
123
+ merge(getDefaultGetListResponse()),
124
+ ]);
125
+ return {
126
+ items,
127
+ next,
128
+ };
129
+ } catch (err) {
130
+ throw applyTransform(err, [notify]);
131
+ }
132
+ };
133
+
134
+ const ConfigurationsAPI = {
135
+ getList,
136
+ get,
137
+ add,
138
+ update,
139
+ delete: deleteItem,
140
+ getLookup,
141
+ getObjectsList,
142
+ };
143
+
144
+ export default ConfigurationsAPI;
@@ -0,0 +1,187 @@
1
+ import { GroupsApiFactory } 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
+ mergeEach,
13
+ notify,
14
+ sanitize,
15
+ snakeToCamel,
16
+ starToSearch,
17
+ } from '../../transformers/index';
18
+ import { generatePermissionsApi } from '../_shared/generatePermissionsApi';
19
+
20
+ const instance = getDefaultInstance();
21
+ const configuration = getDefaultOpenAPIConfig();
22
+
23
+ const contactGroupsService = new GroupsApiFactory(configuration, '', instance);
24
+
25
+ const baseUrl = '/contacts/groups';
26
+
27
+ const fieldsToSend = [
28
+ 'name',
29
+ 'description',
30
+ 'enabled',
31
+ 'type',
32
+ 'default_group',
33
+ ];
34
+
35
+ const getContactGroupsList = async (params) => {
36
+ const fieldsToSend = [
37
+ 'page',
38
+ 'size',
39
+ 'q',
40
+ 'sort',
41
+ 'fields',
42
+ 'type',
43
+ 'enabled',
44
+ 'id',
45
+ ];
46
+ const defaultObject = {
47
+ enabled: false,
48
+ };
49
+
50
+ const { page, size, fields, sort, id, q, name, type, enabled } =
51
+ applyTransform(params, [
52
+ merge(getDefaultGetParams()),
53
+ (params) => ({ ...params, q: params.search }),
54
+ sanitize(fieldsToSend),
55
+ camelToSnake(),
56
+ ]);
57
+
58
+ try {
59
+ const response = await contactGroupsService.listGroups(
60
+ page,
61
+ size,
62
+ fields,
63
+ sort,
64
+ id,
65
+ q,
66
+ name,
67
+ type,
68
+ enabled,
69
+ );
70
+ const { items, next } = applyTransform(response.data, [
71
+ merge(getDefaultGetListResponse()),
72
+ ]);
73
+ return {
74
+ items: applyTransform(items, [mergeEach(defaultObject)]),
75
+ next,
76
+ };
77
+ } catch (err) {
78
+ throw applyTransform(err, [notify]);
79
+ }
80
+ };
81
+
82
+ const getContactGroup = async ({ itemId: id }) => {
83
+ const itemResponseHandler = (item) => item.group;
84
+
85
+ try {
86
+ const response = await contactGroupsService.locateGroup(id, fieldsToSend);
87
+ return applyTransform(response.data, [snakeToCamel(), itemResponseHandler]);
88
+ } catch (err) {
89
+ throw applyTransform(err, [notify]);
90
+ }
91
+ };
92
+
93
+ const addStaticContactGroup = async ({ itemInstance }) => {
94
+ const item = applyTransform(itemInstance, [
95
+ camelToSnake(),
96
+ sanitize(fieldsToSend),
97
+ ]);
98
+ try {
99
+ const response = await contactGroupsService.createGroup(item);
100
+ return applyTransform(response.data, [snakeToCamel()]);
101
+ } catch (err) {
102
+ throw applyTransform(err, [notify]);
103
+ }
104
+ };
105
+
106
+ const addContactsToGroups = async ({ contactIds, groupIds }) => {
107
+ try {
108
+ const response = await contactGroupsService.addContactsToGroups({
109
+ groupIds,
110
+ contactIds,
111
+ });
112
+ return applyTransform(response.data, [snakeToCamel()]);
113
+ } catch (err) {
114
+ throw applyTransform(err, [notify]);
115
+ }
116
+ };
117
+
118
+ const removeContactsFromGroup = async ({ id, contactIds }) => {
119
+ try {
120
+ const response = await contactGroupsService.removeContactsFromGroup(
121
+ id,
122
+ contactIds,
123
+ );
124
+ return applyTransform(response.data, []);
125
+ } catch (err) {
126
+ throw applyTransform(err, [notify]);
127
+ }
128
+ };
129
+
130
+ const updateStaticContactGroup = async ({ itemInstance, itemId: id }) => {
131
+ const item = applyTransform(itemInstance, [
132
+ camelToSnake(),
133
+ sanitize(fieldsToSend),
134
+ ]);
135
+
136
+ try {
137
+ const response = await contactGroupsService.updateGroup(id, item);
138
+ return applyTransform(response.data, [snakeToCamel()]);
139
+ } catch (err) {
140
+ throw applyTransform(err, [notify]);
141
+ }
142
+ };
143
+
144
+ const patchStaticContactGroup = async ({ id, changes }) => {
145
+ const item = applyTransform(changes, [
146
+ camelToSnake(),
147
+ sanitize(fieldsToSend),
148
+ ]);
149
+
150
+ try {
151
+ const response = await contactGroupsService.updateGroup2(id, item);
152
+ return applyTransform(response.data, [snakeToCamel()]);
153
+ } catch (err) {
154
+ throw applyTransform(err, [notify]);
155
+ }
156
+ };
157
+
158
+ const deleteStaticContactGroup = async ({ id }) => {
159
+ try {
160
+ const response = await contactGroupsService.deleteGroup(id);
161
+ return applyTransform(response.data, []);
162
+ } catch (err) {
163
+ throw applyTransform(err, [notify]);
164
+ }
165
+ };
166
+
167
+ const getLookup = (params) =>
168
+ getContactGroupsList({
169
+ ...params,
170
+ fields: params.fields || ['id', 'name'],
171
+ });
172
+
173
+ const ContactGroupsAPI = {
174
+ getList: getContactGroupsList,
175
+ get: getContactGroup,
176
+ add: addStaticContactGroup,
177
+ update: updateStaticContactGroup,
178
+ patch: patchStaticContactGroup,
179
+ delete: deleteStaticContactGroup,
180
+ getLookup,
181
+ addContactsToGroups,
182
+ removeContactsFromGroup,
183
+
184
+ ...generatePermissionsApi(baseUrl),
185
+ };
186
+
187
+ export default ContactGroupsAPI;
@@ -0,0 +1,225 @@
1
+ import {
2
+ EngineRoutingSchemaType,
3
+ RoutingSchemaServiceApiFactory,
4
+ } from 'webitel-sdk';
5
+
6
+ import {
7
+ getDefaultGetListResponse,
8
+ getDefaultGetParams,
9
+ getDefaultInstance,
10
+ getDefaultOpenAPIConfig,
11
+ } from '../../defaults/index';
12
+ import applyTransform, {
13
+ camelToSnake,
14
+ merge,
15
+ mergeEach,
16
+ notify,
17
+ sanitize,
18
+ snakeToCamel,
19
+ starToSearch,
20
+ } from '../../transformers/index';
21
+
22
+ const instance = getDefaultInstance();
23
+ const configuration = getDefaultOpenAPIConfig();
24
+
25
+ const flowService = new RoutingSchemaServiceApiFactory(
26
+ configuration,
27
+ '',
28
+ instance,
29
+ );
30
+
31
+ /*
32
+ CONVERT "SCHEMA" FIELD TO JSON TO PREVENT ITS CHANGE
33
+ BY CAMEL-SNAKE TRANSFORMERS
34
+ */
35
+ const doNotConvertKeys = ['schema'];
36
+
37
+ const fieldsToSend = ['name', 'schema', 'type', 'payload', 'editor', 'tags'];
38
+
39
+ const getFlowList = async (params) => {
40
+ const defaultObject = {
41
+ type: EngineRoutingSchemaType.Default,
42
+ editor: false,
43
+ };
44
+
45
+ const paramsCopy = {
46
+ ...params,
47
+ };
48
+
49
+ if (paramsCopy.type) {
50
+ const _type = Array.isArray(paramsCopy.type)
51
+ ? paramsCopy.type
52
+ : [paramsCopy.type];
53
+ if (!paramsCopy.type.includes(EngineRoutingSchemaType.Default)) {
54
+ _type.push(EngineRoutingSchemaType.Default);
55
+ }
56
+ paramsCopy.type = _type;
57
+ }
58
+
59
+ const { page, size, search, sort, fields, id, name, type, tags } =
60
+ applyTransform(paramsCopy, [
61
+ merge(getDefaultGetParams()),
62
+ starToSearch('search'),
63
+ camelToSnake(doNotConvertKeys),
64
+ ]);
65
+
66
+ try {
67
+ const response = await flowService.searchRoutingSchema(
68
+ page,
69
+ size,
70
+ search,
71
+ sort,
72
+ fields,
73
+ id,
74
+ name,
75
+ type,
76
+ undefined,
77
+ tags,
78
+ );
79
+ const { items, next } = applyTransform(response.data, [
80
+ snakeToCamel(doNotConvertKeys),
81
+ merge(getDefaultGetListResponse()),
82
+ ]);
83
+ return {
84
+ items: applyTransform(items, [mergeEach(defaultObject)]),
85
+ next,
86
+ };
87
+ } catch (err) {
88
+ throw applyTransform(err, [notify]);
89
+ }
90
+ };
91
+ const getFlow = async ({ itemId: id }) => {
92
+ const defaultObject = {
93
+ tags: [],
94
+ editor: false,
95
+ type: EngineRoutingSchemaType.Default,
96
+ };
97
+
98
+ const itemResponseHandler = (item) => ({
99
+ ...item,
100
+ schema: JSON.stringify(item.schema, null, 4),
101
+ });
102
+
103
+ try {
104
+ const response = await flowService.readRoutingSchema(id);
105
+ return applyTransform(response.data, [
106
+ ({ payload, schema, ...rest }) => ({
107
+ payload,
108
+ schema,
109
+ ...snakeToCamel(doNotConvertKeys)(rest),
110
+ }),
111
+ merge(defaultObject),
112
+ itemResponseHandler,
113
+ ]);
114
+ } catch (err) {
115
+ throw applyTransform(err, [notify]);
116
+ }
117
+ };
118
+
119
+ const preRequestHandler = (item) => ({
120
+ ...item,
121
+ schema:
122
+ typeof item.schema === 'string' ? JSON.parse(item.schema) : item.schema,
123
+ });
124
+
125
+ const addFlow = async ({ itemInstance }) => {
126
+ const item = applyTransform(itemInstance, [
127
+ preRequestHandler,
128
+ sanitize(fieldsToSend),
129
+ ({ payload, schema, ...rest }) => ({
130
+ payload,
131
+ schema,
132
+ ...camelToSnake(doNotConvertKeys)(rest),
133
+ }),
134
+ ]);
135
+ try {
136
+ const response = await flowService.createRoutingSchema(item);
137
+ return applyTransform(response.data, [
138
+ ({ payload, schema, ...rest }) => ({
139
+ payload,
140
+ schema,
141
+ ...snakeToCamel(doNotConvertKeys)(rest),
142
+ }),
143
+ ]);
144
+ } catch (err) {
145
+ throw applyTransform(err, [notify]);
146
+ }
147
+ };
148
+ const updateFlow = async ({ itemInstance, itemId: id }) => {
149
+ const item = applyTransform(itemInstance, [
150
+ preRequestHandler,
151
+ sanitize(fieldsToSend),
152
+ ({ payload, schema, ...rest }) => ({
153
+ payload,
154
+ schema,
155
+ ...camelToSnake(doNotConvertKeys)(rest),
156
+ }),
157
+ ]);
158
+ try {
159
+ const response = await flowService.updateRoutingSchema(id, item);
160
+ return applyTransform(response.data, [
161
+ ({ payload, schema, ...rest }) => ({
162
+ payload,
163
+ schema,
164
+ ...snakeToCamel(doNotConvertKeys)(rest),
165
+ }),
166
+ ]);
167
+ } catch (err) {
168
+ throw applyTransform(err, [notify]);
169
+ }
170
+ };
171
+
172
+ const deleteFlow = async ({ id }) => {
173
+ try {
174
+ const response = await flowService.deleteRoutingSchema(id);
175
+ return applyTransform(response.data, []);
176
+ } catch (err) {
177
+ throw applyTransform(err, [notify]);
178
+ }
179
+ };
180
+
181
+ const getFlowsLookup = (params) =>
182
+ getFlowList({
183
+ ...params,
184
+ fields: params.fields || ['id', 'name', 'type'],
185
+ });
186
+
187
+ const getFlowTags = async (params) => {
188
+ const { page, size, search, sort, fields, ids } = applyTransform(params, [
189
+ merge(getDefaultGetParams()),
190
+ starToSearch(),
191
+ camelToSnake(doNotConvertKeys),
192
+ ]);
193
+ try {
194
+ const response = await flowService.searchRoutingSchemaTags(
195
+ page,
196
+ size,
197
+ search,
198
+ sort,
199
+ fields,
200
+ ids,
201
+ );
202
+ const { items, next } = applyTransform(response.data, [
203
+ snakeToCamel(doNotConvertKeys),
204
+ merge(getDefaultGetListResponse()),
205
+ ]);
206
+ return {
207
+ items,
208
+ next,
209
+ };
210
+ } catch (err) {
211
+ throw applyTransform(err, [notify]);
212
+ }
213
+ };
214
+
215
+ const FlowsAPI = {
216
+ getList: getFlowList,
217
+ get: getFlow,
218
+ add: addFlow,
219
+ update: updateFlow,
220
+ delete: deleteFlow,
221
+ getLookup: getFlowsLookup,
222
+ getFlowTags,
223
+ };
224
+
225
+ export default FlowsAPI;
@@ -0,0 +1,9 @@
1
+ const defaultGateway = () => ({
2
+ name: '',
3
+ usage: '',
4
+ proxy: '',
5
+ schema: {},
6
+ enable: true,
7
+ });
8
+
9
+ export default defaultGateway;
@@ -0,0 +1,12 @@
1
+ import defaultGateway from './defaultGateway';
2
+
3
+ const registerGateway = () => ({
4
+ ...defaultGateway(),
5
+ register: true,
6
+ account: '',
7
+ username: '',
8
+ expires: 600,
9
+ password: '',
10
+ });
11
+
12
+ export default registerGateway;