@webitel/api-services 1.0.5 → 1.0.7

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 (232) hide show
  1. package/package.json +2 -1
  2. package/src/api/clients/caseComments/caseComments.ts +141 -0
  3. package/src/api/clients/caseFiles/caseFiles.ts +79 -0
  4. package/src/api/clients/caseLinks/caseLinks.ts +150 -0
  5. package/src/api/clients/caseRelatedCases/caseRelatedCases.ts +125 -0
  6. package/src/api/clients/caseServices/services.ts +38 -72
  7. package/src/api/clients/cases/_internals/ftsService.ts +67 -0
  8. package/src/api/clients/cases/_internals/stringifyCaseFilters.ts +156 -0
  9. package/src/api/clients/cases/cases.ts +360 -0
  10. package/src/api/clients/chatMessagesHistory/chatMessagesHistory.ts +64 -0
  11. package/src/api/clients/configurations/configurations.ts +56 -39
  12. package/src/api/clients/contactCases/contactCases.ts +109 -0
  13. package/src/api/clients/emails/emails.ts +11 -7
  14. package/src/api/clients/index.ts +9 -0
  15. package/src/api/clients/labels/labels.ts +24 -29
  16. package/src/api/clients/phones/phones.ts +11 -7
  17. package/src/api/clients/timeline/timeline.ts +124 -0
  18. package/src/api/clients/variables/variables.ts +10 -5
  19. package/src/api/clients/wtTypes/_shared/utils/assignFieldPositions.ts +28 -0
  20. package/src/api/clients/wtTypes/_shared/utils/sortDynamicFields.ts +7 -9
  21. package/src/api/clients/wtTypes/adjunctTypeRecords/adjunctTypeRecords.ts +19 -16
  22. package/src/api/clients/wtTypes/adjunctTypes/adjunctTypes.ts +4 -0
  23. package/src/api/clients/wtTypes/typeExtensions/typeExtensions.ts +21 -31
  24. package/src/api/clients//321/201ontacts/contacts.ts +103 -234
  25. package/src/api/clients//321/201ontacts/getContactAccessFromMode.ts +9 -0
  26. package/src/api/clients//321/201ontacts/index.ts +1 -1
  27. package/src/gen/_models/contactsCallFile.ts +3 -0
  28. package/src/gen/_models/contactsCallFileType.ts +18 -0
  29. package/src/gen/_models/index.ts +9 -0
  30. package/src/gen/_models/webitelCasesCallFile.ts +3 -0
  31. package/src/gen/_models/webitelCasesCallFileType.ts +18 -0
  32. package/src/gen-wire/_models/contactsCallFile.ts +3 -0
  33. package/src/gen-wire/_models/contactsCallFileType.ts +18 -0
  34. package/src/gen-wire/_models/index.ts +2 -0
  35. package/src/gen-wire/_models/webitelCasesCallFile.ts +3 -0
  36. package/src/gen-wire/_models/webitelCasesCallFileType.ts +18 -0
  37. package/src/gen-wire/access-store/access-store.ts +1 -1
  38. package/src/gen-wire/agent-absence-service/agent-absence-service.ts +1 -1
  39. package/src/gen-wire/agent-chat-service/agent-chat-service.ts +1 -1
  40. package/src/gen-wire/agent-pause-cause-service/agent-pause-cause-service.ts +1 -1
  41. package/src/gen-wire/agent-service/agent-service.ts +1 -1
  42. package/src/gen-wire/agent-skill-service/agent-skill-service.ts +1 -1
  43. package/src/gen-wire/agent-team-service/agent-team-service.ts +1 -1
  44. package/src/gen-wire/agent-working-conditions-service/agent-working-conditions-service.ts +1 -1
  45. package/src/gen-wire/agent-working-schedule-service/agent-working-schedule-service.ts +1 -1
  46. package/src/gen-wire/articles/articles.ts +1 -1
  47. package/src/gen-wire/attachments/attachments.ts +1 -1
  48. package/src/gen-wire/audit-form-service/audit-form-service.ts +1 -1
  49. package/src/gen-wire/auth/auth.ts +1 -1
  50. package/src/gen-wire/backend-profile-service/backend-profile-service.ts +1 -1
  51. package/src/gen-wire/bucket-service/bucket-service.ts +1 -1
  52. package/src/gen-wire/calendar-service/calendar-service.ts +1 -1
  53. package/src/gen-wire/call-service/call-service.ts +1 -1
  54. package/src/gen-wire/case-comments/case-comments.ts +1 -1
  55. package/src/gen-wire/case-communications/case-communications.ts +1 -1
  56. package/src/gen-wire/case-files/case-files.ts +1 -1
  57. package/src/gen-wire/case-links/case-links.ts +1 -1
  58. package/src/gen-wire/case-timeline/case-timeline.ts +1 -1
  59. package/src/gen-wire/case-timeline/case-timeline.zod.ts +14 -0
  60. package/src/gen-wire/cases/cases.ts +1 -1
  61. package/src/gen-wire/cases-chat-catalog/cases-chat-catalog.ts +1 -1
  62. package/src/gen-wire/catalogs/catalogs.ts +1 -1
  63. package/src/gen-wire/classes/classes.ts +1 -1
  64. package/src/gen-wire/close-reason-groups/close-reason-groups.ts +1 -1
  65. package/src/gen-wire/close-reasons/close-reasons.ts +1 -1
  66. package/src/gen-wire/cognitive-profile-service/cognitive-profile-service.ts +1 -1
  67. package/src/gen-wire/comments/comments.ts +1 -1
  68. package/src/gen-wire/communication-type-service/communication-type-service.ts +1 -1
  69. package/src/gen-wire/config-service/config-service.ts +1 -1
  70. package/src/gen-wire/contact-groups/contact-groups.ts +1 -1
  71. package/src/gen-wire/contact-linking-service/contact-linking-service.ts +1 -1
  72. package/src/gen-wire/contacts/contacts.ts +1 -1
  73. package/src/gen-wire/contacts-chat-catalog/contacts-chat-catalog.ts +1 -1
  74. package/src/gen-wire/customer/customer.ts +1 -1
  75. package/src/gen-wire/customers/customers.ts +1 -1
  76. package/src/gen-wire/devices/devices.ts +1 -1
  77. package/src/gen-wire/dictionaries/dictionaries.ts +1 -1
  78. package/src/gen-wire/domains/domains.ts +1 -1
  79. package/src/gen-wire/dynamic-conditions/dynamic-conditions.ts +1 -1
  80. package/src/gen-wire/dynamic-groups/dynamic-groups.ts +1 -1
  81. package/src/gen-wire/email-profile-service/email-profile-service.ts +1 -1
  82. package/src/gen-wire/emails/emails.ts +1 -1
  83. package/src/gen-wire/embedding-models/embedding-models.ts +1 -1
  84. package/src/gen-wire/extensions/extensions.ts +1 -1
  85. package/src/gen-wire/feedback-service/feedback-service.ts +1 -1
  86. package/src/gen-wire/file-policies-service/file-policies-service.ts +1 -1
  87. package/src/gen-wire/file-service/file-service.ts +1 -1
  88. package/src/gen-wire/file-transcript-service/file-transcript-service.ts +1 -1
  89. package/src/gen-wire/forecast-calculation-service/forecast-calculation-service.ts +1 -1
  90. package/src/gen-wire/ftsservice/ftsservice.ts +1 -1
  91. package/src/gen-wire/groups/groups.ts +1 -1
  92. package/src/gen-wire/im-service-provider-v1-telegrambotservice/im-service-provider-v1-telegrambotservice.ts +1 -1
  93. package/src/gen-wire/imclients/imclients.ts +1 -1
  94. package/src/gen-wire/import-template-service/import-template-service.ts +1 -1
  95. package/src/gen-wire/index.ts +2 -0
  96. package/src/gen-wire/knowledgebase-search/knowledgebase-search.ts +1 -1
  97. package/src/gen-wire/labels/labels.ts +1 -1
  98. package/src/gen-wire/languages/languages.ts +1 -1
  99. package/src/gen-wire/ldap/ldap.ts +1 -1
  100. package/src/gen-wire/list-service/list-service.ts +1 -1
  101. package/src/gen-wire/logger-service/logger-service.ts +1 -1
  102. package/src/gen-wire/managers/managers.ts +1 -1
  103. package/src/gen-wire/media-file-service/media-file-service.ts +1 -1
  104. package/src/gen-wire/meeting-service/meeting-service.ts +1 -1
  105. package/src/gen-wire/member-service/member-service.ts +1 -1
  106. package/src/gen-wire/messages/messages.ts +1 -1
  107. package/src/gen-wire/oauth2-federation/oauth2-federation.ts +1 -1
  108. package/src/gen-wire/online-skills/online-skills.ts +1 -1
  109. package/src/gen-wire/outbound-resource-group-service/outbound-resource-group-service.ts +1 -1
  110. package/src/gen-wire/outbound-resource-service/outbound-resource-service.ts +1 -1
  111. package/src/gen-wire/pause-template-service/pause-template-service.ts +1 -1
  112. package/src/gen-wire/pdf-service/pdf-service.ts +1 -1
  113. package/src/gen-wire/permissions/permissions.ts +1 -1
  114. package/src/gen-wire/phones/phones.ts +1 -1
  115. package/src/gen-wire/photos/photos.ts +1 -1
  116. package/src/gen-wire/presence/presence.ts +1 -1
  117. package/src/gen-wire/preset-query-service/preset-query-service.ts +1 -1
  118. package/src/gen-wire/priorities/priorities.ts +1 -1
  119. package/src/gen-wire/queue-bucket-service/queue-bucket-service.ts +1 -1
  120. package/src/gen-wire/queue-hook-service/queue-hook-service.ts +1 -1
  121. package/src/gen-wire/queue-resources-service/queue-resources-service.ts +1 -1
  122. package/src/gen-wire/queue-service/queue-service.ts +1 -1
  123. package/src/gen-wire/queue-skill-service/queue-skill-service.ts +1 -1
  124. package/src/gen-wire/quick-replies-service/quick-replies-service.ts +1 -1
  125. package/src/gen-wire/records/records.ts +1 -1
  126. package/src/gen-wire/region-service/region-service.ts +1 -1
  127. package/src/gen-wire/related-cases/related-cases.ts +1 -1
  128. package/src/gen-wire/retrieval/retrieval.ts +1 -1
  129. package/src/gen-wire/routing-chat-plan-service/routing-chat-plan-service.ts +1 -1
  130. package/src/gen-wire/routing-outbound-call-service/routing-outbound-call-service.ts +1 -1
  131. package/src/gen-wire/routing-schema-service/routing-schema-service.ts +1 -1
  132. package/src/gen-wire/routing-variable-service/routing-variable-service.ts +1 -1
  133. package/src/gen-wire/schema-variables-service/schema-variables-service.ts +1 -1
  134. package/src/gen-wire/schema-version-service/schema-version-service.ts +1 -1
  135. package/src/gen-wire/services/services.ts +1 -1
  136. package/src/gen-wire/shift-template-service/shift-template-service.ts +1 -1
  137. package/src/gen-wire/skill-service/skill-service.ts +1 -1
  138. package/src/gen-wire/slaconditions/slaconditions.ts +1 -1
  139. package/src/gen-wire/slas/slas.ts +1 -1
  140. package/src/gen-wire/sources/sources.ts +1 -1
  141. package/src/gen-wire/spaces/spaces.ts +1 -1
  142. package/src/gen-wire/status-conditions/status-conditions.ts +1 -1
  143. package/src/gen-wire/statuses/statuses.ts +1 -1
  144. package/src/gen-wire/system-setting-service/system-setting-service.ts +1 -1
  145. package/src/gen-wire/tags/tags.ts +1 -1
  146. package/src/gen-wire/team-hook-service/team-hook-service.ts +1 -1
  147. package/src/gen-wire/team-trigger-service/team-trigger-service.ts +1 -1
  148. package/src/gen-wire/timeline/timeline.ts +1 -1
  149. package/src/gen-wire/timeline/timeline.zod.ts +14 -0
  150. package/src/gen-wire/timezones/timezones.ts +1 -1
  151. package/src/gen-wire/trigger-service/trigger-service.ts +1 -1
  152. package/src/gen-wire/two-factor-authentication/two-factor-authentication.ts +1 -1
  153. package/src/gen-wire/types/types.ts +1 -1
  154. package/src/gen-wire/user-access-tokens/user-access-tokens.ts +1 -1
  155. package/src/gen-wire/user-helper-service/user-helper-service.ts +1 -1
  156. package/src/gen-wire/users/users.ts +1 -1
  157. package/src/gen-wire/variables/variables.ts +1 -1
  158. package/src/gen-wire/versions/versions.ts +1 -1
  159. package/src/gen-wire/web-hook-service/web-hook-service.ts +1 -1
  160. package/src/gen-wire/webitel-im-api-gateway-v1-account/webitel-im-api-gateway-v1-account.ts +1 -1
  161. package/src/gen-wire/webitel-im-api-gateway-v1-bots/webitel-im-api-gateway-v1-bots.ts +1 -1
  162. package/src/gen-wire/webitel-im-api-gateway-v1-contacts/webitel-im-api-gateway-v1-contacts.ts +1 -1
  163. package/src/gen-wire/webitel-im-api-gateway-v1-contactsettingsmanagement/webitel-im-api-gateway-v1-contactsettingsmanagement.ts +1 -1
  164. package/src/gen-wire/webitel-im-api-gateway-v1-message/webitel-im-api-gateway-v1-message.ts +1 -1
  165. package/src/gen-wire/webitel-im-api-gateway-v1-messagehistory/webitel-im-api-gateway-v1-messagehistory.ts +1 -1
  166. package/src/gen-wire/webitel-im-api-gateway-v1-threadmanagement/webitel-im-api-gateway-v1-threadmanagement.ts +1 -1
  167. package/src/gen-wire/webitel-im-api-gateway-v1-threadpermission/webitel-im-api-gateway-v1-threadpermission.ts +1 -1
  168. package/src/gen-wire/webitel-im-api-provider-v1-facebookservice/webitel-im-api-provider-v1-facebookservice.ts +1 -1
  169. package/src/gen-wire/webitel-im-api-provider-v1-instagramservice/webitel-im-api-provider-v1-instagramservice.ts +1 -1
  170. package/src/gen-wire/webitel-im-api-provider-v1-metaappservice/webitel-im-api-provider-v1-metaappservice.ts +1 -1
  171. package/src/gen-wire/webitel-im-api-provider-v1-metaoauthservice/webitel-im-api-provider-v1-metaoauthservice.ts +1 -1
  172. package/src/gen-wire/webitel-im-api-provider-v1-whatsappservice/webitel-im-api-provider-v1-whatsappservice.ts +1 -1
  173. package/src/gen-wire/webitel-im-provider-v1-facebookservice/webitel-im-provider-v1-facebookservice.ts +1 -1
  174. package/src/gen-wire/webitel-im-provider-v1-gateservice/webitel-im-provider-v1-gateservice.ts +1 -1
  175. package/src/gen-wire/webitel-im-provider-v1-gatetemplateservice/webitel-im-provider-v1-gatetemplateservice.ts +1 -1
  176. package/src/gen-wire/webitel-im-provider-v1-instagramservice/webitel-im-provider-v1-instagramservice.ts +1 -1
  177. package/src/gen-wire/webitel-im-provider-v1-metaappservice/webitel-im-provider-v1-metaappservice.ts +1 -1
  178. package/src/gen-wire/webitel-im-provider-v1-metaoauthservice/webitel-im-provider-v1-metaoauthservice.ts +1 -1
  179. package/src/gen-wire/webitel-im-provider-v1-providermessageservice/webitel-im-provider-v1-providermessageservice.ts +1 -1
  180. package/src/gen-wire/webitel-im-provider-v1-viberservice/webitel-im-provider-v1-viberservice.ts +1 -1
  181. package/src/gen-wire/webitel-im-provider-v1-whatsappservice/webitel-im-provider-v1-whatsappservice.ts +1 -1
  182. package/src/gen-wire/working-condition-service/working-condition-service.ts +1 -1
  183. package/src/gen-wire/working-schedule-service/working-schedule-service.ts +1 -1
  184. package/src/validations/adjunctType/adjunctType.validations.ts +18 -0
  185. package/src/validations/case/case.validations.ts +33 -0
  186. package/src/validations/caseClose/caseClose.validations.ts +30 -0
  187. package/src/validations/caseExportOptions/caseExportOptions.validations.ts +27 -0
  188. package/src/validations/contact/contact.validations.ts +12 -7
  189. package/src/validations/index.ts +5 -0
  190. package/src/validations/typeExtension/typeExtension.validations.ts +8 -0
  191. package/types/.tsbuildinfo +1 -1
  192. package/types/api/clients/caseComments/caseComments.d.ts +20 -0
  193. package/types/api/clients/caseFiles/caseFiles.d.ts +10 -0
  194. package/types/api/clients/caseLinks/caseLinks.d.ts +22 -0
  195. package/types/api/clients/caseRelatedCases/caseRelatedCases.d.ts +14 -0
  196. package/types/api/clients/caseServices/services.d.ts +3 -12
  197. package/types/api/clients/cases/_internals/ftsService.d.ts +7 -0
  198. package/types/api/clients/cases/_internals/stringifyCaseFilters.d.ts +2 -0
  199. package/types/api/clients/cases/cases.d.ts +35 -0
  200. package/types/api/clients/chatMessagesHistory/chatMessagesHistory.d.ts +15 -0
  201. package/types/api/clients/contactCases/contactCases.d.ts +9 -0
  202. package/types/api/clients/index.d.ts +9 -0
  203. package/types/api/clients/labels/labels.d.ts +2 -2
  204. package/types/api/clients/timeline/timeline.d.ts +16 -0
  205. package/types/api/clients/wtTypes/_shared/utils/assignFieldPositions.d.ts +2 -0
  206. package/types/api/clients/wtTypes/_shared/utils/sortDynamicFields.d.ts +2 -2
  207. package/types/api/clients/wtTypes/adjunctTypeRecords/adjunctTypeRecords.d.ts +11 -11
  208. package/types/api/clients/wtTypes/typeExtensions/typeExtensions.d.ts +1 -1
  209. package/types/api/clients//321/201ontacts/getContactAccessFromMode.d.ts +5 -0
  210. package/types/api/clients//321/201ontacts/index.d.ts +1 -1
  211. package/types/gen/_models/contactsCallFile.d.ts +3 -0
  212. package/types/gen/_models/contactsCallFileType.d.ts +15 -0
  213. package/types/gen/_models/index.d.ts +8 -0
  214. package/types/gen/_models/webitelCasesCallFile.d.ts +3 -0
  215. package/types/gen/_models/webitelCasesCallFileType.d.ts +15 -0
  216. package/types/gen-wire/_models/contactsCallFile.d.ts +3 -0
  217. package/types/gen-wire/_models/contactsCallFileType.d.ts +15 -0
  218. package/types/gen-wire/_models/index.d.ts +2 -0
  219. package/types/gen-wire/_models/webitelCasesCallFile.d.ts +3 -0
  220. package/types/gen-wire/_models/webitelCasesCallFileType.d.ts +15 -0
  221. package/types/gen-wire/case-timeline/case-timeline.zod.d.ts +10 -0
  222. package/types/gen-wire/index.d.ts +2 -2
  223. package/types/gen-wire/timeline/timeline.zod.d.ts +10 -0
  224. package/types/validations/adjunctType/adjunctType.validations.d.ts +11 -0
  225. package/types/validations/case/case.validations.d.ts +31 -0
  226. package/types/validations/caseClose/caseClose.validations.d.ts +8 -0
  227. package/types/validations/caseExportOptions/caseExportOptions.validations.d.ts +9 -0
  228. package/types/validations/contact/contact.validations.d.ts +15 -15
  229. package/types/validations/index.d.ts +5 -0
  230. package/types/validations/typeExtension/typeExtension.validations.d.ts +20 -0
  231. package/src/api/clients//321/201ontacts/types/ContactEntity.types.ts +0 -25
  232. package/types/api/clients//321/201ontacts/types/ContactEntity.types.d.ts +0 -14
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webitel/api-services",
3
- "version": "1.0.5",
3
+ "version": "1.0.7",
4
4
  "private": false,
