@webitel/api-services 0.0.24 → 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 (195) hide show
  1. package/package.json +13 -9
  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/engineTriggerObjectType.d.ts +0 -1
  172. package/types/gen/_models/fileServiceSearchFilesChannelItem.d.ts +0 -2
  173. package/types/gen/_models/googleRpcStatus.d.ts +12 -0
  174. package/types/gen/_models/storageUploadFileChannel.d.ts +0 -2
  175. package/types/gen/_models/webitelCasesStatus.d.ts +16 -0
  176. package/types/gen/file-policies-service/file-policies-service.zod.gen.d.ts +0 -18
  177. package/types/gen/file-service/file-service.api.gen.d.ts +1 -3
  178. package/types/gen/file-service/file-service.msw.api.gen.d.ts +1 -3
  179. package/types/gen/file-service/file-service.zod.gen.d.ts +0 -18
  180. package/types/gen/trigger-service/trigger-service.zod.gen.d.ts +0 -9
  181. package/src/defaults/index.ts +0 -2
  182. package/src/gen/_docs/.nojekyll +0 -1
  183. package/src/gen/_docs/html/variables/sources_sources.zod.gen.createSourceBodyNameRegExp.html +0 -1
  184. package/src/gen/_docs/html/variables/sources_sources.zod.gen.createSourceResponseNameRegExp.html +0 -1
  185. package/src/gen/_docs/html/variables/sources_sources.zod.gen.deleteSourceResponseNameRegExp.html +0 -1
  186. package/src/gen/_docs/html/variables/sources_sources.zod.gen.listSourcesResponseItemsItemNameRegExp.html +0 -1
  187. package/src/gen/_docs/html/variables/sources_sources.zod.gen.locateSourceResponseSourceNameRegExp.html +0 -1
  188. package/src/gen/_docs/html/variables/sources_sources.zod.gen.updateSource2BodyNameRegExp.html +0 -1
  189. package/src/gen/_docs/html/variables/sources_sources.zod.gen.updateSource2ResponseNameRegExp.html +0 -1
  190. package/src/gen/_docs/html/variables/sources_sources.zod.gen.updateSourceBodyNameRegExp.html +0 -1
  191. package/src/gen/_docs/html/variables/sources_sources.zod.gen.updateSourceResponseNameRegExp.html +0 -1
  192. package/types/gen/_models/casesCaseCustom.d.ts +0 -12
  193. package/types/gen/_models/casesInputCaseCustom.d.ts +0 -12
  194. package/types/gen/_models/casesInputCreateCaseCustom.d.ts +0 -12
  195. package/types/gen/_models/protobufNullValue.d.ts +0 -18
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webitel/api-services",
3
- "version": "0.0.24",
3
+ "version": "0.0.25",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "make-all": "npm run gen:api && npm version patch && npm run publish-lib",
@@ -17,21 +17,25 @@
17
17
  },
18
18
  "type": "module",
19
19
  "exports": {
20
+ "./api": {
21
+ "types": "./types/api/index.d.ts",
22
+ "import": "./src/api/index.ts"
23
+ },
20
24
  "./gen": {
21
- "import": "./src/gen/index.ts",
22
- "types": "./types/gen/index.d.ts"
25
+ "types": "./types/gen/index.d.ts",
26
+ "import": "./src/gen/index.ts"
23
27
  },
24
28
  "./utils": {
25
- "import": "./src/utils/index.ts",
26
- "types": "./types/utils/index.d.ts"
29
+ "types": "./types/utils/index.d.ts",
30
+ "import": "./src/utils/index.ts"
27
31
  },
28
32
  "./gen/utils": {
29
- "import": "./src/utils/gen/index.ts",
30
- "types": "./types/utils/gen/index.d.ts"
33
+ "types": "./types/utils/gen/index.d.ts",
34
+ "import": "./src/utils/gen/index.ts"
31
35
  },
32
36
  "./gen/models": {
33
- "import": "./src/gen/_models/index.ts",
34
- "types": "./types/gen/_models/index.d.ts"
37
+ "types": "./types/gen/_models/index.d.ts",
38
+ "import": "./src/gen/_models/index.ts"
35
39
  }
36
40
  },
