@zohoim/client-sdk 1.0.0-rightPanelContact1 → 1.0.0-rightPanelSessionInfo-2

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 (465) hide show
  1. package/es/application/services/agents/AgentService.js +21 -0
  2. package/es/application/services/agents/index.js +2 -0
  3. package/es/application/services/bots/BotService.js +26 -0
  4. package/es/application/services/bots/index.js +2 -0
  5. package/es/application/services/calls/CallService.js +36 -0
  6. package/es/application/services/calls/index.js +1 -0
  7. package/es/application/services/cannedMessages/CannedMessageService.js +71 -0
  8. package/es/application/services/cannedMessages/index.js +2 -0
  9. package/es/application/services/channels/ChannelAgentService.js +21 -0
  10. package/es/application/services/channels/ChannelService.js +26 -0
  11. package/es/application/services/channels/index.js +3 -0
  12. package/es/application/services/contacts/ContactService.js +26 -0
  13. package/es/application/services/contacts/index.js +2 -0
  14. package/es/application/services/index.js +13 -0
  15. package/es/application/services/integrationServices/IntegrationService.js +21 -0
  16. package/es/application/services/integrationServices/index.js +2 -0
  17. package/es/application/services/messages/MessageService.js +61 -0
  18. package/es/application/services/messages/index.js +2 -0
  19. package/es/application/services/sessions/SessionService.js +61 -0
  20. package/es/application/services/sessions/index.js +2 -0
  21. package/es/application/services/subscription/SubscriptionService.js +36 -0
  22. package/es/application/services/subscription/index.js +2 -0
  23. package/es/application/services/templateMessages/TemplateMessageService.js +31 -0
  24. package/es/application/services/templateMessages/index.js +2 -0
  25. package/es/application/services/userPreferences/UserPreferenceService.js +26 -0
  26. package/es/application/services/userPreferences/index.js +2 -0
  27. package/es/application/services/whatsAppPricing/WhatsAppPricingService.js +21 -0
  28. package/es/application/services/whatsAppPricing/index.js +2 -0
  29. package/es/core/constants/ModuleNames.js +17 -0
  30. package/es/core/constants/ModuleTypes.js +5 -0
  31. package/es/core/constants/ResponseTypes.js +6 -0
  32. package/es/core/constants/index.js +7 -0
  33. package/es/core/errors/AdapterError.js +7 -0
  34. package/es/core/errors/ValidationError.js +7 -0
  35. package/es/core/errors/index.js +3 -0
  36. package/es/core/utils/ResponseUtils.js +24 -0
  37. package/es/core/utils/index.js +3 -0
  38. package/es/core/utils/validateSchema.js +133 -0
  39. package/es/domain/dto/RequestBuilder.js +44 -0
  40. package/es/domain/dto/agents/getAgentsRequest.js +12 -0
  41. package/es/domain/dto/agents/index.js +1 -0
  42. package/es/domain/dto/bots/getBotRequest.js +9 -0
  43. package/es/domain/dto/bots/getBotsRequest.js +15 -0
  44. package/es/domain/dto/bots/index.js +2 -0
  45. package/es/domain/dto/calls/getCallRequest.js +14 -0
  46. package/es/domain/dto/calls/getCallsRequest.js +20 -0
  47. package/es/domain/dto/calls/index.js +4 -0
  48. package/es/domain/dto/calls/initiateCallRequest.js +15 -0
  49. package/es/domain/dto/calls/updateCallStatusRequest.js +15 -0
  50. package/es/domain/dto/cannedMessages/addTranslationRequest.js +19 -0
  51. package/es/domain/dto/cannedMessages/createCannedMessageRequest.js +18 -0
  52. package/es/domain/dto/cannedMessages/deleteCannedMessageRequest.js +13 -0
  53. package/es/domain/dto/cannedMessages/deleteTranslationRequest.js +14 -0
  54. package/es/domain/dto/cannedMessages/disableCannedMessageRequest.js +13 -0
  55. package/es/domain/dto/cannedMessages/enableCannedMessageRequest.js +13 -0
  56. package/es/domain/dto/cannedMessages/getCannedMessageRequest.js +13 -0
  57. package/es/domain/dto/cannedMessages/getCannedMessagesRequest.js +18 -0
  58. package/es/domain/dto/cannedMessages/getCannedPlaceholdersRequest.js +7 -0
  59. package/es/domain/dto/cannedMessages/index.js +11 -0
  60. package/es/domain/dto/cannedMessages/updateCannedMessageRequest.js +20 -0
  61. package/es/domain/dto/cannedMessages/updateTranslationRequest.js +20 -0
  62. package/es/domain/dto/channels/agents/getChannelAgentsRequest.js +13 -0
  63. package/es/domain/dto/channels/agents/index.js +1 -0
  64. package/es/domain/dto/channels/getChannelRequest.js +13 -0
  65. package/es/domain/dto/channels/getChannelsRequest.js +25 -0
  66. package/es/domain/dto/channels/index.js +4 -0
  67. package/es/domain/dto/contacts/getContactRequest.js +13 -0
  68. package/es/domain/dto/contacts/getContactsRequest.js +11 -0
  69. package/es/domain/dto/contacts/index.js +2 -0
  70. package/es/domain/dto/index.js +13 -0
  71. package/es/domain/dto/integrationServices/getIntegrationsRequest.js +7 -0
  72. package/es/domain/dto/integrationServices/index.js +1 -0
  73. package/es/domain/dto/messages/deleteMessageRequest.js +14 -0
  74. package/es/domain/dto/messages/getFullContentRequest.js +14 -0
  75. package/es/domain/dto/messages/getMessageRequest.js +14 -0
  76. package/es/domain/dto/messages/getMessagesRequest.js +20 -0
  77. package/es/domain/dto/messages/index.js +9 -0
  78. package/es/domain/dto/messages/initiateSessionRequest.js +24 -0
  79. package/es/domain/dto/messages/resendMessageRequest.js +14 -0
  80. package/es/domain/dto/messages/searchMessagesRequest.js +22 -0
  81. package/es/domain/dto/messages/sendAttachmentRequest.js +19 -0
  82. package/es/domain/dto/messages/sendMessageRequest.js +19 -0
  83. package/es/domain/dto/sessions/getSessionAttachmentsRequest.js +18 -0
  84. package/es/domain/dto/sessions/getSessionLastMessagesRequest.js +13 -0
  85. package/es/domain/dto/sessions/getSessionMetricsRequest.js +16 -0
  86. package/es/domain/dto/sessions/getSessionRequest.js +13 -0
  87. package/es/domain/dto/sessions/getSessionsRequest.js +27 -0
  88. package/es/domain/dto/sessions/index.js +9 -0
  89. package/es/domain/dto/sessions/markSessionAsReadRequest.js +17 -0
  90. package/es/domain/dto/sessions/pickupSessionRequest.js +9 -0
  91. package/es/domain/dto/sessions/updateSessionAssigneeRequest.js +12 -0
  92. package/es/domain/dto/sessions/updateSessionStatusRequest.js +18 -0
  93. package/es/domain/dto/subscription/buyAddOnRequest.js +18 -0
  94. package/es/domain/dto/subscription/getAddOnsRequest.js +15 -0
  95. package/es/domain/dto/subscription/getLicenseDetailsRequest.js +7 -0
  96. package/es/domain/dto/subscription/index.js +4 -0
  97. package/es/domain/dto/subscription/modifyAddOnRequest.js +18 -0
  98. package/es/domain/dto/templateMessages/getTemplateCreditExhaustStatusRequest.js +14 -0
  99. package/es/domain/dto/templateMessages/getTemplateLanguagesRequest.js +7 -0
  100. package/es/domain/dto/templateMessages/getTemplateTagsRequest.js +7 -0
  101. package/es/domain/dto/templateMessages/index.js +3 -0
  102. package/es/domain/dto/userPreferences/getPreferencesRequest.js +7 -0
  103. package/es/domain/dto/userPreferences/index.js +2 -0
  104. package/es/domain/dto/userPreferences/updatePreferencesRequest.js +9 -0
  105. package/es/domain/dto/whatsAppPricing/calculateWhatsAppPricingRequest.js +14 -0
  106. package/es/domain/dto/whatsAppPricing/index.js +1 -0
  107. package/es/domain/entities/Actor/Actor.js +45 -0
  108. package/es/domain/entities/Actor/index.js +2 -0
  109. package/es/domain/entities/Agent/Agent.js +30 -0
  110. package/es/domain/entities/Agent/index.js +2 -0
  111. package/es/domain/entities/Attachment/Attachment.js +27 -0
  112. package/es/domain/entities/Attachment/index.js +2 -0
  113. package/es/domain/entities/Bot/Bot.js +27 -0
  114. package/es/domain/entities/Bot/index.js +2 -0
  115. package/es/domain/entities/Call/Call.js +47 -0
  116. package/es/domain/entities/Call/index.js +1 -0
  117. package/es/domain/entities/CannedMessage/CannedMessage.js +86 -0
  118. package/es/domain/entities/CannedMessage/Translation.js +48 -0
  119. package/es/domain/entities/CannedMessage/index.js +3 -0
  120. package/es/domain/entities/Channel/Channel.js +60 -0
  121. package/es/domain/entities/Channel/index.js +2 -0
  122. package/es/domain/entities/Contact/Contact.js +29 -0
  123. package/es/domain/entities/Contact/index.js +2 -0
  124. package/es/domain/entities/CustomReplyExtension/CustomReplyExtension.js +26 -0
  125. package/es/domain/entities/CustomReplyExtension/index.js +2 -0
  126. package/es/domain/entities/IntegrationService/IntegrationService.js +44 -0
  127. package/es/domain/entities/IntegrationService/index.js +2 -0
  128. package/es/domain/entities/Message/Action.js +29 -0
  129. package/es/domain/entities/Message/ExternalInfo.js +30 -0
  130. package/es/domain/entities/Message/Info.js +48 -0
  131. package/es/domain/entities/Message/InfoTarget.js +26 -0
  132. package/es/domain/entities/Message/Location.js +22 -0
  133. package/es/domain/entities/Message/Message.js +160 -0
  134. package/es/domain/entities/Message/MessageWithSession.js +25 -0
  135. package/es/domain/entities/Message/index.js +7 -0
  136. package/es/domain/entities/Placeholder/Placeholder.js +24 -0
  137. package/es/domain/entities/Placeholder/index.js +2 -0
  138. package/es/domain/entities/Session/Session.js +84 -0
  139. package/es/domain/entities/Session/SessionMetrics.js +21 -0
  140. package/es/domain/entities/Session/index.js +3 -0
  141. package/es/domain/entities/Subscription/AddOn.js +26 -0
  142. package/es/domain/entities/Subscription/LicenseDetails.js +21 -0
  143. package/es/domain/entities/Subscription/SubscriptionInfo.js +26 -0
  144. package/es/domain/entities/Subscription/index.js +4 -0
  145. package/es/domain/entities/TemplateMessage/TemplateCreditExhaustStatus.js +27 -0
  146. package/es/domain/entities/TemplateMessage/TemplateItemButton.js +48 -0
  147. package/es/domain/entities/TemplateMessage/TemplateItemFooter.js +27 -0
  148. package/es/domain/entities/TemplateMessage/TemplateItemHeader.js +48 -0
  149. package/es/domain/entities/TemplateMessage/TemplateLanguage.js +22 -0
  150. package/es/domain/entities/TemplateMessage/TemplateTags.js +21 -0
  151. package/es/domain/entities/TemplateMessage/index.js +7 -0
  152. package/es/domain/entities/UserPreference/UserPreference.js +26 -0
  153. package/es/domain/entities/UserPreference/index.js +2 -0
  154. package/es/domain/entities/WhatsAppPricing/WhatsAppPricing.js +25 -0
  155. package/es/domain/entities/WhatsAppPricing/WhatsAppPricingCategory.js +22 -0
  156. package/es/domain/entities/WhatsAppPricing/index.js +3 -0
  157. package/es/domain/entities/index.js +17 -0
  158. package/es/domain/enum/actor/ActorType.js +7 -0
  159. package/es/domain/enum/actor/index.js +2 -0
  160. package/es/domain/enum/attachment/AttachmentStatus.js +7 -0
  161. package/es/domain/enum/attachment/index.js +2 -0
  162. package/es/domain/enum/bot/BotServiceType.js +7 -0
  163. package/es/domain/enum/bot/index.js +2 -0
  164. package/es/domain/enum/call/CallStatus.js +8 -0
  165. package/es/domain/enum/call/index.js +1 -0
  166. package/es/domain/enum/cannedMessage/CannedMessageStatus.js +17 -0
  167. package/es/domain/enum/cannedMessage/CannedMessageType.js +7 -0
  168. package/es/domain/enum/cannedMessage/TemplateItemButtonType.js +12 -0
  169. package/es/domain/enum/cannedMessage/TemplateItemFooterType.js +4 -0
  170. package/es/domain/enum/cannedMessage/TemplateItemHeaderType.js +9 -0
  171. package/es/domain/enum/cannedMessage/index.js +6 -0
  172. package/es/domain/enum/index.js +11 -0
  173. package/es/domain/enum/integrationServices/IntegrationServices.js +12 -0
  174. package/es/domain/enum/integrationServices/index.js +2 -0
  175. package/es/domain/enum/message/ActionSubType.js +6 -0
  176. package/es/domain/enum/message/ActionType.js +6 -0
  177. package/es/domain/enum/message/ExternalInfoAction.js +9 -0
  178. package/es/domain/enum/message/InfoAction.js +20 -0
  179. package/es/domain/enum/message/InfoSessionStatus.js +10 -0
  180. package/es/domain/enum/message/InfoTargetType.js +11 -0
  181. package/es/domain/enum/message/MessageContentType.js +6 -0
  182. package/es/domain/enum/message/MessageDirection.js +6 -0
  183. package/es/domain/enum/message/MessageMeta.js +5 -0
  184. package/es/domain/enum/message/MessageStatus.js +11 -0
  185. package/es/domain/enum/message/MessageType.js +11 -0
  186. package/es/domain/enum/message/MetaMessageSourceType.js +6 -0
  187. package/es/domain/enum/message/MetaSystemMessageType.js +8 -0
  188. package/es/domain/enum/message/index.js +14 -0
  189. package/es/domain/enum/session/AssigneeFilter.js +6 -0
  190. package/es/domain/enum/session/SessionReplyStatus.js +24 -0
  191. package/es/domain/enum/session/SessionStatus.js +11 -0
  192. package/es/domain/enum/session/index.js +4 -0
  193. package/es/domain/enum/subscription/AddOnModule.js +5 -0
  194. package/es/domain/enum/subscription/AddOnName.js +5 -0
  195. package/es/domain/enum/subscription/AddOnType.js +5 -0
  196. package/es/domain/enum/subscription/SubscriptionStatus.js +4 -0
  197. package/es/domain/enum/subscription/index.js +5 -0
  198. package/es/domain/enum/templateMessage/TemplateCreditExhaustStatusCode.js +4 -0
  199. package/es/domain/enum/templateMessage/index.js +2 -0
  200. package/es/domain/enum/userPreference/CollapseSidePanel.js +5 -0
  201. package/es/domain/enum/userPreference/index.js +2 -0
  202. package/es/domain/interfaces/IAdapter.js +6 -0
  203. package/es/domain/interfaces/index.js +3 -0
  204. package/es/domain/interfaces/repositories/agents/IAgentRepository.js +17 -0
  205. package/es/domain/interfaces/repositories/agents/index.js +2 -0
  206. package/es/domain/interfaces/repositories/bots/IBotRepository.js +23 -0
  207. package/es/domain/interfaces/repositories/bots/index.js +2 -0
  208. package/es/domain/interfaces/repositories/calls/ICallRepository.js +32 -0
  209. package/es/domain/interfaces/repositories/calls/index.js +1 -0
  210. package/es/domain/interfaces/repositories/cannedMessages/ICannedMessageRepository.js +67 -0
  211. package/es/domain/interfaces/repositories/cannedMessages/index.js +2 -0
  212. package/es/domain/interfaces/repositories/channels/IChannelAgentRepository.js +17 -0
  213. package/es/domain/interfaces/repositories/channels/IChannelRepository.js +23 -0
  214. package/es/domain/interfaces/repositories/channels/index.js +3 -0
  215. package/es/domain/interfaces/repositories/contacts/IContactRepository.js +23 -0
  216. package/es/domain/interfaces/repositories/contacts/index.js +2 -0
  217. package/es/domain/interfaces/repositories/index.js +13 -0
  218. package/es/domain/interfaces/repositories/integrationServices/IIntegrationServiceRepository.js +17 -0
  219. package/es/domain/interfaces/repositories/integrationServices/index.js +2 -0
  220. package/es/domain/interfaces/repositories/messages/IMessageRepository.js +57 -0
  221. package/es/domain/interfaces/repositories/messages/index.js +2 -0
  222. package/es/domain/interfaces/repositories/sessions/ISessionRepository.js +57 -0
  223. package/es/domain/interfaces/repositories/sessions/index.js +2 -0
  224. package/es/domain/interfaces/repositories/subscription/ISubscriptionRepository.js +32 -0
  225. package/es/domain/interfaces/repositories/subscription/index.js +2 -0
  226. package/es/domain/interfaces/repositories/templateMessages/ITemplateMessageRepository.js +27 -0
  227. package/es/domain/interfaces/repositories/templateMessages/index.js +2 -0
  228. package/es/domain/interfaces/repositories/userPreferences/IUserPreferenceRepository.js +23 -0
  229. package/es/domain/interfaces/repositories/userPreferences/index.js +2 -0
  230. package/es/domain/interfaces/repositories/whatsAppPricing/IWhatsAppPricingRepository.js +18 -0
  231. package/es/domain/interfaces/repositories/whatsAppPricing/index.js +2 -0
  232. package/es/domain/schema/actor/ActorSchema.js +37 -0
  233. package/es/domain/schema/actor/AgentSchema.js +45 -0
  234. package/es/domain/schema/actor/index.js +3 -0
  235. package/es/domain/schema/attachment/AttachmentSchema.js +33 -0
  236. package/es/domain/schema/attachment/index.js +2 -0
  237. package/es/domain/schema/bot/BotSchema.js +33 -0
  238. package/es/domain/schema/bot/index.js +2 -0
  239. package/es/domain/schema/call/CallSchema.js +63 -0
  240. package/es/domain/schema/call/index.js +1 -0
  241. package/es/domain/schema/cannedMessage/CannedMessageSchema.js +77 -0
  242. package/es/domain/schema/cannedMessage/TemplateItem/TemplateItemButtonsSchema.js +17 -0
  243. package/es/domain/schema/cannedMessage/TemplateItem/TemplateItemFooterSchema.js +13 -0
  244. package/es/domain/schema/cannedMessage/TemplateItem/TemplateItemHeaderSchema.js +19 -0
  245. package/es/domain/schema/cannedMessage/TemplateItem/index.js +4 -0
  246. package/es/domain/schema/cannedMessage/TemplateItemsSchema.js +21 -0
  247. package/es/domain/schema/cannedMessage/TranslationsSchema.js +43 -0
  248. package/es/domain/schema/cannedMessage/index.js +4 -0
  249. package/es/domain/schema/channel/ChannelSchema.js +83 -0
  250. package/es/domain/schema/channel/index.js +2 -0
  251. package/es/domain/schema/contact/ContactSchema.js +39 -0
  252. package/es/domain/schema/contact/index.js +2 -0
  253. package/es/domain/schema/customReplyExtension/CustomReplyExtensionSchema.js +28 -0
  254. package/es/domain/schema/customReplyExtension/index.js +2 -0
  255. package/es/domain/schema/index.js +16 -0
  256. package/es/domain/schema/integrationService/IntegrationServiceSchema.js +43 -0
  257. package/es/domain/schema/integrationService/index.js +2 -0
  258. package/es/domain/schema/message/ActionSchema.js +18 -0
  259. package/es/domain/schema/message/ExternalInfoSchema.js +9 -0
  260. package/es/domain/schema/message/InfoSchema.js +24 -0
  261. package/es/domain/schema/message/InfoTargetSchema.js +35 -0
  262. package/es/domain/schema/message/LocationSchema.js +11 -0
  263. package/es/domain/schema/message/MessageSchema.js +116 -0
  264. package/es/domain/schema/message/MessageWithSessionSchema.js +10 -0
  265. package/es/domain/schema/message/index.js +8 -0
  266. package/es/domain/schema/placeholder/PlaceholderSchema.js +19 -0
  267. package/es/domain/schema/placeholder/index.js +2 -0
  268. package/es/domain/schema/session/SessionMetrics/AssigneeSchema.js +20 -0
  269. package/es/domain/schema/session/SessionMetrics/SessionMetricsForAssigneeSchema.js +32 -0
  270. package/es/domain/schema/session/SessionMetrics/index.js +2 -0
  271. package/es/domain/schema/session/SessionMetricsSchema.js +9 -0
  272. package/es/domain/schema/session/SessionSchema.js +82 -0
  273. package/es/domain/schema/session/index.js +3 -0
  274. package/es/domain/schema/subscription/AddOnSchema.js +29 -0
  275. package/es/domain/schema/subscription/LicenseDetailsSchema.js +7 -0
  276. package/es/domain/schema/subscription/SubscriptionInfoSchema.js +29 -0
  277. package/es/domain/schema/subscription/index.js +4 -0
  278. package/es/domain/schema/templateMessage/TemplateCreditExhaustStatusSchema.js +11 -0
  279. package/es/domain/schema/templateMessage/TemplateLanguageSchema.js +11 -0
  280. package/es/domain/schema/templateMessage/TemplateTagsSchema.js +7 -0
  281. package/es/domain/schema/templateMessage/index.js +4 -0
  282. package/es/domain/schema/userPreference/UserPreferenceSchema.js +9 -0
  283. package/es/domain/schema/userPreference/index.js +2 -0
  284. package/es/domain/schema/whatsAppPricing/WhatsAppPricingCategorySchema.js +11 -0
  285. package/es/domain/schema/whatsAppPricing/WhatsAppPricingSchema.js +21 -0
  286. package/es/domain/schema/whatsAppPricing/index.js +3 -0
  287. package/es/frameworks/managers/ModuleFactory.js +147 -0
  288. package/es/frameworks/managers/ModuleManager.js +67 -0
  289. package/es/frameworks/managers/index.js +2 -0
  290. package/es/frameworks/sdk/IMSDK.js +99 -0
  291. package/es/frameworks/sdk/agents/AgentSDK.js +30 -0
  292. package/es/frameworks/sdk/agents/index.js +2 -0
  293. package/es/frameworks/sdk/bots/BotSDK.js +30 -0
  294. package/es/frameworks/sdk/bots/index.js +2 -0
  295. package/es/frameworks/sdk/calls/CallSDK.js +27 -0
  296. package/es/frameworks/sdk/calls/index.js +1 -0
  297. package/es/frameworks/sdk/cannedMessages/CannedMessageSDK.js +30 -0
  298. package/es/frameworks/sdk/cannedMessages/index.js +2 -0
  299. package/es/frameworks/sdk/channels/ChannelSDK.js +37 -0
  300. package/es/frameworks/sdk/channels/index.js +2 -0
  301. package/es/frameworks/sdk/contacts/ContactSDK.js +30 -0
  302. package/es/frameworks/sdk/contacts/index.js +2 -0
  303. package/es/frameworks/sdk/index.js +2 -0
  304. package/es/frameworks/sdk/integrationServices/IntegrationServiceSDK.js +30 -0
  305. package/es/frameworks/sdk/integrationServices/index.js +2 -0
  306. package/es/frameworks/sdk/messages/MessageSDK.js +32 -0
  307. package/es/frameworks/sdk/messages/index.js +2 -0
  308. package/es/frameworks/sdk/sessions/SessionSDK.js +34 -0
  309. package/es/frameworks/sdk/sessions/index.js +2 -0
  310. package/es/frameworks/sdk/subscription/SubscriptionSDK.js +32 -0
  311. package/es/frameworks/sdk/subscription/index.js +2 -0
  312. package/es/frameworks/sdk/templateMessages/TemplateMessageSDK.js +30 -0
  313. package/es/frameworks/sdk/templateMessages/index.js +2 -0
  314. package/es/frameworks/sdk/userPreferences/UserPreferencesSDK.js +30 -0
  315. package/es/frameworks/sdk/userPreferences/index.js +2 -0
  316. package/es/frameworks/sdk/whatsAppPricing/WhatsAppPricingSDK.js +28 -0
  317. package/es/frameworks/sdk/whatsAppPricing/index.js +2 -0
  318. package/es/index.html +25 -0
  319. package/es/index.js +12 -0
  320. package/es/infrastructure/adapters/agents/AgentAdapter.js +28 -0
  321. package/es/infrastructure/adapters/agents/index.js +2 -0
  322. package/es/infrastructure/adapters/attachments/AttachmentAdapter.js +25 -0
  323. package/es/infrastructure/adapters/attachments/index.js +2 -0
  324. package/es/infrastructure/adapters/bots/BotAdapter.js +25 -0
  325. package/es/infrastructure/adapters/bots/index.js +2 -0
  326. package/es/infrastructure/adapters/calls/CallAdapter.js +31 -0
  327. package/es/infrastructure/adapters/calls/index.js +1 -0
  328. package/es/infrastructure/adapters/cannedMessages/CannedMessageAdapter.js +36 -0
  329. package/es/infrastructure/adapters/cannedMessages/TranslationAdapter.js +27 -0
  330. package/es/infrastructure/adapters/cannedMessages/index.js +3 -0
  331. package/es/infrastructure/adapters/channels/ChannelAdapter.js +43 -0
  332. package/es/infrastructure/adapters/channels/ChannelAgentAdapter.js +49 -0
  333. package/es/infrastructure/adapters/channels/index.js +3 -0
  334. package/es/infrastructure/adapters/contacts/ContactAdapter.js +27 -0
  335. package/es/infrastructure/adapters/contacts/index.js +2 -0
  336. package/es/infrastructure/adapters/customReplyExtension/CustomReplyExtensionAdapter.js +24 -0
  337. package/es/infrastructure/adapters/customReplyExtension/index.js +2 -0
  338. package/es/infrastructure/adapters/index.js +16 -0
  339. package/es/infrastructure/adapters/integrationServices/IntegrationServiceAdapter.js +25 -0
  340. package/es/infrastructure/adapters/integrationServices/index.js +2 -0
  341. package/es/infrastructure/adapters/messages/MessageAdapter.js +45 -0
  342. package/es/infrastructure/adapters/messages/MessageWithSessionAdapter.js +23 -0
  343. package/es/infrastructure/adapters/messages/index.js +2 -0
  344. package/es/infrastructure/adapters/placeholders/PlaceholderAdapter.js +22 -0
  345. package/es/infrastructure/adapters/placeholders/index.js +2 -0
  346. package/es/infrastructure/adapters/sessions/SessionAdapter.js +36 -0
  347. package/es/infrastructure/adapters/sessions/SessionMetricsAdapter.js +19 -0
  348. package/es/infrastructure/adapters/sessions/index.js +3 -0
  349. package/es/infrastructure/adapters/subscription/AddOnAdapter.js +24 -0
  350. package/es/infrastructure/adapters/subscription/LicenseDetailsAdapter.js +20 -0
  351. package/es/infrastructure/adapters/subscription/index.js +3 -0
  352. package/es/infrastructure/adapters/templateMessages/TemplateCreditExhaustStatusAdapter.js +20 -0
  353. package/es/infrastructure/adapters/templateMessages/TemplateLanguageAdapter.js +20 -0
  354. package/es/infrastructure/adapters/templateMessages/TemplateTagsAdapter.js +21 -0
  355. package/es/infrastructure/adapters/templateMessages/index.js +4 -0
  356. package/es/infrastructure/adapters/userPreferences/UserPreferenceAdapter.js +19 -0
  357. package/es/infrastructure/adapters/userPreferences/index.js +2 -0
  358. package/es/infrastructure/adapters/whatsAppPricing/WhatsAppPricingAdapter.js +22 -0
  359. package/es/infrastructure/adapters/whatsAppPricing/index.js +2 -0
  360. package/es/infrastructure/api/BaseAPI.js +105 -0
  361. package/es/infrastructure/api/UrlBuilder.js +53 -0
  362. package/es/infrastructure/api/agents/AgentAPI.js +14 -0
  363. package/es/infrastructure/api/agents/index.js +2 -0
  364. package/es/infrastructure/api/bots/BotAPI.js +24 -0
  365. package/es/infrastructure/api/bots/index.js +2 -0
  366. package/es/infrastructure/api/calls/CallAPI.js +44 -0
  367. package/es/infrastructure/api/calls/index.js +1 -0
  368. package/es/infrastructure/api/cannedMessages/CannedMessageAPI.js +114 -0
  369. package/es/infrastructure/api/cannedMessages/index.js +2 -0
  370. package/es/infrastructure/api/channels/ChannelAPI.js +24 -0
  371. package/es/infrastructure/api/channels/ChannelAgentAPI.js +22 -0
  372. package/es/infrastructure/api/channels/index.js +3 -0
  373. package/es/infrastructure/api/contacts/ContactAPI.js +24 -0
  374. package/es/infrastructure/api/contacts/index.js +2 -0
  375. package/es/infrastructure/api/index.js +13 -0
  376. package/es/infrastructure/api/integrationServices/IntegrationServiceAPI.js +14 -0
  377. package/es/infrastructure/api/integrationServices/index.js +2 -0
  378. package/es/infrastructure/api/messages/MessageAPI.js +94 -0
  379. package/es/infrastructure/api/messages/index.js +2 -0
  380. package/es/infrastructure/api/registry/agents/agentAPIRegistry.js +12 -0
  381. package/es/infrastructure/api/registry/agents/constructAgentEndPoint.js +10 -0
  382. package/es/infrastructure/api/registry/agents/index.js +2 -0
  383. package/es/infrastructure/api/registry/bots/botAPIRegistry.js +18 -0
  384. package/es/infrastructure/api/registry/bots/constructBotEndPoint.js +10 -0
  385. package/es/infrastructure/api/registry/bots/index.js +2 -0
  386. package/es/infrastructure/api/registry/calls/callAPIRegistry.js +29 -0
  387. package/es/infrastructure/api/registry/calls/constructCallEndPoint.js +10 -0
  388. package/es/infrastructure/api/registry/calls/index.js +1 -0
  389. package/es/infrastructure/api/registry/cannedMessages/cannedMessageAPIRegistry.js +62 -0
  390. package/es/infrastructure/api/registry/cannedMessages/constructCannedMessageEndPoint.js +10 -0
  391. package/es/infrastructure/api/registry/cannedMessages/index.js +2 -0
  392. package/es/infrastructure/api/registry/channels/channelAPIRegistry.js +22 -0
  393. package/es/infrastructure/api/registry/channels/channelAgentAPIRegistry.js +12 -0
  394. package/es/infrastructure/api/registry/channels/constructChannelEndPoint.js +10 -0
  395. package/es/infrastructure/api/registry/channels/index.js +2 -0
  396. package/es/infrastructure/api/registry/contacts/constructContactEndPoint.js +10 -0
  397. package/es/infrastructure/api/registry/contacts/contactAPIRegistry.js +18 -0
  398. package/es/infrastructure/api/registry/contacts/index.js +2 -0
  399. package/es/infrastructure/api/registry/createAPIRegistry.js +7 -0
  400. package/es/infrastructure/api/registry/createBaseUrl.js +3 -0
  401. package/es/infrastructure/api/registry/createPublicBaseUrl.js +4 -0
  402. package/es/infrastructure/api/registry/getRegistryConfig.js +40 -0
  403. package/es/infrastructure/api/registry/index.js +2 -0
  404. package/es/infrastructure/api/registry/integrationServices/constructIntegrationServiceEndPoint.js +10 -0
  405. package/es/infrastructure/api/registry/integrationServices/index.js +2 -0
  406. package/es/infrastructure/api/registry/integrationServices/integrationServiceAPIRegistry.js +12 -0
  407. package/es/infrastructure/api/registry/messages/constructMessageEndPoint.js +4 -0
  408. package/es/infrastructure/api/registry/messages/index.js +2 -0
  409. package/es/infrastructure/api/registry/messages/messageAPIRegistry.js +62 -0
  410. package/es/infrastructure/api/registry/sessions/constructSessionEndPoint.js +10 -0
  411. package/es/infrastructure/api/registry/sessions/index.js +2 -0
  412. package/es/infrastructure/api/registry/sessions/sessionAPIRegistry.js +58 -0
  413. package/es/infrastructure/api/registry/subscription/constructSubscriptionEndPoint.js +10 -0
  414. package/es/infrastructure/api/registry/subscription/index.js +2 -0
  415. package/es/infrastructure/api/registry/subscription/subscriptionAPIRegistry.js +30 -0
  416. package/es/infrastructure/api/registry/templateMessages/constructTemplateMessageEndPoint.js +11 -0
  417. package/es/infrastructure/api/registry/templateMessages/index.js +2 -0
  418. package/es/infrastructure/api/registry/templateMessages/templateMessageAPIRegistry.js +23 -0
  419. package/es/infrastructure/api/registry/userPreferences/constructUserPreferencesEndPoint.js +10 -0
  420. package/es/infrastructure/api/registry/userPreferences/index.js +2 -0
  421. package/es/infrastructure/api/registry/userPreferences/userPreferenceAPIRegistry.js +17 -0
  422. package/es/infrastructure/api/registry/whatsAppPricing/constructWhatsAppPricingEndPoint.js +10 -0
  423. package/es/infrastructure/api/registry/whatsAppPricing/index.js +2 -0
  424. package/es/infrastructure/api/registry/whatsAppPricing/whatsAppPricingAPIRegistry.js +13 -0
  425. package/es/infrastructure/api/sessions/SessionAPI.js +94 -0
  426. package/es/infrastructure/api/sessions/index.js +2 -0
  427. package/es/infrastructure/api/subscription/SubscriptionAPI.js +48 -0
  428. package/es/infrastructure/api/subscription/index.js +2 -0
  429. package/es/infrastructure/api/templateMessages/TemplateMessageAPI.js +34 -0
  430. package/es/infrastructure/api/templateMessages/index.js +2 -0
  431. package/es/infrastructure/api/userPreferences/UserPreferenceAPI.js +24 -0
  432. package/es/infrastructure/api/userPreferences/index.js +2 -0
  433. package/es/infrastructure/api/whatsAppPricing/WhatsAppPricingAPI.js +14 -0
  434. package/es/infrastructure/api/whatsAppPricing/index.js +2 -0
  435. package/es/infrastructure/config/configRegistry.js +34 -0
  436. package/es/infrastructure/config/index.js +2 -0
  437. package/es/infrastructure/repositories/agents/AgentRepository.js +49 -0
  438. package/es/infrastructure/repositories/agents/index.js +2 -0
  439. package/es/infrastructure/repositories/bots/BotRepository.js +58 -0
  440. package/es/infrastructure/repositories/bots/index.js +2 -0
  441. package/es/infrastructure/repositories/calls/CallRepository.js +73 -0
  442. package/es/infrastructure/repositories/calls/index.js +1 -0
  443. package/es/infrastructure/repositories/cannedMessages/CannedMessageRepository.js +140 -0
  444. package/es/infrastructure/repositories/cannedMessages/index.js +2 -0
  445. package/es/infrastructure/repositories/channels/ChannelAgentRepository.js +49 -0
  446. package/es/infrastructure/repositories/channels/ChannelRepository.js +58 -0
  447. package/es/infrastructure/repositories/channels/index.js +3 -0
  448. package/es/infrastructure/repositories/contacts/ContactRepository.js +57 -0
  449. package/es/infrastructure/repositories/contacts/index.js +2 -0
  450. package/es/infrastructure/repositories/index.js +13 -0
  451. package/es/infrastructure/repositories/integrationServices/IntegrationServiceRepository.js +49 -0
  452. package/es/infrastructure/repositories/integrationServices/index.js +2 -0
  453. package/es/infrastructure/repositories/messages/MessageRepository.js +119 -0
  454. package/es/infrastructure/repositories/messages/index.js +2 -0
  455. package/es/infrastructure/repositories/sessions/SessionRepository.js +124 -0
  456. package/es/infrastructure/repositories/sessions/index.js +2 -0
  457. package/es/infrastructure/repositories/subscription/SubscriptionRepository.js +83 -0
  458. package/es/infrastructure/repositories/subscription/index.js +2 -0
  459. package/es/infrastructure/repositories/templateMessages/TemplateMessageRepository.js +89 -0
  460. package/es/infrastructure/repositories/templateMessages/index.js +2 -0
  461. package/es/infrastructure/repositories/userPreferences/UserPreferenceRepository.js +58 -0
  462. package/es/infrastructure/repositories/userPreferences/index.js +2 -0
  463. package/es/infrastructure/repositories/whatsAppPricing/WhatsAppPricingRepository.js +49 -0
  464. package/es/infrastructure/repositories/whatsAppPricing/index.js +2 -0
  465. package/package.json +2 -2
