@webitel/api-services 0.0.24 → 0.0.27

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 (418) hide show
  1. package/package.json +15 -10
  2. package/src/api/axios/generateInstance.ts +35 -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 +71 -0
  6. package/src/api/clients/agents/agents.ts +263 -0
  7. package/src/api/clients/buckets/buckets.ts +110 -0
  8. package/src/api/clients/calendars/calendars.ts +208 -0
  9. package/src/api/clients/caseCloseReasonGroups/caseCloseReasonGroups.ts +126 -0
  10. package/src/api/clients/caseCloseReasons/caseCloseReasons.ts +122 -0
  11. package/src/api/clients/casePriorities/casePriorities.ts +137 -0
  12. package/src/api/clients/caseServiceCatalogs/serviceCatalogs.ts +196 -0
  13. package/src/api/clients/caseServices/services.ts +179 -0
  14. package/src/api/clients/caseSources/caseSources.ts +116 -0
  15. package/src/api/clients/caseStatusConditions/caseStatusConditions.ts +163 -0
  16. package/src/api/clients/caseStatuses/caseStatuses.ts +117 -0
  17. package/src/api/clients/catalog/catalog.ts +39 -0
  18. package/src/api/clients/chatGateways/chatGateways.ts +303 -0
  19. package/src/api/clients/chatGateways/defaults/defaultChatGateway.ts +20 -0
  20. package/src/api/clients/chatGateways/defaults/webChatGateway.ts +75 -0
  21. package/src/api/clients/chatGateways/enums/WebchatAlternativeChannel.enum.ts +12 -0
  22. package/src/api/clients/chatGateways/scripts/generateUri.ts +13 -0
  23. package/src/api/clients/communications/communications.ts +139 -0
  24. package/src/api/clients/configurations/configurations.ts +142 -0
  25. package/src/api/clients/contactGroups/contactGroups.ts +184 -0
  26. package/src/api/clients/flows/flow.ts +219 -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 +173 -0
  31. package/src/api/clients/index.ts +68 -0
  32. package/src/api/clients/labels/labels.ts +53 -0
  33. package/src/api/clients/lists/blacklists.ts +116 -0
  34. package/src/api/clients/media/media.ts +114 -0
  35. package/src/api/clients/object/object.ts +112 -0
  36. package/src/api/clients/queues/defaults/processing.ts +14 -0
  37. package/src/api/clients/queues/queues.ts +232 -0
  38. package/src/api/clients/quickReplies/quickReplies.ts +108 -0
  39. package/src/api/clients/roles/roles.ts +200 -0
  40. package/src/api/clients/skills/skills.ts +110 -0
  41. package/src/api/clients/slaConditions/slaConditions.ts +163 -0
  42. package/src/api/clients/slas/slas.ts +116 -0
  43. package/src/api/clients/teams/teams.ts +142 -0
  44. package/src/api/clients/users/__tests__/users.spec.ts +265 -0
  45. package/src/api/clients/users/users.ts +228 -0
  46. package/src/api/clients/wtTypes/_shared/utils/sortDynamicFields.ts +21 -0
  47. package/src/api/clients/wtTypes/sysTypes/sysTypes.ts +60 -0
  48. package/src/api/clients/wtTypes/typeExtensions/typeExtensions.ts +114 -0
  49. package/src/api/clients//321/201ontacts/contactChatMessagesHistory.ts +98 -0
  50. package/src/api/clients//321/201ontacts/contacts.ts +337 -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 +8 -0
  54. package/src/api/defaults/getDefaultGetParams/getDefaultGetParams.ts +11 -0
  55. package/src/api/defaults/getDefaultInstance/getDefaultInstance.ts +21 -0
  56. package/src/api/defaults/getDefaultOpenAPIConfig/getDefaultOpenAPIConfig.ts +12 -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 +11 -0
  62. package/src/api/interceptors/response/handleUnauthorized.interceptor.ts +14 -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 +24 -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 +27 -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/agentAbsenceServiceUpdateAgentAbsenceBodyItem.ts +2 -1
  90. package/src/gen/_models/agentWorkingScheduleServiceCreateAgentsWorkingScheduleShiftsBody.ts +3 -2
  91. package/src/gen/_models/apiAccessStoreToggleDefaultAccessBody.ts +2 -1
  92. package/src/gen/_models/apiCustomer.ts +3 -2
  93. package/src/gen/_models/apiDevice.ts +2 -1
  94. package/src/gen/_models/apiLDAPCatalog.ts +5 -4
  95. package/src/gen/_models/apiLDAPUpdateLDAPCatalogBodyCatalog.ts +5 -4
  96. package/src/gen/_models/apiLDAProcess.ts +3 -2
  97. package/src/gen/_models/apiLicenseV1.ts +2 -1
  98. package/src/gen/_models/apiRole.ts +4 -3
  99. package/src/gen/_models/apiRolesUpdateRoleBodyRole.ts +4 -3
  100. package/src/gen/_models/apiUser.ts +2 -1
  101. package/src/gen/_models/apiUsersUpdateUserBodyUser.ts +2 -1
  102. package/src/gen/_models/contactsUpdateContactBody.ts +2 -1
  103. package/src/gen/_models/createCaseParams.ts +8 -0
  104. package/src/gen/_models/engineActiveCall.ts +3 -2
  105. package/src/gen/_models/engineAgent.ts +2 -1
  106. package/src/gen/_models/engineAgentInQueueStatistics.ts +2 -1
  107. package/src/gen/_models/engineAggregateHistoryCallRequest.ts +2 -1
  108. package/src/gen/_models/engineAttempt.ts +2 -1
  109. package/src/gen/_models/engineAttemptHistory.ts +2 -1
  110. package/src/gen/_models/engineAuditFormServicePatchAuditFormBody.ts +2 -1
  111. package/src/gen/_models/engineAuditFormServiceUpdateAuditFormBody.ts +2 -1
  112. package/src/gen/_models/engineAuditRate.ts +3 -2
  113. package/src/gen/_models/engineCreateAuditFormRequest.ts +2 -1
  114. package/src/gen/_models/engineCreateCallRequest.ts +2 -1
  115. package/src/gen/_models/engineCreateMemberBulkItem.ts +2 -1
  116. package/src/gen/_models/engineCreateOutboundResourceRequest.ts +3 -2
  117. package/src/gen/_models/engineCreateQueueRequest.ts +3 -2
  118. package/src/gen/_models/engineCreateRoutingSchemaRequest.ts +2 -1
  119. package/src/gen/_models/engineCreateTriggerRequest.ts +3 -2
  120. package/src/gen/_models/engineDeleteAllMembersRequest.ts +2 -1
  121. package/src/gen/_models/engineHistoryCall.ts +7 -6
  122. package/src/gen/_models/engineListReportGeneral.ts +2 -1
  123. package/src/gen/_models/engineOutboundResource.ts +2 -1
  124. package/src/gen/_models/engineOutboundResourceServicePatchOutboundResourceBody.ts +2 -1
  125. package/src/gen/_models/engineOutboundResourceServiceUpdateOutboundResourceBody.ts +2 -1
  126. package/src/gen/_models/engineQuestion.ts +2 -1
  127. package/src/gen/_models/engineQueue.ts +3 -2
  128. package/src/gen/_models/engineQueueReportGeneral.ts +2 -1
  129. package/src/gen/_models/engineQueueServicePatchQueueBody.ts +3 -2
  130. package/src/gen/_models/engineQueueServiceUpdateQueueBody.ts +3 -2
  131. package/src/gen/_models/engineRoutingSchema.ts +3 -2
  132. package/src/gen/_models/engineRoutingSchemaServicePatchRoutingSchemaBody.ts +2 -1
  133. package/src/gen/_models/engineRoutingSchemaServiceUpdateRoutingSchemaBody.ts +2 -1
  134. package/src/gen/_models/engineTeamHook.ts +2 -1
  135. package/src/gen/_models/engineTeamHookServiceCreateTeamHookBody.ts +2 -1
  136. package/src/gen/_models/engineTeamHookServicePatchTeamHookBody.ts +2 -1
  137. package/src/gen/_models/engineTeamHookServiceUpdateTeamHookBody.ts +2 -1
  138. package/src/gen/_models/engineTrigger.ts +2 -1
  139. package/src/gen/_models/engineTriggerJob.ts +2 -1
  140. package/src/gen/_models/engineTriggerServicePatchTriggerBody.ts +2 -1
  141. package/src/gen/_models/engineTriggerServiceUpdateTriggerBody.ts +2 -1
  142. package/src/gen/_models/index.ts +26 -26
  143. package/src/gen/_models/pauseTemplateServiceUpdatePauseTemplateBodyItem.ts +2 -1
  144. package/src/gen/_models/storageCreateImportTemplateRequest.ts +2 -1
  145. package/src/gen/_models/storageFile.ts +3 -2
  146. package/src/gen/_models/storageFilePolicy.ts +2 -1
  147. package/src/gen/_models/storageImportTemplate.ts +3 -2
  148. package/src/gen/_models/storageSafeUploadFileResponseMetadata.ts +2 -1
  149. package/src/gen/_models/storageUpdateCognitiveProfileRequest.ts +3 -2
  150. package/src/gen/_models/storageUpdateImportTemplateRequest.ts +2 -1
  151. package/src/gen/_models/storageUploadFileResponse.ts +2 -1
  152. package/src/gen/_models/storageUploadFileUrlResponse.ts +2 -1
  153. package/src/gen/_models/updateCase2Params.ts +8 -0
  154. package/src/gen/_models/updateCaseParams.ts +8 -0
  155. package/src/gen/_models/updateRelatedCase2Body.ts +2 -1
  156. package/src/gen/_models/updateRelatedCaseBody.ts +2 -1
  157. package/src/gen/_models/updateRelatedCaseInputBody.ts +2 -1
  158. package/src/gen/_models/usersUpdateUser2Body.ts +2 -1
  159. package/src/gen/_models/usersUpdateUserBody.ts +2 -1
  160. package/src/gen/_models/usersUpdateUserUserBody.ts +2 -1
  161. package/src/gen/_models/webitelCasesCallEvent.ts +2 -1
  162. package/src/gen/_models/webitelCasesCase.ts +2 -1
  163. package/src/gen/_models/webitelCasesChatEvent.ts +2 -1
  164. package/src/gen/_models/webitelCasesEmailEvent.ts +2 -1
  165. package/src/gen/_models/webitelCasesInputCreateService.ts +2 -1
  166. package/src/gen/_models/webitelCasesInputService.ts +2 -1
  167. package/src/gen/_models/webitelCasesInputSource.ts +0 -1
  168. package/src/gen/_models/webitelCasesService.ts +2 -1
  169. package/src/gen/_models/webitelCasesSource.ts +5 -6
  170. package/src/gen/_models/webitelChatAgentChat.ts +2 -1
  171. package/src/gen/_models/webitelChatBroadcastMessageRequest.ts +2 -1
  172. package/src/gen/_models/webitelChatChatMessage.ts +3 -2
  173. package/src/gen/_models/webitelChatContactChat.ts +2 -1
  174. package/src/gen/_models/webitelChatDialog.ts +2 -1
  175. package/src/gen/_models/webitelChatGetContactChatHistoryResponse.ts +3 -2
  176. package/src/gen/_models/webitelContactsComment.ts +2 -1
  177. package/src/gen/_models/webitelProtoDataStruct.ts +2 -1
  178. package/src/gen/_models/wfmAbsence.ts +2 -1
  179. package/src/gen/_models/wfmAgentScheduleShift.ts +3 -2
  180. package/src/gen/_models/wfmAgentWorkingSchedule.ts +2 -1
  181. package/src/gen/_models/wfmPauseTemplate.ts +2 -1
  182. package/src/gen/_models/wfmSearchAgentsWorkingScheduleResponse.ts +2 -1
  183. package/src/gen/access-store/access-store.msw.api.gen.ts +1 -1
  184. package/src/gen/access-store/access-store.zod.gen.ts +2 -2
  185. package/src/gen/agent-absence-service/agent-absence-service.msw.api.gen.ts +2 -3
  186. package/src/gen/agent-chat-service/agent-chat-service.msw.api.gen.ts +2 -3
  187. package/src/gen/agent-pause-cause-service/agent-pause-cause-service.msw.api.gen.ts +1 -1
  188. package/src/gen/agent-service/agent-service.msw.api.gen.ts +1 -1
  189. package/src/gen/agent-skill-service/agent-skill-service.msw.api.gen.ts +1 -1
  190. package/src/gen/agent-team-service/agent-team-service.msw.api.gen.ts +1 -1
  191. package/src/gen/agent-working-conditions-service/agent-working-conditions-service.msw.api.gen.ts +1 -1
  192. package/src/gen/agent-working-schedule-service/agent-working-schedule-service.msw.api.gen.ts +2 -3
  193. package/src/gen/articles/articles.api.gen.ts +1 -1
  194. package/src/gen/articles/articles.msw.api.gen.ts +1 -1
  195. package/src/gen/audit-form-service/audit-form-service.msw.api.gen.ts +2 -3
  196. package/src/gen/auth/auth.msw.api.gen.ts +1 -1
  197. package/src/gen/auth/auth.zod.gen.ts +1 -1
  198. package/src/gen/backend-profile-service/backend-profile-service.msw.api.gen.ts +1 -1
  199. package/src/gen/bucket-service/bucket-service.msw.api.gen.ts +1 -1
  200. package/src/gen/calendar-service/calendar-service.msw.api.gen.ts +1 -1
  201. package/src/gen/call-service/call-service.msw.api.gen.ts +5 -6
  202. package/src/gen/call-service/call-service.zod.gen.ts +1 -1
  203. package/src/gen/case-comments/case-comments.msw.api.gen.ts +1 -1
  204. package/src/gen/case-communications/case-communications.msw.api.gen.ts +1 -1
  205. package/src/gen/case-files/case-files.msw.api.gen.ts +1 -1
  206. package/src/gen/case-links/case-links.msw.api.gen.ts +1 -1
  207. package/src/gen/case-timeline/case-timeline.msw.api.gen.ts +2 -3
  208. package/src/gen/cases/cases.msw.api.gen.ts +2 -3
  209. package/src/gen/cases/cases.zod.gen.ts +18 -0
  210. package/src/gen/cases-chat-catalog/cases-chat-catalog.msw.api.gen.ts +2 -3
  211. package/src/gen/cases-chat-catalog/cases-chat-catalog.zod.gen.ts +1 -1
  212. package/src/gen/catalog/catalog.msw.api.gen.ts +2 -3
  213. package/src/gen/catalog/catalog.zod.gen.ts +3 -3
  214. package/src/gen/catalogs/catalogs.msw.api.gen.ts +1 -1
  215. package/src/gen/catalogs/catalogs.zod.gen.ts +4 -4
  216. package/src/gen/classes/classes.msw.api.gen.ts +1 -1
  217. package/src/gen/classes/classes.zod.gen.ts +1 -1
  218. package/src/gen/close-reason-groups/close-reason-groups.msw.api.gen.ts +1 -1
  219. package/src/gen/close-reasons/close-reasons.msw.api.gen.ts +1 -1
  220. package/src/gen/cognitive-profile-service/cognitive-profile-service.msw.api.gen.ts +2 -3
  221. package/src/gen/communication-type-service/communication-type-service.msw.api.gen.ts +2 -3
  222. package/src/gen/config-service/config-service.msw.api.gen.ts +1 -1
  223. package/src/gen/contact-groups/contact-groups.msw.api.gen.ts +1 -1
  224. package/src/gen/contact-linking-service/contact-linking-service.msw.api.gen.ts +1 -1
  225. package/src/gen/contacts/contacts.msw.api.gen.ts +1 -1
  226. package/src/gen/contacts/contacts.zod.gen.ts +2 -2
  227. package/src/gen/contacts-chat-catalog/contacts-chat-catalog.msw.api.gen.ts +2 -3
  228. package/src/gen/contacts-chat-catalog/contacts-chat-catalog.zod.gen.ts +2 -2
  229. package/src/gen/customers/customers.msw.api.gen.ts +1 -1
  230. package/src/gen/customers/customers.zod.gen.ts +4 -4
  231. package/src/gen/devices/devices.msw.api.gen.ts +1 -1
  232. package/src/gen/devices/devices.zod.gen.ts +1 -1
  233. package/src/gen/dictionaries/dictionaries.msw.api.gen.ts +2 -3
  234. package/src/gen/dictionaries/dictionaries.zod.gen.ts +16 -16
  235. package/src/gen/domains/domains.msw.api.gen.ts +1 -1
  236. package/src/gen/dynamic-conditions/dynamic-conditions.msw.api.gen.ts +1 -1
  237. package/src/gen/dynamic-groups/dynamic-groups.msw.api.gen.ts +1 -1
  238. package/src/gen/email-profile-service/email-profile-service.msw.api.gen.ts +2 -3
  239. package/src/gen/emails/emails.msw.api.gen.ts +1 -1
  240. package/src/gen/extensions/extensions.msw.api.gen.ts +2 -3
  241. package/src/gen/extensions/extensions.zod.gen.ts +10 -10
  242. package/src/gen/file-policies-service/file-policies-service.msw.api.gen.ts +2 -3
  243. package/src/gen/file-service/file-service.msw.api.gen.ts +2 -3
  244. package/src/gen/file-transcript-service/file-transcript-service.msw.api.gen.ts +1 -1
  245. package/src/gen/forecast-calculation-service/forecast-calculation-service.msw.api.gen.ts +1 -1
  246. package/src/gen/ftsservice/ftsservice.msw.api.gen.ts +1 -1
  247. package/src/gen/groups/groups.msw.api.gen.ts +2 -3
  248. package/src/gen/imclients/imclients.msw.api.gen.ts +1 -1
  249. package/src/gen/import-template-service/import-template-service.msw.api.gen.ts +2 -3
  250. package/src/gen/index.ts +249 -249
  251. package/src/gen/knowledgebase-search/knowledgebase-search.msw.api.gen.ts +1 -1
  252. package/src/gen/labels/labels.msw.api.gen.ts +1 -1
  253. package/src/gen/ldap/ldap.api.gen.ts +4 -4
  254. package/src/gen/ldap/ldap.msw.api.gen.ts +3 -3
  255. package/src/gen/ldap/ldap.zod.gen.ts +6 -6
  256. package/src/gen/list-service/list-service.msw.api.gen.ts +1 -1
  257. package/src/gen/logger-service/logger-service.msw.api.gen.ts +1 -1
  258. package/src/gen/managers/managers.msw.api.gen.ts +1 -1
  259. package/src/gen/media-file-service/media-file-service.msw.api.gen.ts +1 -1
  260. package/src/gen/member-service/member-service.msw.api.gen.ts +1 -1
  261. package/src/gen/member-service/member-service.zod.gen.ts +1 -1
  262. package/src/gen/messages-service/messages-service.msw.api.gen.ts +1 -1
  263. package/src/gen/oauth2-federation/oauth2-federation.msw.api.gen.ts +1 -1
  264. package/src/gen/oauth2-federation/oauth2-federation.zod.gen.ts +2 -2
  265. package/src/gen/outbound-resource-group-service/outbound-resource-group-service.msw.api.gen.ts +1 -1
  266. package/src/gen/outbound-resource-service/outbound-resource-service.msw.api.gen.ts +1 -1
  267. package/src/gen/pause-template-service/pause-template-service.msw.api.gen.ts +1 -1
  268. package/src/gen/permissions/permissions.msw.api.gen.ts +1 -1
  269. package/src/gen/permissions/permissions.zod.gen.ts +1 -1
  270. package/src/gen/phones/phones.msw.api.gen.ts +1 -1
  271. package/src/gen/presence/presence.msw.api.gen.ts +1 -1
  272. package/src/gen/preset-query-service/preset-query-service.msw.api.gen.ts +1 -1
  273. package/src/gen/priorities/priorities.msw.api.gen.ts +1 -1
  274. package/src/gen/queue-bucket-service/queue-bucket-service.msw.api.gen.ts +1 -1
  275. package/src/gen/queue-hook-service/queue-hook-service.msw.api.gen.ts +1 -1
  276. package/src/gen/queue-resources-service/queue-resources-service.msw.api.gen.ts +1 -1
  277. package/src/gen/queue-service/queue-service.msw.api.gen.ts +1 -1
  278. package/src/gen/queue-skill-service/queue-skill-service.msw.api.gen.ts +1 -1
  279. package/src/gen/quick-replies-service/quick-replies-service.msw.api.gen.ts +1 -1
  280. package/src/gen/region-service/region-service.msw.api.gen.ts +1 -1
  281. package/src/gen/related-cases/related-cases.msw.api.gen.ts +2 -3
  282. package/src/gen/routing-chat-plan-service/routing-chat-plan-service.msw.api.gen.ts +1 -1
  283. package/src/gen/routing-outbound-call-service/routing-outbound-call-service.msw.api.gen.ts +1 -1
  284. package/src/gen/routing-schema-service/routing-schema-service.msw.api.gen.ts +2 -3
  285. package/src/gen/routing-variable-service/routing-variable-service.msw.api.gen.ts +1 -1
  286. package/src/gen/schema-variables-service/schema-variables-service.msw.api.gen.ts +1 -1
  287. package/src/gen/schema-version-service/schema-version-service.msw.api.gen.ts +1 -1
  288. package/src/gen/services/services.msw.api.gen.ts +1 -1
  289. package/src/gen/shift-template-service/shift-template-service.msw.api.gen.ts +1 -1
  290. package/src/gen/skill-service/skill-service.msw.api.gen.ts +1 -1
  291. package/src/gen/slaconditions/slaconditions.msw.api.gen.ts +1 -1
  292. package/src/gen/slas/slas.msw.api.gen.ts +1 -1
  293. package/src/gen/sources/sources.msw.api.gen.ts +8 -9
  294. package/src/gen/sources/sources.zod.gen.ts +0 -27
  295. package/src/gen/spaces/spaces.msw.api.gen.ts +1 -1
  296. package/src/gen/spaces/spaces.zod.gen.ts +1 -1
  297. package/src/gen/status-conditions/status-conditions.msw.api.gen.ts +1 -1
  298. package/src/gen/statuses/statuses.msw.api.gen.ts +1 -1
  299. package/src/gen/system-setting-service/system-setting-service.msw.api.gen.ts +2 -3
  300. package/src/gen/tags/tags.msw.api.gen.ts +1 -1
  301. package/src/gen/team-hook-service/team-hook-service.msw.api.gen.ts +2 -3
  302. package/src/gen/team-trigger-service/team-trigger-service.msw.api.gen.ts +1 -1
  303. package/src/gen/timeline/timeline.msw.api.gen.ts +2 -3
  304. package/src/gen/timezones/timezones.msw.api.gen.ts +1 -1
  305. package/src/gen/trigger-service/trigger-service.msw.api.gen.ts +7 -8
  306. package/src/gen/two-factor-authentication/two-factor-authentication.msw.api.gen.ts +1 -1
  307. package/src/gen/types/types.msw.api.gen.ts +2 -3
  308. package/src/gen/types/types.zod.gen.ts +4 -4
  309. package/src/gen/user-access-tokens/user-access-tokens.msw.api.gen.ts +1 -1
  310. package/src/gen/user-helper-service/user-helper-service.msw.api.gen.ts +1 -1
  311. package/src/gen/users/users.msw.api.gen.ts +1 -1
  312. package/src/gen/users/users.zod.gen.ts +12 -12
  313. package/src/gen/variables/variables.msw.api.gen.ts +1 -1
  314. package/src/gen/web-hook-service/web-hook-service.msw.api.gen.ts +1 -1
  315. package/src/gen/working-condition-service/working-condition-service.msw.api.gen.ts +1 -1
  316. package/src/gen/working-schedule-service/working-schedule-service.msw.api.gen.ts +2 -3
  317. package/src/utils/gen/index.ts +35 -33
  318. package/src/utils/index.ts +11 -6
  319. package/src/validations/caseSource/caseSource.validations.ts +3 -5
  320. package/types/api/axios/generateInstance.d.ts +9 -0
  321. package/types/api/axios/index.d.ts +1 -0
  322. package/types/api/clients/_shared/generatePermissionsApi.d.ts +13 -0
  323. package/types/api/clients/agents/agentChats.d.ts +7 -0
  324. package/types/api/clients/agents/agents.d.ts +43 -0
  325. package/types/api/clients/buckets/buckets.d.ts +23 -0
  326. package/types/api/clients/calendars/calendars.d.ts +27 -0
  327. package/types/api/clients/caseCloseReasonGroups/caseCloseReasonGroups.d.ts +23 -0
  328. package/types/api/clients/caseCloseReasons/caseCloseReasons.d.ts +29 -0
  329. package/types/api/clients/casePriorities/casePriorities.d.ts +23 -0
  330. package/types/api/clients/caseServiceCatalogs/serviceCatalogs.d.ts +23 -0
  331. package/types/api/clients/caseServices/services.d.ts +34 -0
  332. package/types/api/clients/caseSources/caseSources.d.ts +23 -0
  333. package/types/api/clients/caseStatusConditions/caseStatusConditions.d.ts +35 -0
  334. package/types/api/clients/caseStatuses/caseStatuses.d.ts +23 -0
  335. package/types/api/clients/catalog/catalog.d.ts +8 -0
  336. package/types/api/clients/chatGateways/chatGateways.d.ts +30 -0
  337. package/types/api/clients/chatGateways/defaults/defaultChatGateway.d.ts +18 -0
  338. package/types/api/clients/chatGateways/defaults/webChatGateway.d.ts +68 -0
  339. package/types/api/clients/chatGateways/enums/WebchatAlternativeChannel.enum.d.ts +12 -0
  340. package/types/api/clients/chatGateways/scripts/generateUri.d.ts +5 -0
  341. package/types/api/clients/communications/communications.d.ts +27 -0
  342. package/types/api/clients/configurations/configurations.d.ts +27 -0
  343. package/types/api/clients/contactGroups/contactGroups.d.ts +46 -0
  344. package/types/api/clients/flows/flow.d.ts +27 -0
  345. package/types/api/clients/gateways/defaults/defaultGateway.d.ts +8 -0
  346. package/types/api/clients/gateways/defaults/registerGateway.d.ts +13 -0
  347. package/types/api/clients/gateways/defaults/trunkingGateway.d.ts +11 -0
  348. package/types/api/clients/gateways/gateways.d.ts +27 -0
  349. package/types/api/clients/index.d.ts +33 -0
  350. package/types/api/clients/labels/labels.d.ts +10 -0
  351. package/types/api/clients/lists/blacklists.d.ts +23 -0
  352. package/types/api/clients/media/media.d.ts +18 -0
  353. package/types/api/clients/object/object.d.ts +10 -0
  354. package/types/api/clients/queues/defaults/processing.d.ts +7 -0
  355. package/types/api/clients/queues/queues.d.ts +31 -0
  356. package/types/api/clients/quickReplies/quickReplies.d.ts +23 -0
  357. package/types/api/clients/roles/roles.d.ts +31 -0
  358. package/types/api/clients/skills/skills.d.ts +23 -0
  359. package/types/api/clients/slaConditions/slaConditions.d.ts +29 -0
  360. package/types/api/clients/slas/slas.d.ts +23 -0
  361. package/types/api/clients/teams/teams.d.ts +23 -0
  362. package/types/api/clients/users/users.d.ts +45 -0
  363. package/types/api/clients/wtTypes/_shared/utils/sortDynamicFields.d.ts +2 -0
  364. package/types/api/clients/wtTypes/sysTypes/sysTypes.d.ts +15 -0
  365. package/types/api/clients/wtTypes/typeExtensions/typeExtensions.d.ts +16 -0
  366. package/types/api/clients//321/201ontacts/contactChatMessagesHistory.d.ts +13 -0
  367. package/types/api/clients//321/201ontacts/contacts.d.ts +22 -0
  368. package/types/api/clients//321/201ontacts/enums/ContactsSearchMode.d.ts +8 -0
  369. package/types/api/clients//321/201ontacts/index.d.ts +4 -0
  370. package/types/api/defaults/getDefaultGetListResponse/getDefaultGetListResponse.d.ts +8 -0
  371. package/types/api/defaults/getDefaultGetParams/getDefaultGetParams.d.ts +14 -0
  372. package/types/api/defaults/getDefaultInstance/getDefaultInstance.d.ts +5 -0
  373. package/types/api/defaults/getDefaultOpenAPIConfig/getDefaultOpenAPIConfig.d.ts +6 -0
  374. package/types/api/defaults/index.d.ts +5 -0
  375. package/types/api/index.d.ts +5 -0
  376. package/types/api/interceptors/index.d.ts +2 -0
  377. package/types/api/interceptors/request/index.d.ts +1 -0
  378. package/types/api/interceptors/request/updateToken.interceptor.d.ts +4 -0
  379. package/types/api/interceptors/response/handleUnauthorized.interceptor.d.ts +5 -0
  380. package/types/api/interceptors/response/index.d.ts +1 -0
  381. package/types/api/transformers/addQueryParamsToUrl/addQueryParamsToUrl.transformer.d.ts +2 -0
  382. package/types/api/transformers/applyTransform.d.ts +13 -0
  383. package/types/api/transformers/camelToSnake/camelToSnake.transformer.d.ts +2 -0
  384. package/types/api/transformers/generateUrl/generateUrl.transformer.d.ts +2 -0
  385. package/types/api/transformers/index.d.ts +13 -0
  386. package/types/api/transformers/log/log.transformer.d.ts +2 -0
  387. package/types/api/transformers/merge/merge.transformer.d.ts +2 -0
  388. package/types/api/transformers/mergeEach/mergeEach.transformer.d.ts +2 -0
  389. package/types/api/transformers/notify/notify.transformer.d.ts +2 -0
  390. package/types/api/transformers/sanitize/sanitize.transformer.d.ts +2 -0
  391. package/types/api/transformers/skipIf/skipIf.d.ts +1 -0
  392. package/types/api/transformers/snakeToCamel/snakeToCamel.transformer.d.ts +2 -0
  393. package/types/api/transformers/starToSearch/starToSearch.transformer.d.ts +2 -0
  394. package/types/gen/_models/engineTriggerObjectType.d.ts +0 -1
  395. package/types/gen/_models/fileServiceSearchFilesChannelItem.d.ts +0 -2
  396. package/types/gen/_models/googleRpcStatus.d.ts +12 -0
  397. package/types/gen/_models/storageUploadFileChannel.d.ts +0 -2
  398. package/types/gen/_models/webitelCasesStatus.d.ts +16 -0
  399. package/types/gen/file-policies-service/file-policies-service.zod.gen.d.ts +0 -18
  400. package/types/gen/file-service/file-service.api.gen.d.ts +1 -3
  401. package/types/gen/file-service/file-service.msw.api.gen.d.ts +1 -3
  402. package/types/gen/file-service/file-service.zod.gen.d.ts +0 -18
  403. package/types/gen/trigger-service/trigger-service.zod.gen.d.ts +0 -9
  404. package/src/defaults/index.ts +0 -2
  405. package/src/gen/_docs/.nojekyll +0 -1
  406. package/src/gen/_docs/html/variables/sources_sources.zod.gen.createSourceBodyNameRegExp.html +0 -1
  407. package/src/gen/_docs/html/variables/sources_sources.zod.gen.createSourceResponseNameRegExp.html +0 -1
  408. package/src/gen/_docs/html/variables/sources_sources.zod.gen.deleteSourceResponseNameRegExp.html +0 -1
  409. package/src/gen/_docs/html/variables/sources_sources.zod.gen.listSourcesResponseItemsItemNameRegExp.html +0 -1
  410. package/src/gen/_docs/html/variables/sources_sources.zod.gen.locateSourceResponseSourceNameRegExp.html +0 -1
  411. package/src/gen/_docs/html/variables/sources_sources.zod.gen.updateSource2BodyNameRegExp.html +0 -1
  412. package/src/gen/_docs/html/variables/sources_sources.zod.gen.updateSource2ResponseNameRegExp.html +0 -1
  413. package/src/gen/_docs/html/variables/sources_sources.zod.gen.updateSourceBodyNameRegExp.html +0 -1
  414. package/src/gen/_docs/html/variables/sources_sources.zod.gen.updateSourceResponseNameRegExp.html +0 -1
  415. package/types/gen/_models/casesCaseCustom.d.ts +0 -12
  416. package/types/gen/_models/casesInputCaseCustom.d.ts +0 -12
  417. package/types/gen/_models/casesInputCreateCaseCustom.d.ts +0 -12
  418. package/types/gen/_models/protobufNullValue.d.ts +0 -18