37
41
  "files": [
@@ -0,0 +1,30 @@
1
+ import axios from 'axios';
2
+
3
+ // 'X-Webitel-Access' ~ 'X-Access-Token'
4
+ const generateInstance = ({ interceptors, baseURL, ...rest } = {}) => {
5
+ const instance = axios.create({
6
+ baseURL,
7
+ headers: {
8
+ 'X-Webitel-Access': localStorage.getItem('access-token') || '',
9
+ },
10
+ ...rest,
11
+ });
12
+
13
+ if (interceptors) {
14
+ const { request, response } = interceptors;
15
+ if (request) {
16
+ for (const interceptor of request) {
17
+ instance.interceptors.request.use(...interceptor);
18
+ }
19
+ }
20
+ if (response) {
21
+ for (const interceptor of response) {
22
+ instance.interceptors.response.use(...interceptor);
23
+ }
24
+ }
25
+ }
26
+
27
+ return instance;
28
+ };
29
+
30
+ export default generateInstance;
@@ -0,0 +1,2 @@
1
+ // Export axios directory contents
2
+ export { default as generateInstance } from './generateInstance';
@@ -0,0 +1,97 @@
1
+ import {
2
+ getDefaultGetListResponse,
3
+ getDefaultGetParams,
4
+ getDefaultInstance,
5
+ } from '../../defaults/index';
6
+ import applyTransform, {
7
+ camelToSnake,
8
+ generateUrl,
9
+ merge,
10
+ mergeEach,
11
+ notify,
12
+ sanitize,
13
+ snakeToCamel,
14
+ starToSearch,
15
+ } from '../../transformers/index';
16
+
17
+ const permissionsUrl = 'acl';
18
+
19
+ const handlePermissionsList = (items) => {
20
+ return items.map((item) => ({
21
+ ...item,
22
+ access: {
23
+ x: {
24
+ id: (item.granted.match(/x/g) || []).length + 1,
25
+ rule: 'x'.repeat((item.granted.match(/x/g) || []).length),
26
+ },
27
+ r: {
28
+ id: (item.granted.match(/r/g) || []).length + 1,
29
+ rule: 'r'.repeat((item.granted.match(/r/g) || []).length),
30
+ },
31
+ w: {
32
+ id: (item.granted.match(/w/g) || []).length + 1,
33
+ rule: 'w'.repeat((item.granted.match(/w/g) || []).length),
34
+ },
35
+ d: {
36
+ id: (item.granted.match(/d/g) || []).length + 1,
37
+ rule: 'd'.repeat((item.granted.match(/d/g) || []).length),
38
+ },
39
+ },
40
+ }));
41
+ };
42
+
43
+ export const generatePermissionsApi = (baseUrl) => {
44
+ const instance = getDefaultInstance();
45
+
46
+ const getList = async ({ parentId, ...params }) => {
47
+ const fieldsToSend = ['page', 'size', 'q', 'sort', 'fields', 'id'];
48
+
49
+ const defaultObject = {
50
+ user: false,
51
+ };
52
+
53
+ const url = applyTransform(params, [
54
+ merge(getDefaultGetParams()),
55
+ starToSearch('search'),
56
+ (params) => ({
57
+ ...params,
58
+ q: params.search,
59
+ }),
60
+ sanitize(fieldsToSend),
61
+ camelToSnake(),
62
+ generateUrl(`${baseUrl}/${parentId}/${permissionsUrl}`),
63
+ ]);
64
+ try {
65
+ const response = await instance.get(url);
66
+ const { items, next } = applyTransform(response.data, [
67
+ snakeToCamel(),
68
+ merge(getDefaultGetListResponse()),
69
+ ]);
70
+ return {
71
+ items: applyTransform(items, [
72
+ mergeEach(defaultObject),
73
+ handlePermissionsList,
74
+ ]),
75
+ next,
76
+ };
77
+ } catch (err) {
78
+ throw applyTransform(err, [notify]);
79
+ }
80
+ };
81
+
82
+ const patch = async ({ changes, id }) => {
83
+ const body = applyTransform(changes, [camelToSnake()]);
84
+ const url = `${baseUrl}/${id}/${permissionsUrl}`;
85
+ try {
86
+ const response = await instance.patch(url, body);
87
+ return applyTransform(response.data, [snakeToCamel()]);
88
+ } catch (err) {
89
+ throw applyTransform(err, [notify]);
90
+ }
91
+ };
92
+
93
+ return {
94
+ getPermissionsList: getList,
95
+ patchPermissions: patch,
96
+ };
97
+ };
@@ -0,0 +1,74 @@
1
+ import { AgentChatServiceApiFactory } from 'webitel-sdk';
2
+
3
+ import i18n from '../../../locale/i18n';
4
+ import {
5
+ getDefaultGetParams,
6
+ getDefaultInstance,
7
+ getDefaultOpenAPIConfig,
8
+ } from '../../defaults/index';
9
+ import applyTransform, {
10
+ merge,
11
+ notify,
12
+ snakeToCamel,
13
+ starToSearch,
14
+ } from '../../transformers/index';
15
+
16
+ const { t } = i18n.global;
17
+
18
+ const instance = getDefaultInstance();
19
+ const configuration = getDefaultOpenAPIConfig();
20
+
21
+ const agentChatsService = new AgentChatServiceApiFactory(
22
+ configuration,
23
+ '',
24
+ instance,
25
+ );
26
+
27
+ const getChatsList = async (params) => {
28
+ const { size, page, onlyClosed, onlyUnprocessed } = applyTransform(params, [
29
+ merge(getDefaultGetParams()),
30
+ ]);
31
+
32
+ try {
33
+ const response = await agentChatsService.getAgentChats(
34
+ size,
35
+ page,
36
+ undefined,
37
+ undefined,
38
+ undefined,
39
+ onlyClosed,
40
+ onlyUnprocessed,
41
+ );
42
+ const { items, next } = applyTransform(response.data, [snakeToCamel()]);
43
+ return {
44
+ items,
45
+ next,
46
+ };
47
+ } catch (err) {
48
+ throw applyTransform(err, [notify]);
49
+ }
50
+ };
51
+
52
+ const markChatProcessed = async (chatId) => {
53
+ // add to chat unprocessedClose: true
54
+ try {
55
+ const response = await agentChatsService.markChatProcessed(chatId);
56
+ return applyTransform(response.data, [snakeToCamel()]);
57
+ } catch (err) {
58
+ throw applyTransform(err, [
59
+ notify(({ callback }) =>
60
+ callback({
61
+ type: 'error',
62
+ text: t('errorNotifications.markChatProcessed'),
63
+ }),
64
+ ),
65
+ ]);
66
+ }
67
+ };
68
+
69
+ const AgentChatsAPI = {
70
+ getList: getChatsList,
71
+ markChatProcessed,
72
+ };
73
+
74
+ export default AgentChatsAPI;
@@ -0,0 +1,265 @@
1
+ import { AgentServiceApiFactory } from 'webitel-sdk';
2
+
3
+ import convertDuration from '../../../scripts/convertDuration';
4
+ import {
5
+ getDefaultGetListResponse,
6
+ getDefaultGetParams,
7
+ getDefaultInstance,
8
+ getDefaultOpenAPIConfig,
9
+ } from '../../defaults/index';
10
+ import applyTransform, {
11
+ camelToSnake,
12
+ merge,
13
+ notify,
14
+ sanitize,
15
+ snakeToCamel,
16
+ starToSearch,
17
+ } from '../../transformers/index';
18
+
19
+ const instance = getDefaultInstance();
20
+ const configuration = getDefaultOpenAPIConfig();
21
+
22
+ const agentService = new AgentServiceApiFactory(configuration, '', instance);
23
+
24
+ const convertStatusDuration = (value) => {
25
+ if (value > 60 * 60 * 24) return '>24:00:00';
26
+ return convertDuration(value);
27
+ };
28
+
29
+ const getAgentsList = async (params) => {
30
+ const listResponseHandler = (items) => {
31
+ return items.map((item) => ({
32
+ ...item,
33
+ statusDuration: convertStatusDuration(item.statusDuration),
34
+ }));
35
+ };
36
+
37
+ const {
38
+ page,
39
+ size,
40
+ search,
41
+ sort,
42
+ fields,
43
+ id,
44
+ team,
45
+ skill,
46
+ isSupervisor,
47
+ isNotSupervisor,
48
+ notTeamId,
49
+ supervisorId,
50
+ notSkillId,
51
+ } = applyTransform(params, [merge(getDefaultGetParams())]);
52
+
53
+ try {
54
+ const response = await agentService.searchAgent(
55
+ page,
56
+ size,
57
+ search,
58
+ sort,
59
+ fields,
60
+ id,
61
+ undefined,
62
+ supervisorId,
63
+ team,
64
+ undefined,
65
+ undefined,
66
+ isSupervisor,
67
+ skill,
68
+ undefined,
69
+ isNotSupervisor,
70
+ undefined,
71
+ undefined,
72
+ notTeamId,
73
+ notSkillId,
74
+ );
75
+ const { items, next } = applyTransform(response.data, [
76
+ snakeToCamel(),
77
+ merge(getDefaultGetListResponse()),
78
+ ]);
79
+ return {
80
+ items: applyTransform(items, [listResponseHandler]),
81
+ next,
82
+ };
83
+ } catch (err) {
84
+ throw applyTransform(err, [notify]);
85
+ }
86
+ };
87
+
88
+ const getAgent = async ({ itemId: id }) => {
89
+ const defaultObject = {
90
+ user: {},
91
+ team: {},
92
+ supervisor: [],
93
+ auditor: [],
94
+ region: {},
95
+ progressiveCount: 0,
96
+ chatCount: 0,
97
+ taskCount: 0,
98
+ isSupervisor: false,
99
+ description: '',
100
+ greetingMedia: {},
101
+ };
102
+
103
+ try {
104
+ const response = await agentService.readAgent(id);
105
+ return applyTransform(response.data, [
106
+ snakeToCamel(),
107
+ merge(defaultObject),
108
+ ]);
109
+ } catch (err) {
110
+ throw applyTransform(err, [notify]);
111
+ }
112
+ };
113
+
114
+ const fieldsToSend = [
115
+ 'user',
116
+ 'team',
117
+ 'supervisor',
118
+ 'auditor',
119
+ 'region',
120
+ 'greetingMedia',
121
+ 'progressiveCount',
122
+ 'chatCount',
123
+ 'taskCount',
124
+ 'isSupervisor',
125
+ ];
126
+
127
+ const addAgent = async ({ itemInstance }) => {
128
+ const item = applyTransform(itemInstance, [
129
+ sanitize(fieldsToSend),
130
+ camelToSnake(),
131
+ ]);
132
+ try {
133
+ const response = await agentService.createAgent(item);
134
+ return applyTransform(response.data, [snakeToCamel()]);
135
+ } catch (err) {
136
+ throw applyTransform(err, [notify]);
137
+ }
138
+ };
139
+
140
+ const patchAgent = async ({ changes, id }) => {
141
+ const body = applyTransform(changes, [
142
+ sanitize(fieldsToSend),
143
+ camelToSnake(),
144
+ ]);
145
+ try {
146
+ const response = await agentService.patchAgent(id, body);
147
+ return applyTransform(response.data, [snakeToCamel()]);
148
+ } catch (err) {
149
+ throw applyTransform(err, [notify]);
150
+ }
151
+ };
152
+
153
+ const updateAgent = async ({ itemInstance, itemId: id }) => {
154
+ const item = applyTransform(itemInstance, [
155
+ sanitize(fieldsToSend),
156
+ camelToSnake(),
157
+ ]);
158
+ try {
159
+ const response = await agentService.updateAgent(id, item);
160
+ return applyTransform(response.data, [snakeToCamel()]);
161
+ } catch (err) {
162
+ throw applyTransform(err, [notify]);
163
+ }
164
+ };
165
+
166
+ const deleteAgent = async ({ id }) => {
167
+ try {
168
+ const response = await agentService.deleteAgent(id);
169
+ return applyTransform(response.data, []);
170
+ } catch (err) {
171
+ throw applyTransform(err, [notify]);
172
+ }
173
+ };
174
+
175
+ const getAgentsLookup = (params) =>
176
+ getAgentsList({
177
+ ...params,
178
+ fields: params.fields || ['id', 'name'],
179
+ });
180
+
181
+ const getAgentHistory = async (params) => {
182
+ const {
183
+ parentId,
184
+ from,
185
+ to,
186
+ page,
187
+ size,
188
+ sort = '-joined_at',
189
+ } = applyTransform(params, [
190
+ merge(getDefaultGetParams()),
191
+ starToSearch('search'),
192
+ ]);
193
+
194
+ try {
195
+ const response = await agentService.searchAgentStateHistory(
196
+ page,
197
+ size,
198
+ from,
199
+ to,
200
+ parentId,
201
+ sort,
202
+ );
203
+ const { items, next } = applyTransform(response.data, [
204
+ snakeToCamel(),
205
+ merge(getDefaultGetListResponse()),
206
+ ]);
207
+ return {
208
+ items,
209
+ next,
210
+ };
211
+ } catch (err) {
212
+ throw applyTransform(err, [notify]);
213
+ }
214
+ };
215
+
216
+ const getAgentUsersOptions = async (params) => {
217
+ const { page, size, search, sort, fields, id } = applyTransform(params, [
218
+ merge(getDefaultGetParams()),
219
+ starToSearch('search'),
220
+ ]);
221
+
222
+ try {
223
+ const response = await agentService.searchLookupUsersAgentNotExists(
224
+ page,
225
+ size,
226
+ search,
227
+ );
228
+ const { items, next } = applyTransform(response.data, [
229
+ snakeToCamel(),
230
+ merge(getDefaultGetListResponse()),
231
+ ]);
232
+ return {
233
+ items,
234
+ next,
235
+ };
236
+ } catch (err) {
237
+ throw applyTransform(err, [notify]);
238
+ }
239
+ };
240
+ const getSupervisorOptions = async (params) => {
241
+ const isSupervisor = true;
242
+ return getAgentsList({ ...params, isSupervisor });
243
+ };
244
+
245
+ const getRegularAgentsOptions = async (params) => {
246
+ const isNotSupervisor = true;
247
+ return getAgentsList({ ...params, isNotSupervisor });
248
+ };
249
+
250
+ const AgentsAPI = {
251
+ getList: getAgentsList,
252
+ get: getAgent,
253
+ add: addAgent,
254
+ patch: patchAgent,
255
+ update: updateAgent,
256
+ delete: deleteAgent,
257
+ getLookup: getAgentsLookup,
258
+
259
+ getAgentHistory,
260
+ getRegularAgentsOptions,
261
+ getAgentUsersOptions,
262
+ getSupervisorOptions,
263
+ };
264
+
265
+ export default AgentsAPI;
@@ -0,0 +1,112 @@
1
+ import { BucketServiceApiFactory } 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 bucketService = new BucketServiceApiFactory(configuration, '', instance);
22
+
23
+ const getBucketsList = async (params) => {
24
+ const { page, size, search, sort, fields, id } = applyTransform(params, [
25
+ merge(getDefaultGetParams()),
26
+ starToSearch('search'),
27
+ ]);
28
+
29
+ try {
30
+ const response = await bucketService.searchBucket(
31
+ page,
32
+ size,
33
+ search,
34
+ sort,
35
+ fields,
36
+ id,
37
+ );
38
+ const { items, next } = applyTransform(response.data, [
39
+ snakeToCamel(),
40
+ merge(getDefaultGetListResponse()),
41
+ ]);
42
+ return {
43
+ items,
44
+ next,
45
+ };
46
+ } catch (err) {
47
+ throw applyTransform(err, [notify]);
48
+ }
49
+ };
50
+
51
+ const getBucket = async ({ itemId: id }) => {
52
+ try {
53
+ const response = await bucketService.readBucket(id);
54
+ return applyTransform(response.data, [snakeToCamel()]);
55
+ } catch (err) {
56
+ throw applyTransform(err, [notify]);
57
+ }
58
+ };
59
+
60
+ const fieldsToSend = ['name', 'description'];
61
+
62
+ const addBucket = async ({ itemInstance }) => {
63
+ const item = applyTransform(itemInstance, [
64
+ sanitize(fieldsToSend),
65
+ camelToSnake(),
66
+ ]);
67
+ try {
68
+ const response = await bucketService.createBucket(item);
69
+ return applyTransform(response.data, [snakeToCamel()]);
70
+ } catch (err) {
71
+ throw applyTransform(err, [notify]);
72
+ }
73
+ };
74
+
75
+ const updateBucket = async ({ itemInstance, itemId: id }) => {
76
+ const item = applyTransform(itemInstance, [
77
+ sanitize(fieldsToSend),
78
+ camelToSnake(),
79
+ ]);
80
+ try {
81
+ const response = await bucketService.updateBucket(id, item);
82
+ return applyTransform(response.data, [snakeToCamel()]);
83
+ } catch (err) {
84
+ throw applyTransform(err, [notify]);
85
+ }
86
+ };
87
+
88
+ const deleteBucket = async ({ id }) => {
89
+ try {
90
+ const response = await bucketService.deleteBucket(id);
91
+ return applyTransform(response.data, []);
92
+ } catch (err) {
93
+ throw applyTransform(err, [notify]);
94
+ }
95
+ };
96
+
97
+ const getBucketsLookup = (params) =>
98
+ getBucketsList({
99
+ ...params,
100
+ fields: params.fields || ['id', 'name'],
101
+ });
102
+
103
+ const BucketsAPI = {
104
+ getList: getBucketsList,
105
+ get: getBucket,
106
+ add: addBucket,
107
+ update: updateBucket,
108
+ delete: deleteBucket,
109
+ getLookup: getBucketsLookup,
110
+ };
111
+
112
+ export default BucketsAPI;