@@ -0,0 +1,25 @@
1
+ import { AdapterError } from '../../../core/errors';
2
+ import { IntegrationService } from '../../../domain/entities';
3
+ import { IAdapter } from '../../../domain/interfaces';
4
+ export default class IntegrationServiceAdapter extends IAdapter {
5
+ adapt(integrationServiceData) {
6
+ if (!integrationServiceData) {
7
+ throw new AdapterError('IntegrationService data is required');
8
+ }
9
+
10
+ try {
11
+ return new IntegrationService({
12
+ id: integrationServiceData.id,
13
+ label: integrationServiceData.label,
14
+ provider: integrationServiceData.provider,
15
+ domain: integrationServiceData.domain,
16
+ channelAlias: integrationServiceData.channelAlias,
17
+ logoURL: integrationServiceData.logoURL,
18
+ isParentAccountNeeded: integrationServiceData.isParentAccountNeeded
19
+ }).toJSON();
20
+ } catch (error) {
21
+ throw new AdapterError(`Failed to adapt integrationService: ${error.message}`);
22
+ }
23
+ }
24
+
25
+ }
@@ -0,0 +1,2 @@
1
+ import IntegrationServiceAdapter from './IntegrationServiceAdapter';
2
+ export { IntegrationServiceAdapter };
@@ -0,0 +1,45 @@
1
+ import { AdapterError } from '../../../core/errors';
2
+ import { Message } from '../../../domain/entities';
3
+ import { IAdapter } from '../../../domain/interfaces';
4
+ export default class MessageAdapter extends IAdapter {
5
+ adapt(messageData) {
6
+ if (!messageData) {
7
+ throw new AdapterError('Message data is required');
8
+ }
9
+
10
+ try {
11
+ const {
12
+ template
13
+ } = messageData;
14
+ const normalizedTemplate = template && Object.keys(template).length > 0 ? template : null;
15
+ return new Message({
16
+ id: messageData.id,
17
+ sessionId: messageData.sessionId,
18
+ displayMessage: messageData.displayMessage,
19
+ statusUpdatedTime: messageData.statusUpdatedTime,
20
+ actor: messageData.actor,
21
+ direction: messageData.direction,
22
+ createdTime: messageData.createdTime,
23
+ index: messageData.index,
24
+ replyToMessage: messageData.replyToMessage,
25
+ status: messageData.status,
26
+ info: messageData.info,
27
+ location: messageData.location,
28
+ externalInfo: messageData.externalInfo,
29
+ layout: messageData.layout,
30
+ action: messageData.action,
31
+ meta: messageData.meta,
32
+ contentType: messageData.contentType,
33
+ fullContentURL: messageData.fullContentURL,
34
+ attachment: messageData.attachment,
35
+ template: normalizedTemplate,
36
+ type: messageData.type,
37
+ isRead: messageData.isRead,
38
+ article: messageData.article
39
+ }).toJSON();
40
+ } catch (error) {
41
+ throw new AdapterError(`Failed to adapt message: ${error.message}`);
42
+ }
43
+ }
44
+
45
+ }
@@ -0,0 +1,23 @@
1
+ import { AdapterError } from '../../../core/errors';
2
+ import { MessageWithSession } from '../../../domain/entities';
3
+ import { IAdapter } from '../../../domain/interfaces';
4
+ import { MessageAdapter, SessionAdapter } from '../index';
5
+ export default class MessageWithSessionAdapter extends IAdapter {
6
+ adapt(messageData) {
7
+ if (!messageData) {
8
+ throw new AdapterError('Message With Session data is required');
9
+ }
10
+
11
+ const message = new MessageAdapter().adapt(messageData);
12
+ const session = new SessionAdapter().adapt(messageData.session);
13
+
14
+ try {
15
+ return new MessageWithSession({ ...message,
16
+ session
17
+ }).toJSON();
18
+ } catch (error) {
19
+ throw new Error(`Failed to adapt message with session: ${error.message}`);
20
+ }
21
+ }
22
+
23
+ }
@@ -0,0 +1,2 @@
1
+ import MessageAdapter from './MessageAdapter';
2
+ export { MessageAdapter };
@@ -0,0 +1,22 @@
1
+ import { AdapterError } from '../../../core/errors';
2
+ import { Placeholder } from '../../../domain/entities';
3
+ import { IAdapter } from '../../../domain/interfaces';
4
+ export default class PlaceholderAdapter extends IAdapter {
5
+ adapt(placeholderData) {
6
+ if (!placeholderData) {
7
+ throw new AdapterError('Placeholder data is required');
8
+ }
9
+
10
+ try {
11
+ return new Placeholder({
12
+ apiName: placeholderData.apiName,
13
+ i18nFieldLabel: placeholderData.i18nFieldLabel,
14
+ fieldLabel: placeholderData.fieldLabel,
15
+ placeHolder: placeholderData.placeHolder
16
+ }).toJSON();
17
+ } catch (error) {
18
+ throw new AdapterError(`Failed to adapt placeholder: ${error.message}`);
19
+ }
20
+ }
21
+
22
+ }
@@ -0,0 +1,2 @@
1
+ import PlaceholderAdapter from './PlaceholderAdapter';
2
+ export { PlaceholderAdapter };
@@ -0,0 +1,36 @@
1
+ import { AdapterError } from '../../../core/errors';
2
+ import { Session } from '../../../domain/entities';
3
+ import { IAdapter } from '../../../domain/interfaces';
4
+ export default class SessionAdapter extends IAdapter {
5
+ adapt(sessionData) {
6
+ if (!sessionData) {
7
+ throw new AdapterError('Session data is required');
8
+ }
9
+
10
+ try {
11
+ return new Session({
12
+ id: sessionData.id,
13
+ channelId: sessionData.channelId,
14
+ status: sessionData.status,
15
+ createdTime: sessionData.createdTime,
16
+ agentId: sessionData.agentId,
17
+ botId: sessionData.botId,
18
+ actor: sessionData.actor,
19
+ subject: sessionData.subject,
20
+ messagesCount: sessionData.messagesCount,
21
+ agentLastActiveTime: sessionData.agentLastActiveTime,
22
+ contactLastActiveTime: sessionData.contactLastActiveTime,
23
+ lastActiveTime: sessionData.lastActiveTime,
24
+ unreadMessagesCount: sessionData.unreadMessagesCount,
25
+ integrationServiceId: sessionData.integrationServiceId,
26
+ replyStatus: sessionData.replyStatus,
27
+ contactId: sessionData.contactId,
28
+ meta: sessionData.meta,
29
+ assignee: sessionData.assignee
30
+ }).toJSON();
31
+ } catch (error) {
32
+ throw new AdapterError(`Failed to adapt session: ${error.message}`);
33
+ }
34
+ }
35
+
36
+ }
@@ -0,0 +1,19 @@
1
+ import { AdapterError } from '../../../core/errors';
2
+ import { SessionMetrics } from '../../../domain/entities';
3
+ import { IAdapter } from '../../../domain/interfaces';
4
+ export default class SessionMetricsAdapter extends IAdapter {
5
+ adapt(sessionMetricsData) {
6
+ if (!sessionMetricsData) {
7
+ throw new AdapterError('Session metrics data is required');
8
+ }
9
+
10
+ try {
11
+ return new SessionMetrics({
12
+ assignee: sessionMetricsData.assignee
13
+ }).toJSON();
14
+ } catch (error) {
15
+ throw new AdapterError(`Failed to adapt session Metrics Data: ${error.message}`);
16
+ }
17
+ }
18
+
19
+ }
@@ -0,0 +1,3 @@
1
+ import SessionAdapter from './SessionAdapter';
2
+ import SessionMetricsAdapter from './SessionMetricsAdapter';
3
+ export { SessionAdapter, SessionMetricsAdapter };
@@ -0,0 +1,24 @@
1
+ import { AdapterError } from '../../../core/errors';
2
+ import { AddOn } from '../../../domain/entities';
3
+ import { IAdapter } from '../../../domain/interfaces';
4
+ export default class AddOnAdapter extends IAdapter {
5
+ adapt(data) {
6
+ if (!data) {
7
+ throw new AdapterError('AddOn data is required'); // No I18N
8
+ }
9
+
10
+ try {
11
+ return new AddOn({
12
+ name: data.name,
13
+ type: data.type,
14
+ module: data.module,
15
+ cost: data.cost,
16
+ subscriptionInfo: data.subscriptionInfo
17
+ }).toJSON();
18
+ } catch (error) {
19
+ throw new AdapterError(`Failed to adapt addOn: ${error.message}` // No I18N
20
+ );
21
+ }
22
+ }
23
+
24
+ }
@@ -0,0 +1,20 @@
1
+ import { AdapterError } from '../../../core/errors';
2
+ import { LicenseDetails } from '../../../domain/entities';
3
+ import { IAdapter } from '../../../domain/interfaces';
4
+ export default class LicenseDetailsAdapter extends IAdapter {
5
+ adapt(data) {
6
+ if (!data) {
7
+ throw new AdapterError('LicenseDetails data is required'); // No I18N
8
+ }
9
+
10
+ try {
11
+ return new LicenseDetails({
12
+ paymentSource: data.paymentSource
13
+ }).toJSON();
14
+ } catch (error) {
15
+ throw new AdapterError(`Failed to adapt licenseDetails: ${error.message}` // No I18N
16
+ );
17
+ }
18
+ }
19
+
20
+ }
@@ -0,0 +1,3 @@
1
+ import AddOnAdapter from './AddOnAdapter';
2
+ import LicenseDetailsAdapter from './LicenseDetailsAdapter';
3
+ export { AddOnAdapter, LicenseDetailsAdapter };
@@ -0,0 +1,20 @@
1
+ import { AdapterError } from '../../../core/errors';
2
+ import { TemplateCreditExhaustStatus } from '../../../domain/entities';
3
+ import { IAdapter } from '../../../domain/interfaces';
4
+ export default class TemplateCreditExhaustStatusAdapter extends IAdapter {
5
+ adapt(templateCreditExhaustStatusData) {
6
+ if (!templateCreditExhaustStatusData) {
7
+ throw new AdapterError('Template Credit Exhaust Status data is required');
8
+ }
9
+
10
+ try {
11
+ return new TemplateCreditExhaustStatus({
12
+ code: templateCreditExhaustStatusData.code,
13
+ message: templateCreditExhaustStatusData.message
14
+ }).toJSON();
15
+ } catch (error) {
16
+ throw new AdapterError(`Failed to adapt Template Credit Exhaust Status: ${error.message}`);
17
+ }
18
+ }
19
+
20
+ }
@@ -0,0 +1,20 @@
1
+ import { AdapterError } from '../../../core/errors';
2
+ import { TemplateLanguage } from '../../../domain/entities';
3
+ import { IAdapter } from '../../../domain/interfaces';
4
+ export default class TemplateLanguageAdapter extends IAdapter {
5
+ adapt(templateLanguageData) {
6
+ if (!templateLanguageData) {
7
+ throw new AdapterError('templateLanguage data is required');
8
+ }
9
+
10
+ try {
11
+ return new TemplateLanguage({
12
+ code: templateLanguageData.code,
13
+ language: templateLanguageData.language
14
+ }).toJSON();
15
+ } catch (error) {
16
+ throw new AdapterError(`Failed to adapt TemplateLanguage: ${error.message}`);
17
+ }
18
+ }
19
+
20
+ }
@@ -0,0 +1,21 @@
1
+ import { AdapterError } from '../../../core/errors';
2
+ import { TemplateTags } from '../../../domain/entities';
3
+ import { IAdapter } from '../../../domain/interfaces';
4
+ export default class TemplateTagsAdapter extends IAdapter {
5
+ adapt(templateTagsData) {
6
+ const tags = templateTagsData?.data?.tags;
7
+
8
+ if (!tags) {
9
+ throw new AdapterError('templateTags data is required');
10
+ }
11
+
12
+ try {
13
+ return new TemplateTags({
14
+ tags: tags
15
+ }).toJSON();
16
+ } catch (error) {
17
+ throw new AdapterError(`Failed to adapt TemplateTags: ${error.message}`);
18
+ }
19
+ }
20
+
21
+ }
@@ -0,0 +1,4 @@
1
+ import TemplateLanguageAdapter from './TemplateLanguageAdapter';
2
+ import TemplateCreditExhaustStatusAdapter from './TemplateCreditExhaustStatusAdapter';
3
+ import TemplateTagsAdapter from './TemplateTagsAdapter';
4
+ export { TemplateLanguageAdapter, TemplateCreditExhaustStatusAdapter, TemplateTagsAdapter };
@@ -0,0 +1,19 @@
1
+ import { AdapterError } from '../../../core/errors';
2
+ import { UserPreference } from '../../../domain/entities';
3
+ import { IAdapter } from '../../../domain/interfaces';
4
+ export default class UserPreferencesAdapter extends IAdapter {
5
+ adapt(preferenceData) {
6
+ if (!preferenceData) {
7
+ throw new AdapterError('UserPreference data is required');
8
+ }
9
+
10
+ try {
11
+ return new UserPreference({
12
+ collapseSidePanel: preferenceData.collapseSidePanel
13
+ }).toJSON();
14
+ } catch (error) {
15
+ throw new AdapterError(`Failed to adapt user preference: ${error.message}`);
16
+ }
17
+ }
18
+
19
+ }
@@ -0,0 +1,2 @@
1
+ import UserPreferenceAdapter from './UserPreferenceAdapter';
2
+ export { UserPreferenceAdapter };
@@ -0,0 +1,22 @@
1
+ import { AdapterError } from '../../../core/errors';
2
+ import { WhatsAppPricing } from '../../../domain/entities';
3
+ import { IAdapter } from '../../../domain/interfaces';
4
+ export default class WhatsAppPricingAdapter extends IAdapter {
5
+ adapt(whatsAppPricingData) {
6
+ if (!whatsAppPricingData) {
7
+ throw new AdapterError('whatsAppPricing data is required');
8
+ }
9
+
10
+ try {
11
+ return new WhatsAppPricing({
12
+ total: whatsAppPricingData.total,
13
+ creditsCount: whatsAppPricingData.creditsCount,
14
+ actutalCreditsAmount: whatsAppPricingData.actutalCreditsAmount,
15
+ category: whatsAppPricingData.category
16
+ }).toJSON();
17
+ } catch (error) {
18
+ throw new AdapterError(`Failed to adapt WhatsAppPricing: ${error.message}`);
19
+ }
20
+ }
21
+
22
+ }
@@ -0,0 +1,2 @@
1
+ import WhatsAppPricingAdapter from './WhatsAppPricingAdapter';
2
+ export { WhatsAppPricingAdapter };
@@ -0,0 +1,105 @@
1
+ import { ModuleTypes, ResponseTypes } from '../../core/constants';
2
+ import { ResponseUtils } from '../../core/utils';
3
+ import configRegistry from '../config/configRegistry';
4
+ import { getRegistryConfig } from './registry';
5
+ import UrlBuilder from './UrlBuilder';
6
+ export default class BaseAPI {
7
+ constructor() {
8
+ let {
9
+ module,
10
+ moduleType = ModuleTypes.AUTHENTICATED,
11
+ configProvider = configRegistry,
12
+ registryProvider = {
13
+ getRegistryConfig
14
+ },
15
+ urlBuilder
16
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
17
+ this.configProvider = configProvider;
18
+ this.registryProvider = registryProvider;
19
+ this.httpClient = moduleType === ModuleTypes.PUBLIC ? this.configProvider.getPublicHttpClient() : this.configProvider.getHttpClient();
20
+ this.baseURL = this.configProvider.getBaseURL();
21
+ this.module = module;
22
+ this.urlBuilder = urlBuilder || new UrlBuilder(this.baseURL);
23
+ }
24
+
25
+ async request(_ref) {
26
+ let {
27
+ request,
28
+ operation,
29
+ header
30
+ } = _ref;
31
+ const config = this.registryProvider.getRegistryConfig(this.module, operation);
32
+
33
+ if (!config) {
34
+ throw new Error(`Operation "${operation}" not found in registry for module "${this.module}"`);
35
+ }
36
+
37
+ const url = this.urlBuilder.buildUrl({
38
+ url: config.endpoint,
39
+ params: request.params || {},
40
+ query: request.query || {}
41
+ });
42
+ const httpRequest = await this.httpClient.request({
43
+ url,
44
+ method: config.method,
45
+ header,
46
+ payload: request.body || {}
47
+ });
48
+ return httpRequest;
49
+ }
50
+
51
+ createAPIProxy(customAPI, defaultAPI) {
52
+ // If no custom API provided, just use default
53
+ if (!customAPI) {
54
+ return defaultAPI;
55
+ } // Create a proxy for method delegation
56
+
57
+
58
+ return new Proxy({}, {
59
+ get: (target, prop) => {
60
+ // For methods, check if custom implementation exists
61
+ if (typeof prop === 'string' && typeof customAPI[prop] === 'function' && this.isMethodOverridden(customAPI, prop)) {
62
+ // Use custom implementation if available
63
+ return customAPI[prop].bind(customAPI);
64
+ } // Fall back to default implementation
65
+
66
+
67
+ return defaultAPI[prop].bind(defaultAPI);
68
+ }
69
+ });
70
+ }
71
+
72
+ isMethodOverridden(customAPI, methodName) {
73
+ if (!customAPI) {
74
+ return false;
75
+ }
76
+
77
+ const customPrototype = Object.getPrototypeOf(customAPI);
78
+ return typeof customAPI[methodName] === 'function' && // Method is defined directly on custom prototype
79
+ Object.prototype.hasOwnProperty.call(customPrototype, methodName);
80
+ }
81
+
82
+ async executeAPICall(_ref2) {
83
+ let {
84
+ operation,
85
+ request,
86
+ apiProxy,
87
+ customAPI,
88
+ adapter,
89
+ responseType = ResponseTypes.SINGLE
90
+ } = _ref2;
91
+ const response = await apiProxy[operation](request);
92
+ const isOverridden = this.isMethodOverridden(customAPI, operation);
93
+
94
+ if (isOverridden) {
95
+ return response;
96
+ }
97
+
98
+ if (responseType === ResponseTypes.NONE || !adapter) {
99
+ return response;
100
+ }
101
+
102
+ return responseType === ResponseTypes.LIST ? ResponseUtils.adaptListResponse(response, adapter.adapt) : ResponseUtils.adaptSingleResponse(response, adapter.adapt);
103
+ }
104
+
105
+ }
@@ -0,0 +1,53 @@
1
+ export default class UrlBuilder {
2
+ constructor(baseURL) {
3
+ this.baseURL = baseURL;
4
+ }
5
+
6
+ replacePathParams(url, params) {
7
+ let processedUrl = url;
8
+ Object.entries(params).forEach(_ref => {
9
+ let [key, value] = _ref;
10
+ processedUrl = processedUrl.replace(`:${key}`, value);
11
+ });
12
+ return processedUrl;
13
+ }
14
+
15
+ buildUrl(_ref2) {
16
+ let {
17
+ url,
18
+ params,
19
+ query
20
+ } = _ref2;
21
+ const paramsObj = params || {};
22
+ const queryObj = query || {};
23
+ let processedUrl = this.replacePathParams(url, paramsObj);
24
+
25
+ if (this.baseURL) {
26
+ processedUrl = `${this.baseURL}${processedUrl}`;
27
+ }
28
+
29
+ const queryString = this.buildQuery(queryObj);
30
+
31
+ if (queryString) {
32
+ return `${processedUrl}?${queryString}`;
33
+ }
34
+
35
+ return processedUrl;
36
+ }
37
+
38
+ buildQuery(query) {
39
+ const filteredQuery = Object.entries(query).filter(_ref3 => {
40
+ let [, value] = _ref3;
41
+ return value !== undefined && value !== null && value !== '';
42
+ }).reduce((acc, _ref4) => {
43
+ let [key, value] = _ref4;
44
+ acc[key] = value;
45
+ return acc;
46
+ }, {});
47
+ return Object.entries(filteredQuery).map(_ref5 => {
48
+ let [key, value] = _ref5;
49
+ return `${key}=${value}`;
50
+ }).join('&');
51
+ }
52
+
53
+ }
@@ -0,0 +1,14 @@
1
+ import { getAgentsRequest } from '../../../domain/dto';
2
+ import { IAgentRepository } from '../../../domain/interfaces/repositories';
3
+ export default class AgentAPI extends IAgentRepository {
4
+ async getAgents() {
5
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getAgentsRequest();
6
+ const operation = 'getAgents';
7
+ const httpRequest = await this.request({
8
+ request,
9
+ operation
10
+ });
11
+ return httpRequest;
12
+ }
13
+
14
+ }
@@ -0,0 +1,2 @@
1
+ import AgentAPI from './AgentAPI';
2
+ export { AgentAPI };
@@ -0,0 +1,24 @@
1
+ import { getBotsRequest, getBotRequest } from '../../../domain/dto';
2
+ import { IBotRepository } from '../../../domain/interfaces/repositories';
3
+ export default class BotAPI extends IBotRepository {
4
+ async getBots() {
5
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getBotsRequest();
6
+ const operation = 'getBots';
7
+ const httpRequest = await this.request({
8
+ request,
9
+ operation
10
+ });
11
+ return httpRequest;
12
+ }
13
+
14
+ async getBot() {
15
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getBotRequest();
16
+ const operation = 'getBot';
17
+ const httpRequest = await this.request({
18
+ request,
19
+ operation
20
+ });
21
+ return httpRequest;
22
+ }
23
+
24
+ }
@@ -0,0 +1,2 @@
1
+ import BotAPI from './BotAPI';
2
+ export { BotAPI };
@@ -0,0 +1,44 @@
1
+ import { getCallsRequest, getCallRequest, updateCallStatusRequest, initiateCallRequest } from '../../../domain/dto';
2
+ import { ICallRepository } from '../../../domain/interfaces/repositories';
3
+ export default class CallAPI extends ICallRepository {
4
+ async getCalls() {
5
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getCallsRequest();
6
+ const operation = 'getCalls';
7
+ const httpRequest = await this.request({
8
+ operation,
9
+ request
10
+ });
11
+ return httpRequest;
12
+ }
13
+
14
+ async getCall() {
15
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getCallRequest();
16
+ const operation = 'getCall';
17
+ const httpRequest = await this.request({
18
+ operation,
19
+ request
20
+ });
21
+ return httpRequest;
22
+ }
23
+
24
+ async updateCallStatus() {
25
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : updateCallStatusRequest();
26
+ const operation = 'updateCallStatus';
27
+ const httpRequest = await this.request({
28
+ operation,
29
+ request
30
+ });
31
+ return httpRequest;
32
+ }
33
+
34
+ async initiateCall() {
35
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initiateCallRequest();
36
+ const operation = 'initiateCall';
37
+ const httpRequest = await this.request({
38
+ operation,
39
+ request
40
+ });
41
+ return httpRequest;
42
+ }
43
+
44
+ }
@@ -0,0 +1 @@
1
+ export { default as CallAPI } from './CallAPI';