@@ -0,0 +1,337 @@
1
+ import deepCopy from 'deep-copy';
2
+ import { ContactsApiFactory } from 'webitel-sdk';
3
+
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
+ } from '../../transformers/index';
17
+ import ContactsSearchMode from './enums/ContactsSearchMode';
18
+
19
+ const instance = getDefaultInstance();
20
+ const configuration = getDefaultOpenAPIConfig();
21
+
22
+ const contactService = ContactsApiFactory(configuration, '', instance);
23
+
24
+ const formatAccessMode = (item) => ({
25
+ ...item,
26
+ access: {
27
+ edit: item.mode.includes('w'),
28
+ delete: item.mode.includes('d'),
29
+ },
30
+ });
31
+
32
+ const getList = async (params) => {
33
+ const fieldsToSend = [
34
+ 'page',
35
+ 'size',
36
+ 'q',
37
+ 'sort',
38
+ 'fields',
39
+ 'id',
40
+ 'qin',
41
+ 'notIdGroup',
42
+ 'group',
43
+ 'owner',
44
+ 'label',
45
+ 'user',
46
+ ];
47
+
48
+ if (!params.fields) {
49
+ params.fields = [
50
+ 'id',
51
+ 'etag',
52
+ 'name',
53
+ 'managers',
54
+ 'labels',
55
+ 'about',
56
+ 'variables',
57
+ 'timezones',
58
+ 'phones',
59
+ 'emails',
60
+ 'imclients',
61
+ ];
62
+ }
63
+
64
+ const listResponseHandler = (items) =>
65
+ items?.map((item) => ({
66
+ ...item,
67
+ name: item.name.commonName,
68
+ managers: item.managers ? [...item.managers.data] : [],
69
+ labels: item.labels ? [...item.labels.data] : [],
70
+ groups: getGroupsFromResponse(item),
71
+ variables: item.variables ? [...item.variables.data] : [],
72
+ timezones: item.timezones ? [...item.timezones.data] : [],
73
+ phones: item.phones ? [...item.phones.data] : [],
74
+ emails: item.emails ? [...item.emails.data] : [],
75
+ }));
76
+
77
+ let changedParams;
78
+
79
+ if (params?.search) {
80
+ changedParams = { ...params, q: params.search };
81
+ } else if (params?.q && params?.qin) {
82
+ changedParams = { ...params };
83
+ } else {
84
+ let searchValue = '';
85
+ let searchKey = '';
86
+
87
+ if (params[ContactsSearchMode.NAME]) {
88
+ searchValue = params[ContactsSearchMode.NAME];
89
+ searchKey = ContactsSearchMode.NAME;
90
+ } else if (params[ContactsSearchMode.LABELS]) {
91
+ searchValue = params[ContactsSearchMode.LABELS];
92
+ searchKey = ContactsSearchMode.LABELS;
93
+ } else if (params[ContactsSearchMode.ABOUT]) {
94
+ searchValue = params[ContactsSearchMode.ABOUT];
95
+ searchKey = ContactsSearchMode.ABOUT;
96
+ } else if (params[ContactsSearchMode.VARIABLES]) {
97
+ searchValue = params[ContactsSearchMode.VARIABLES];
98
+ searchKey = ContactsSearchMode.VARIABLES;
99
+ } else if (params[ContactsSearchMode.DESTINATION]) {
100
+ searchValue = params[ContactsSearchMode.DESTINATION];
101
+ searchKey = 'emails,phones,imclients{user{name}}';
102
+ }
103
+
104
+ // This code needed for adding starToSearch method to applyTransform while searchKey !== SearchMode.VARIABLES because '*' in variables search mode brokes backend logic.
105
+ // if (searchKey !== ContactsSearchMode.VARIABLES) {
106
+ // transformations.push(starToSearch('q')); WTEL-4265
107
+ // }
108
+
109
+ changedParams = {
110
+ ...params,
111
+ q: searchValue || '',
112
+ qin: searchKey || '',
113
+ };
114
+
115
+ if (params.hasUser != null) {
116
+ changedParams.user = params.hasUser;
117
+ }
118
+
119
+ if (params.contactGroup) {
120
+ changedParams.group = [...params.contactGroup.list];
121
+ }
122
+ if (params.contactLabel) {
123
+ changedParams.label = params.contactLabel.map((item) => item.label);
124
+ }
125
+ if (params.contactOwner) {
126
+ changedParams.owner = params.contactOwner;
127
+ }
128
+ }
129
+
130
+ if (params.parentId) {
131
+ changedParams.group = [params.parentId];
132
+ }
133
+
134
+ const transformations = [
135
+ sanitize(fieldsToSend),
136
+ merge(getDefaultGetParams()),
137
+ camelToSnake(),
138
+ ];
139
+
140
+ const {
141
+ page,
142
+ size,
143
+ q,
144
+ sort,
145
+ fields,
146
+ id,
147
+ qin,
148
+ mode,
149
+ group_id,
150
+ group,
151
+ not_id_group,
152
+ owner,
153
+ label,
154
+ user,
155
+ } = applyTransform(changedParams, transformations);
156
+
157
+ try {
158
+ const response = await contactService.searchContacts(
159
+ page,
160
+ size,
161
+ q,
162
+ sort || '+name',
163
+ ['mode', ...fields],
164
+ id,
165
+ qin,
166
+ mode,
167
+ not_id_group,
168
+ group,
169
+ owner,
170
+ label,
171
+ user,
172
+ );
173
+
174
+ const { items, next } = applyTransform(
175
+ { ...response.data, items: response.data.data || [] },
176
+ [snakeToCamel(['custom']), merge(getDefaultGetListResponse())],
177
+ );
178
+
179
+ return {
180
+ items: applyTransform(items, [
181
+ (items) => items?.map((item) => formatAccessMode(item)),
182
+ listResponseHandler,
183
+ ]),
184
+ next,
185
+ };
186
+ } catch (err) {
187
+ throw applyTransform(err, [notify]);
188
+ }
189
+ };
190
+
191
+ const get = async ({ itemId: id }) => {
192
+ const fields = [
193
+ 'name',
194
+ 'about',
195
+ 'labels',
196
+ 'groups',
197
+ 'etag',
198
+ 'mode',
199
+ 'managers',
200
+ 'timezones',
201
+ 'variables',
202
+ 'phones',
203
+ 'emails',
204
+ 'imclients',
205
+ 'user',
206
+ 'custom',
207
+ ];
208
+
209
+ const defaultObject = {};
210
+ const itemResponseHandler = (item) => {
211
+ return {
212
+ ...item,
213
+ name: item.name.commonName,
214
+ labels: item.labels ? [...item.labels.data] : [],
215
+ groups: getGroupsFromResponse(item),
216
+ managers: item.managers ? [...item.managers.data] : [],
217
+ timezones: item.timezones ? [...item.timezones.data] : [],
218
+ variables: item.variables ? [...item.variables.data] : [],
219
+ phones: item.phones ? [...item.phones.data] : [],
220
+ emails: item.emails ? [...item.emails.data] : [],
221
+ };
222
+ };
223
+ try {
224
+ const response = await contactService.locateContact(id, fields);
225
+ return applyTransform(response.data, [
226
+ snakeToCamel(['custom']),
227
+ merge(defaultObject),
228
+ itemResponseHandler,
229
+ formatAccessMode,
230
+ ]);
231
+ } catch (err) {
232
+ throw applyTransform(err, [notify]);
233
+ }
234
+ };
235
+
236
+ const fieldsToSend = [
237
+ 'name',
238
+ 'labels',
239
+ 'about',
240
+ 'managers',
241
+ 'timezones',
242
+ 'groups',
243
+ 'custom',
244
+ ];
245
+
246
+ const sanitizeManagers = (itemInstance) => {
247
+ // handle many managers and even no managers field cases
248
+ const managers = (itemInstance.managers || []).filter(
249
+ ({ user } = {}) => user.id,
250
+ );
251
+ return { ...itemInstance, managers };
252
+ };
253
+
254
+ const sanitizeTimezones = (itemInstance) => {
255
+ // handle many timezones and even no timezones field cases
256
+ const timezones = (itemInstance.timezones || []).filter(
257
+ ({ timezone } = {}) => timezone.id,
258
+ );
259
+ return { ...itemInstance, timezones };
260
+ };
261
+
262
+ const sanitizeGroups = (itemInstance) => {
263
+ // handle many groups and even no groups field cases
264
+ const groups = (itemInstance.groups || []).map((item) => ({ group: item }));
265
+ return { ...itemInstance, groups };
266
+ };
267
+
268
+ const preRequestHandler = (item) => {
269
+ const copy = deepCopy(item);
270
+ copy.name = {
271
+ commonName: copy.name,
272
+ };
273
+ return copy;
274
+ };
275
+
276
+ const getGroupsFromResponse = (item) => {
277
+ return item.groups ? [...item.groups.data.map((el) => el.group)] : [];
278
+ };
279
+
280
+ const add = async ({ itemInstance }) => {
281
+ const item = applyTransform(itemInstance, [
282
+ preRequestHandler,
283
+ sanitizeManagers,
284
+ sanitizeTimezones,
285
+ sanitizeGroups,
286
+ sanitize(fieldsToSend),
287
+ camelToSnake(['custom']),
288
+ ]);
289
+ try {
290
+ const response = await contactService.createContact(item);
291
+ return applyTransform(response.data, [snakeToCamel(['custom'])]);
292
+ } catch (err) {
293
+ throw applyTransform(err, [notify]);
294
+ }
295
+ };
296
+
297
+ const update = async ({ itemInstance }) => {
298
+ const { etag } = itemInstance;
299
+ const item = applyTransform(itemInstance, [
300
+ preRequestHandler,
301
+ sanitizeManagers,
302
+ sanitizeTimezones,
303
+ sanitizeGroups,
304
+ sanitize(fieldsToSend),
305
+ camelToSnake(['custom']),
306
+ ]);
307
+ try {
308
+ const response = await contactService.updateContact(etag, item);
309
+ return applyTransform(response.data, [snakeToCamel(['custom'])]);
310
+ } catch (err) {
311
+ throw applyTransform(err, [notify]);
312
+ }
313
+ };
314
+
315
+ const deleteContact = async ({ id }) => {
316
+ try {
317
+ const response = await contactService.deleteContact(id);
318
+ return applyTransform(response.data, []);
319
+ } catch (err) {
320
+ throw applyTransform(err, [notify]);
321
+ }
322
+ };
323
+
324
+ const getContactsLookup = (params) =>
325
+ getList({
326
+ ...params,
327
+ fields: params.fields || ['id', 'name'],
328
+ });
329
+
330
+ export const ContactsAPI = {
331
+ getList,
332
+ get,
333
+ add,
334
+ update,
335
+ delete: deleteContact,
336
+ getLookup: getContactsLookup,
337
+ };
@@ -0,0 +1,9 @@
1
+ const ContactsSearchMode = Object.freeze({
2
+ NAME: 'name',
3
+ LABELS: 'labels',
4
+ ABOUT: 'about',
5
+ VARIABLES: 'variables',
6
+ DESTINATION: 'destination',
7
+ });
8
+
9
+ export default ContactsSearchMode;
@@ -0,0 +1,5 @@
1
+ import contactChatMessagesHistory from './contactChatMessagesHistory';
2
+ import contacts from './contacts';
3
+ import ContactsSearchMode from './enums/ContactsSearchMode';
4
+
5
+ export { contactChatMessagesHistory, contacts, ContactsSearchMode };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Creates a default response object for list operations
3
+ * @returns Default list response object with empty items array and next=false
4
+ */
5
+ export const getDefaultGetListResponse = ({} = {}) => ({
6
+ items: [],
7
+ next: false,
8
+ });
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Creates default parameters for get operations with pagination
3
+ * @param options - Options for the parameters
4
+ * @param options.page - Page number (default: 1)
5
+ * @param options.size - Page size (default: 10)
6
+ * @returns Default parameters object with page and size
7
+ */
8
+ export const getDefaultGetParams = ({ page = 1, size = 10 } = {}) => ({
9
+ page,
10
+ size,
11
+ });
@@ -0,0 +1,21 @@
1
+ import qs from 'qs';
2
+ import { generateInstance } from '../../axios/generateInstance';
3
+ import { updateTokenInterceptor } from '../../interceptors/request/updateToken.interceptor';
4
+ import { handleUnauthorizedInterceptor } from '../../interceptors/response/handleUnauthorized.interceptor';
5
+
6
+ /**
7
+ * Creates a default Axios instance with standard configuration
8
+ * @returns Configured Axios instance
9
+ */
10
+ export const getDefaultInstance = () => {
11
+ return generateInstance({
12
+ interceptors: {
13
+ request: [updateTokenInterceptor],
14
+ response: [handleUnauthorizedInterceptor],
15
+ },
16
+ baseURL: import.meta.env.VITE_API_URL,
17
+ paramsSerializer: (params) => {
18
+ return qs.stringify(params);
19
+ },
20
+ });
21
+ };
@@ -0,0 +1,12 @@
1
+ import { Configuration } from 'webitel-sdk';
2
+
3
+ /**
4
+ * Creates a default configuration for OpenAPI clients
5
+ * @returns Configuration object with basePath, apiKey, and accessToken
6
+ */
7
+ export const getDefaultOpenAPIConfig = () =>
8
+ new Configuration({
9
+ basePath: import.meta.env.VITE_API_URL,
10
+ apiKey: localStorage.getItem('access-key') || '',
11
+ accessToken: localStorage.getItem('access-key') || '',
12
+ });
@@ -0,0 +1,11 @@
1
+ import getDefaultGetListResponse from './getDefaultGetListResponse/getDefaultGetListResponse';
2
+ import getDefaultGetParams from './getDefaultGetParams/getDefaultGetParams';
3
+ import getDefaultInstance from './getDefaultInstance/getDefaultInstance';
4
+ import getDefaultOpenAPIConfig from './getDefaultOpenAPIConfig/getDefaultOpenAPIConfig';
5
+
6
+ export {
7
+ getDefaultGetListResponse,
8
+ getDefaultGetParams,
9
+ getDefaultInstance,
10
+ getDefaultOpenAPIConfig,
11
+ };
@@ -0,0 +1,6 @@
1
+ // Export all nested directories' contents
2
+ export * from './axios';
3
+ export * from './clients';
4
+ export * from './defaults';
5
+ export * from './interceptors';
6
+ export * from './transformers';
@@ -0,0 +1,3 @@
1
+ // Export interceptors
2
+ export * from './request';
3
+ export * from './response';
@@ -0,0 +1,2 @@
1
+ // Export request interceptors
2
+ export { default as updateTokenInterceptor } from './updateToken.interceptor';
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Axios request interceptor that updates the X-Webitel-Access header with the current access token
3
+ */
4
+ export const updateTokenInterceptor = [
5
+ (config) => {
6
+ config.headers['X-Webitel-Access'] =
7
+ localStorage.getItem('access-token') || '';
8
+ return config;
9
+ },
10
+ (error) => Promise.reject(error),
11
+ ];
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Axios response interceptor that handles 401 Unauthorized responses
3
+ * by removing the access token from localStorage
4
+ */
5
+ export const handleUnauthorizedInterceptor = [
6
+ (response) => response,
7
+ (error) => {
8
+ if (error.response && error.response.status === 401) {
9
+ console.warn('intercepted 401');
10
+ localStorage.removeItem('access-token');
11
+ }
12
+ return Promise.reject(error);
13
+ },
14
+ ];
@@ -0,0 +1,2 @@
1
+ // Export response interceptors
2
+ export { default as handleUnauthorizedInterceptor } from './handleUnauthorized.interceptor';
@@ -0,0 +1,19 @@
1
+ // @author @stanislav-kozak
2
+ // This function adds query parameters to a given URL.
3
+ // Where queryArray is an array of query parameters in the format 'key=value'.
4
+ const addQueryParamsToUrl = (queryArray) => (url) => {
5
+ let modifyUrl = url;
6
+
7
+ if (queryArray && queryArray.length > 0) {
8
+ if (modifyUrl.includes('?')) {
9
+ modifyUrl += `&${queryArray.join('&')}`;
10
+
11
+ return modifyUrl;
12
+ }
13
+
14
+ modifyUrl += `?${queryArray.join('&')}`;
15
+ }
16
+
17
+ return modifyUrl;
18
+ };
19
+ export default addQueryParamsToUrl;
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Applies a series of transformers to a target object
3
+ * @param target - The object to transform
4
+ * @param transformers - Array of transformer functions to apply
5
+ * @param options - Configuration options
6
+ * @param options.debug - Whether to log debug information
7
+ * @param options.withContext - Context to pass to transformers
8
+ * @returns The transformed object
9
+ */
10
+ export const applyTransform = (
11
+ target,
12
+ transformers,
13
+ { debug = false, withContext = null } = {},
14
+ ) => {
15
+ return transformers.reduce((result, transformer, index) => {
16
+ if (debug) console.info(`applyTransform debug on step ${index}`, result);
17
+
18
+ if (withContext) {
19
+ return transformer(result, withContext);
20
+ }
21
+
22
+ return transformer(result);
23
+ }, target);
24
+ };
@@ -0,0 +1,5 @@
1
+ import { objCamelToSnake } from '../../../scripts/caseConverters';
2
+
3
+ const camelToSnakeTransformer = (skipKeys) => (obj) =>
4
+ objCamelToSnake(obj, skipKeys);
5
+ export default camelToSnakeTransformer;
@@ -0,0 +1,13 @@
1
+ import qs from 'query-string';
2
+
3
+ const generateUrlTransformer = (baseUrl) => (params) => {
4
+ const stringifyOptions = {
5
+ skipEmptyString: true,
6
+ skipNull: true,
7
+ };
8
+
9
+ const url = `${baseUrl}?${qs.stringify(params, stringifyOptions)}`;
10
+ return url;
11
+ };
12
+
13
+ export default generateUrlTransformer;
@@ -0,0 +1,27 @@
1
+ import addQueryParamsToUrl from './addQueryParamsToUrl/addQueryParamsToUrl.transformer';
2
+ import { applyTransform } from './applyTransform';
3
+ import camelToSnake from './camelToSnake/camelToSnake.transformer';
4
+ import generateUrl from './generateUrl/generateUrl.transformer';
5
+ import log from './log/log.transformer';
6
+ import merge from './merge/merge.transformer';
7
+ import mergeEach from './mergeEach/mergeEach.transformer';
8
+ import notify from './notify/notify.transformer';
9
+ import sanitize from './sanitize/sanitize.transformer';
10
+ import { skipIf } from './skipIf/skipIf';
11
+ import snakeToCamel from './snakeToCamel/snakeToCamel.transformer';
12
+ import starToSearch from './starToSearch/starToSearch.transformer';
13
+
14
+ export {
15
+ addQueryParamsToUrl,
16
+ applyTransform,
17
+ camelToSnake,
18
+ generateUrl,
19
+ log,
20
+ merge,
21
+ mergeEach,
22
+ notify,
23
+ sanitize,
24
+ skipIf,
25
+ snakeToCamel,
26
+ starToSearch,
27
+ };
@@ -0,0 +1,6 @@
1
+ const logTransformer = (arg) => {
2
+ console.log(arg);
3
+ return arg;
4
+ };
5
+
6
+ export default logTransformer;
@@ -0,0 +1,8 @@
1
+ import merge from 'deepmerge';
2
+
3
+ const mergeTransformer =
4
+ (...args) =>
5
+ (main) =>
6
+ merge.all([...args, main]);
7
+
8
+ export default mergeTransformer;
@@ -0,0 +1,8 @@
1
+ import merge from 'deepmerge';
2
+
3
+ const mergeEachTransformer =
4
+ (...args) =>
5
+ (main) =>
6
+ main.map((item) => merge.all([...args, item]));
7
+
8
+ export default mergeEachTransformer;
@@ -0,0 +1,39 @@
1
+ import eventBus from '../../../scripts/eventBus';
2
+
3
+ const notifyTransformer = (notificationObject) => {
4
+ /*
5
+ if passed arg is function, then this notification - static content,
6
+ predefined before actual transformer is called in applyTransform flow
7
+ */
8
+ if (typeof notificationObject === 'function') {
9
+ /*
10
+ so, create a callback which will send notification with params, passed to it
11
+ */
12
+ const callback = ({ type, text }) =>
13
+ eventBus.$emit('notification', {
14
+ type,
15
+ text,
16
+ });
17
+
18
+ /*
19
+ and, then, return a function, which will be called in main applyTransform flow,
20
+ calling passed arg function with callback, and returning actual notify payload
21
+ */
22
+ return (payload) => {
23
+ notificationObject({ callback });
24
+ return payload;
25
+ };
26
+ }
27
+ if (notificationObject instanceof Error) {
28
+ eventBus.$emit('notification', {
29
+ type: 'error',
30
+ text:
31
+ notificationObject.response?.data?.detail ||
32
+ notificationObject.response?.data?.message ||
33
+ notificationObject,
34
+ });
35
+ }
36
+ return notificationObject;
37
+ };
38
+
39
+ export default notifyTransformer;
@@ -0,0 +1,12 @@
1
+ const sanitizeTransformer = (fieldsToSend) => (item) => {
2
+ return Object.keys(item).reduce((sanitizedItem, key) => {
3
+ if (fieldsToSend.indexOf(key) === -1) return sanitizedItem;
4
+
5
+ return {
6
+ ...sanitizedItem,
7
+ [key]: item[key],
8
+ };
9
+ }, {});
10
+ };
11
+
12
+ export default sanitizeTransformer;
@@ -0,0 +1,11 @@
1
+ export const skipIf =
2
+ (
3
+ transformer: (...payload: unknown[]) => unknown,
4
+ ifFn: boolean | ((...payload: unknown[]) => boolean),
5
+ ) =>
6
+ (payload: unknown) => {
7
+ if (typeof ifFn === 'function' ? ifFn(payload) : ifFn) {
8
+ return payload;
9
+ }
10
+ return transformer(payload);
11
+ };
@@ -0,0 +1,5 @@
1
+ import { objSnakeToCamel } from '../../../scripts/caseConverters';
2
+
3
+ const snakeToCamelTransformer = (skipKeys) => (obj) =>
4
+ objSnakeToCamel(obj, skipKeys);
5
+ export default snakeToCamelTransformer;
@@ -0,0 +1,15 @@
1
+ import deepcopy from 'deep-copy';
2
+ import get from 'lodash/get';
3
+
4
+ import updateObject from '../../../scripts/updateObject';
5
+
6
+ const starToSearchTransformer =
7
+ (path = 'search') =>
8
+ (params) => {
9
+ const copy = deepcopy(params);
10
+ const value = get(copy, path);
11
+ if (!value || value.slice(-1) === '*') return copy;
12
+ return updateObject({ obj: copy, path, value: `${value}*` });
13
+ };
14
+
15
+ export default starToSearchTransformer;