5
5
  "repository": {
6
6
  "type": "git",
@@ -71,6 +71,7 @@
71
71
  },
72
72
  "dependencies": {
73
73
  "@faker-js/faker": "^9.7.0",
74
+ "date-fns": "^4.1.0",
74
75
  "lodash-es": "^4.17.21",
75
76
  "msw": "^2.8.2",
76
77
  "qs-esm": "^7.0.2"
@@ -0,0 +1,141 @@
1
+ import { getShallowFieldsToSendFromZodSchema } from '@webitel/api-services/gen/utils';
2
+ import {
3
+ getCaseComments,
4
+ ListCommentsQueryParams,
5
+ UpdateComment2Body,
6
+ } from '../../../gen-wire';
7
+
8
+ import { getDefaultGetListResponse, getDefaultGetParams } from '../../defaults';
9
+ import {
10
+ applyTransform,
11
+ camelToSnake,
12
+ merge,
13
+ notify,
14
+ sanitizeToWire,
15
+ snakeToCamel,
16
+ starToSearch,
17
+ } from '../../transformers';
18
+ import type { ApiId, ApiParams } from '../_shared/types';
19
+
20
+ const getCommentsList = async ({
21
+ parentId,
22
+ ...rest
23
+ }: {
24
+ parentId: ApiId;
25
+ } & ApiParams) => {
26
+ const fieldsToSend = getShallowFieldsToSendFromZodSchema(
27
+ ListCommentsQueryParams,
28
+ );
29
+
30
+ const { page, size, q, ids, sort } = applyTransform(rest, [
31
+ merge(getDefaultGetParams()),
32
+ starToSearch('search'),
33
+ (params) => ({
34
+ ...params,
35
+ q: params.search,
36
+ }),
37
+ sanitizeToWire(fieldsToSend),
38
+ camelToSnake(),
39
+ ]);
40
+ try {
41
+ const response = await getCaseComments().listComments(String(parentId), {
42
+ page,
43
+ size,
44
+ q,
45
+ ids,
46
+ sort,
47
+ fields: [
48
+ 'id',
49
+ 'etag',
50
+ 'text',
51
+ 'created_at',
52
+ 'updated_at',
53
+ 'created_by',
54
+ 'author',
55
+ 'can_edit',
56
+ 'edited',
57
+ ],
58
+ });
59
+
60
+ const { items, next } = applyTransform(response.data, [
61
+ merge(getDefaultGetListResponse()),
62
+ ]);
63
+ return {
64
+ items: applyTransform(items, [
65
+ snakeToCamel(),
66
+ ]),
67
+ next,
68
+ };
69
+ } catch (err) {
70
+ throw applyTransform(err, [
71
+ notify,
72
+ ]);
73
+ }
74
+ };
75
+
76
+ const addComment = async ({
77
+ parentId,
78
+ input,
79
+ }: {
80
+ parentId: ApiId;
81
+ input: ApiParams;
82
+ }) => {
83
+ try {
84
+ const response = await getCaseComments().publishComment(
85
+ String(parentId),
86
+ input,
87
+ );
88
+ return applyTransform(response.data, [
89
+ snakeToCamel(),
90
+ ]);
91
+ } catch (err) {
92
+ throw applyTransform(err, [
93
+ notify,
94
+ ]);
95
+ }
96
+ };
97
+
98
+ const patchComment = async ({
99
+ commentId,
100
+ changes,
101
+ }: {
102
+ commentId: ApiId;
103
+ changes: ApiParams;
104
+ }) => {
105
+ const body = applyTransform(changes, [
106
+ sanitizeToWire(getShallowFieldsToSendFromZodSchema(UpdateComment2Body)),
107
+ camelToSnake(),
108
+ ]);
109
+
110
+ try {
111
+ const response = await getCaseComments().updateComment2(
112
+ String(commentId),
113
+ body,
114
+ );
115
+ return applyTransform(response.data, [
116
+ snakeToCamel(),
117
+ ]);
118
+ } catch (err) {
119
+ throw applyTransform(err, [
120
+ notify,
121
+ ]);
122
+ }
123
+ };
124
+
125
+ const deleteComment = async ({ etag }: { etag: ApiId }) => {
126
+ try {
127
+ const response = await getCaseComments().deleteComment(String(etag));
128
+ return applyTransform(response.data, []);
129
+ } catch (err) {
130
+ throw applyTransform(err, [
131
+ notify,
132
+ ]);
133
+ }
134
+ };
135
+
136
+ export const CommentsAPI = {
137
+ getList: getCommentsList,
138
+ delete: deleteComment,
139
+ add: addComment,
140
+ patch: patchComment,
141
+ };
@@ -0,0 +1,79 @@
1
+ import { getShallowFieldsToSendFromZodSchema } from '@webitel/api-services/gen/utils';
2
+ import { getCaseFiles, ListFilesQueryParams } from '../../../gen-wire';
3
+
4
+ import { getDefaultGetListResponse, getDefaultGetParams } from '../../defaults';
5
+ import {
6
+ applyTransform,
7
+ camelToSnake,
8
+ merge,
9
+ notify,
10
+ sanitizeToWire,
11
+ snakeToCamel,
12
+ starToSearch,
13
+ } from '../../transformers';
14
+ import type {
15
+ ApiId,
16
+ ApiParams,
17
+ NestedDeleteItemParams,
18
+ } from '../_shared/types';
19
+
20
+ const getFilesList = async ({
21
+ parentId,
22
+ ...rest
23
+ }: {
24
+ parentId: ApiId;
25
+ } & ApiParams) => {
26
+ const fieldsToSend =
27
+ getShallowFieldsToSendFromZodSchema(ListFilesQueryParams);
28
+
29
+ const { page, size, q } = applyTransform(rest, [
30
+ merge(getDefaultGetParams()),
31
+ starToSearch('search'),
32
+ (params) => ({
33
+ ...params,
34
+ q: params.search,
35
+ }),
36
+ sanitizeToWire(fieldsToSend),
37
+ camelToSnake(),
38
+ ]);
39
+ try {
40
+ const response = await getCaseFiles().listFiles(String(parentId), {
41
+ page,
42
+ size,
43
+ q,
44
+ });
45
+
46
+ const { items, next } = applyTransform(response.data, [
47
+ merge(getDefaultGetListResponse()),
48
+ ]);
49
+ return {
50
+ items: applyTransform(items, [
51
+ snakeToCamel(),
52
+ ]),
53
+ next,
54
+ };
55
+ } catch (err) {
56
+ throw applyTransform(err, [
57
+ notify,
58
+ ]);
59
+ }
60
+ };
61
+
62
+ const deleteFile = async ({ parentId, id }: NestedDeleteItemParams) => {
63
+ try {
64
+ const response = await getCaseFiles().deleteFile(
65
+ String(parentId),
66
+ String(id),
67
+ );
68
+ return applyTransform(response.data, []);
69
+ } catch (err) {
70
+ throw applyTransform(err, [
71
+ notify,
72
+ ]);
73
+ }
74
+ };
75
+
76
+ export const CaseFilesAPI = {
77
+ getList: getFilesList,
78
+ delete: deleteFile,
79
+ };
@@ -0,0 +1,150 @@
1
+ import { getShallowFieldsToSendFromZodSchema } from '@webitel/api-services/gen/utils';
2
+ import {
3
+ CreateLinkParams,
4
+ getCaseLinks,
5
+ ListLinksQueryParams,
6
+ UpdateLink2Body,
7
+ } from '../../../gen-wire';
8
+
9
+ import { getDefaultGetListResponse, getDefaultGetParams } from '../../defaults';
10
+ import {
11
+ applyTransform,
12
+ camelToSnake,
13
+ merge,
14
+ notify,
15
+ sanitizeToWire,
16
+ snakeToCamel,
17
+ starToSearch,
18
+ } from '../../transformers';
19
+ import type { ApiId, ApiParams } from '../_shared/types';
20
+
21
+ const getLinksList = async ({
22
+ parentId,
23
+ ...rest
24
+ }: {
25
+ parentId: ApiId;
26
+ } & ApiParams) => {
27
+ const fieldsToSend =
28
+ getShallowFieldsToSendFromZodSchema(ListLinksQueryParams);
29
+
30
+ const { page, size, q } = applyTransform(rest, [
31
+ merge(getDefaultGetParams()),
32
+ starToSearch('search'),
33
+ (params) => ({
34
+ ...params,
35
+ q: params.search,
36
+ }),
37
+ sanitizeToWire(fieldsToSend),
38
+ camelToSnake(),
39
+ ]);
40
+ try {
41
+ const response = await getCaseLinks().listLinks(String(parentId), {
42
+ page,
43
+ size,
44
+ q,
45
+ });
46
+
47
+ const { items, next } = applyTransform(response.data, [
48
+ merge(getDefaultGetListResponse()),
49
+ ]);
50
+ return {
51
+ items: applyTransform(items, [
52
+ snakeToCamel(),
53
+ ]),
54
+ next,
55
+ };
56
+ } catch (err) {
57
+ throw applyTransform(err, [
58
+ notify,
59
+ ]);
60
+ }
61
+ };
62
+
63
+ const createLinkFieldsToSend =
64
+ getShallowFieldsToSendFromZodSchema(CreateLinkParams);
65
+
66
+ const addLink = async ({
67
+ parentId,
68
+ input,
69
+ }: {
70
+ parentId: ApiId;
71
+ input: ApiParams;
72
+ }) => {
73
+ const params = applyTransform(
74
+ {
75
+ inputUrl: input.url,
76
+ inputName: input.name,
77
+ },
78
+ [
79
+ sanitizeToWire(createLinkFieldsToSend),
80
+ ],
81
+ );
82
+
83
+ try {
84
+ const response = await getCaseLinks().createLink(String(parentId), params);
85
+ return applyTransform(response.data, [
86
+ snakeToCamel(),
87
+ ]);
88
+ } catch (err) {
89
+ throw applyTransform(err, [
90
+ notify,
91
+ ]);
92
+ }
93
+ };
94
+
95
+ const patchLink = async ({
96
+ parentId,
97
+ linkId,
98
+ changes,
99
+ }: {
100
+ parentId: ApiId;
101
+ linkId: ApiId;
102
+ changes: ApiParams;
103
+ }) => {
104
+ const body = applyTransform(changes, [
105
+ sanitizeToWire(getShallowFieldsToSendFromZodSchema(UpdateLink2Body)),
106
+ camelToSnake(),
107
+ ]);
108
+
109
+ try {
110
+ const response = await getCaseLinks().updateLink2(
111
+ String(parentId),
112
+ String(linkId),
113
+ body,
114
+ );
115
+ return applyTransform(response.data, [
116
+ snakeToCamel(),
117
+ ]);
118
+ } catch (err) {
119
+ throw applyTransform(err, [
120
+ notify,
121
+ ]);
122
+ }
123
+ };
124
+
125
+ const deleteLink = async ({
126
+ parentId,
127
+ etag,
128
+ }: {
129
+ parentId: ApiId;
130
+ etag: ApiId;
131
+ }) => {
132
+ try {
133
+ const response = await getCaseLinks().deleteLink(
134
+ String(parentId),
135
+ String(etag),
136
+ );
137
+ return applyTransform(response.data, []);
138
+ } catch (err) {
139
+ throw applyTransform(err, [
140
+ notify,
141
+ ]);
142
+ }
143
+ };
144
+
145
+ export const CaseLinksAPI = {
146
+ getList: getLinksList,
147
+ delete: deleteLink,
148
+ add: addLink,
149
+ patch: patchLink,
150
+ };
@@ -0,0 +1,125 @@
1
+ import { getShallowFieldsToSendFromZodSchema } from '@webitel/api-services/gen/utils';
2
+ import {
3
+ getRelatedCases,
4
+ ListRelatedCasesQueryParams,
5
+ } from '../../../gen-wire';
6
+
7
+ import { getDefaultGetListResponse, getDefaultGetParams } from '../../defaults';
8
+ import {
9
+ applyTransform,
10
+ camelToSnake,
11
+ merge,
12
+ notify,
13
+ sanitizeToWire,
14
+ snakeToCamel,
15
+ starToSearch,
16
+ } from '../../transformers';
17
+ import type {
18
+ ApiId,
19
+ ApiParams,
20
+ NestedDeleteItemParams,
21
+ } from '../_shared/types';
22
+
23
+ const getRelatedCasesList = async ({
24
+ parentId,
25
+ ...rest
26
+ }: {
27
+ parentId: ApiId;
28
+ } & ApiParams) => {
29
+ const fieldsToSend = getShallowFieldsToSendFromZodSchema(
30
+ ListRelatedCasesQueryParams,
31
+ );
32
+
33
+ const { page, size, q, ids, sort, fields } = applyTransform(rest, [
34
+ merge(getDefaultGetParams()),
35
+ starToSearch('search'),
36
+ (params) => ({
37
+ ...params,
38
+ q: params.search,
39
+ fields: [
40
+ ...(params.fields || []),
41
+ 'primary_case',
42
+ 'id',
43
+ ],
44
+ }),
45
+ sanitizeToWire(fieldsToSend),
46
+ camelToSnake(),
47
+ ]);
48
+
49
+ try {
50
+ const response = await getRelatedCases().listRelatedCases(
51
+ String(parentId),
52
+ {
53
+ page,
54
+ size,
55
+ q,
56
+ sort,
57
+ fields,
58
+ ids,
59
+ },
60
+ );
61
+
62
+ const { items, next } = applyTransform(
63
+ {
64
+ ...response.data,
65
+ items: response.data?.data || [],
66
+ },
67
+ [
68
+ merge(getDefaultGetListResponse()),
69
+ ],
70
+ );
71
+
72
+ return {
73
+ items: applyTransform(items, [
74
+ snakeToCamel(),
75
+ ]),
76
+ next,
77
+ };
78
+ } catch (err) {
79
+ throw applyTransform(err, [
80
+ notify,
81
+ ]);
82
+ }
83
+ };
84
+
85
+ const addRelatedCase = async ({
86
+ parentId,
87
+ input,
88
+ }: {
89
+ parentId: ApiId;
90
+ input: ApiParams;
91
+ }) => {
92
+ try {
93
+ const response = await getRelatedCases().createRelatedCase(
94
+ String(parentId),
95
+ input,
96
+ );
97
+ return applyTransform(response.data, [
98
+ snakeToCamel(),
99
+ ]);
100
+ } catch (err) {
101
+ throw applyTransform(err, [
102
+ notify,
103
+ ]);
104
+ }
105
+ };
106
+
107
+ const deleteRelatedCase = async ({ parentId, id }: NestedDeleteItemParams) => {
108
+ try {
109
+ const response = await getRelatedCases().deleteRelatedCase(
110
+ String(parentId),
111
+ String(id),
112
+ );
113
+ return applyTransform(response.data, []);
114
+ } catch (err) {
115
+ throw applyTransform(err, [
116
+ notify,
117
+ ]);
118
+ }
119
+ };
120
+
121
+ export const RelatedCasesAPI = {
122
+ getList: getRelatedCasesList,
123
+ delete: deleteRelatedCase,
124
+ add: addRelatedCase,
125
+ };
@@ -19,13 +19,29 @@ import {
19
19
  starToSearch,
20
20
  } from '../../transformers';
21
21
  import type {
22
+ AddItemParams,
22
23
  ApiId,
23
24
  ApiParams,
24
25
  DeleteItemParams,
25
26
  GetItemParams,
26
27
  PatchItemParams,
28
+ UpdateItemParams,
27
29
  } from '../_shared/types';
28
30
 
31
+ const preRequestHandler = (item: ApiParams) => {
32
+ return {
33
+ ...item,
34
+ state: item.state ?? true,
35
+ sla_id: item.sla?.id,
36
+ status_id: item.status?.id,
37
+ close_reason_id: item.closeReason?.id,
38
+ team_ids: item.teams?.map((team: ApiParams) => team.id),
39
+ skill_ids: item.skills?.map((skill: ApiParams) => skill.id),
40
+ assignee:
41
+ item.group?.type === ContactsGroupType.Dynamic ? {} : item.assignee,
42
+ };
43
+ };
44
+
29
45
  const getServicesList = async ({
30
46
  parentId,
31
47
  rootId,
@@ -34,7 +50,7 @@ const getServicesList = async ({
34
50
  parentId?: ApiId;
35
51
  rootId: ApiId;
36
52
  } & ApiParams) => {
37
- const fieldsToSend = getShallowFieldsToSendFromZodSchema(
53
+ const listFieldsToSend = getShallowFieldsToSendFromZodSchema(
38
54
  ListServicesQueryParams,
39
55
  );
40
56
 
@@ -45,7 +61,7 @@ const getServicesList = async ({
45
61
  ...params,
46
62
  q: params.search,
47
63
  }),
48
- sanitizeToWire(fieldsToSend),
64
+ sanitizeToWire(listFieldsToSend),
49
65
  camelToSnake(),
50
66
  ]);
51
67
 
@@ -53,11 +69,11 @@ const getServicesList = async ({
53
69
  const response = await getServices().listServices({
54
70
  page,
55
71
  size,
56
- fields,
57
72
  sort,
58
73
  id,
59
74
  q,
60
75
  root_id: String(rootId ?? parentId),
76
+ fields,
61
77
  });
62
78
  const { items, next } = applyTransform(response.data, [
63
79
  merge(getDefaultGetListResponse()),
@@ -75,26 +91,15 @@ const getServicesList = async ({
75
91
  }
76
92
  };
77
93
 
78
- const getService = async ({ itemId: id }: GetItemParams) => {
79
- const fieldsToSend = [
80
- 'name',
81
- 'code',
82
- 'sla',
83
- 'state',
84
- 'prefix',
85
- 'group',
86
- 'assignee',
87
- 'description',
88
- 'default_priority',
89
- 'catalog_id',
90
- 'root_id',
91
- ];
94
+ const serviceFieldsToSend =
95
+ getShallowFieldsToSendFromZodSchema(CreateServiceBody);
92
96
 
97
+ const getService = async ({ itemId: id }: GetItemParams) => {
93
98
  const itemResponseHandler = (item: ApiParams) => item.service;
94
99
 
95
100
  try {
96
101
  const response = await getServices().locateService(String(id), {
97
- fields: fieldsToSend,
102
+ fields: serviceFieldsToSend,
98
103
  });
99
104
  return applyTransform(response.data, [
100
105
  snakeToCamel(),
@@ -107,42 +112,14 @@ const getService = async ({ itemId: id }: GetItemParams) => {
107
112
  }
108
113
  };
109
114
 
110
- const preRequestHandler = ({
111
- rootId,
112
- catalogId,
113
- }: {
114
- rootId: ApiId;
115
- catalogId: ApiId;
116
- }) => {
117
- return (item: ApiParams) => ({
118
- ...item,
119
- assignee:
120
- item.group?.type === ContactsGroupType.Dynamic ? {} : item.assignee,
121
- rootId: rootId ?? item.rootId,
122
- catalogId: catalogId ?? item.catalogId,
123
- });
124
- };
125
-
126
- const addService = async ({
127
- itemInstance,
128
- rootId,
129
- catalogId,
130
- }: {
131
- itemInstance: ApiParams;
132
- rootId: ApiId;
133
- catalogId: ApiId;
134
- }) => {
135
- const fieldsToSend = getShallowFieldsToSendFromZodSchema(CreateServiceBody);
115
+ const addFieldsToSend = getShallowFieldsToSendFromZodSchema(CreateServiceBody);
136
116
 
117
+ const addService = async ({ itemInstance }: AddItemParams) => {
137
118
  const item = applyTransform(itemInstance, [
138
- preRequestHandler({
139
- rootId,
140
- catalogId,
141
- }),
142
- sanitizeToWire(fieldsToSend),
119
+ sanitizeToWire(addFieldsToSend),
120
+ preRequestHandler,
143
121
  camelToSnake(),
144
122
  ]);
145
-
146
123
  try {
147
124
  const response = await getServices().createService(item);
148
125
  return applyTransform(response.data, [
@@ -155,28 +132,18 @@ const addService = async ({
155
132
  }
156
133
  };
157
134
 
135
+ const updateFieldsToSend =
136
+ getShallowFieldsToSendFromZodSchema(UpdateServiceBody);
137
+
158
138
  const updateService = async ({
159
139
  itemInstance,
160
140
  itemId: id,
161
- rootId,
162
- catalogId,
163
- }: {
164
- itemInstance: ApiParams;
165
- itemId: ApiId;
166
- rootId: ApiId;
167
- catalogId: ApiId;
168
- }) => {
169
- const fieldsToSend = getShallowFieldsToSendFromZodSchema(UpdateServiceBody);
170
-
141
+ }: UpdateItemParams) => {
171
142
  const item = applyTransform(itemInstance, [
172
- preRequestHandler({
173
- rootId,
174
- catalogId,
175
- }),
176
- sanitizeToWire(fieldsToSend),
143
+ sanitizeToWire(updateFieldsToSend),
144
+ preRequestHandler,
177
145
  camelToSnake(),
178
146
  ]);
179
-
180
147
  try {
181
148
  const response = await getServices().updateService(String(id), item);
182
149
  return applyTransform(response.data, [
@@ -189,11 +156,12 @@ const updateService = async ({
189
156
  }
190
157
  };
191
158
 
192
- const patchService = async ({ changes, id }: PatchItemParams) => {
193
- const fieldsToSend = getShallowFieldsToSendFromZodSchema(UpdateService2Body);
159
+ const patchFieldsToSend =
160
+ getShallowFieldsToSendFromZodSchema(UpdateService2Body);
194
161
 
162
+ const patchService = async ({ changes, id }: PatchItemParams) => {
195
163
  const body = applyTransform(changes, [
196
- sanitizeToWire(fieldsToSend),
164
+ sanitizeToWire(patchFieldsToSend),
197
165
  camelToSnake(),
198
166
  ]);
199
167
  try {
@@ -221,9 +189,7 @@ const deleteService = async ({ id }: DeleteItemParams) => {
221
189
  }
222
190
  };
223
191
 
224
- const getServicesLookup = async (
225
- params: Parameters<typeof getServicesList>[0],
226
- ) =>
192
+ const getServicesLookup = (params: Parameters<typeof getServicesList>[0]) =>
227
193
  getServicesList({
228
194
  ...params,
229
195
  fields: params.fields || [