@zohoim/client-sdk 1.0.0-poc5 → 1.0.0-poc51

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 (228) 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 +21 -0
  4. package/es/application/services/bots/index.js +2 -0
  5. package/es/application/services/channels/ChannelAgentService.js +21 -0
  6. package/es/application/services/channels/ChannelService.js +21 -0
  7. package/es/application/services/channels/index.js +3 -0
  8. package/es/application/services/contacts/ContactService.js +21 -0
  9. package/es/application/services/contacts/index.js +2 -0
  10. package/es/application/services/index.js +6 -0
  11. package/es/application/services/messages/MessageService.js +56 -0
  12. package/es/application/services/messages/index.js +2 -0
  13. package/es/application/services/sessions/SessionService.js +51 -0
  14. package/es/application/services/sessions/index.js +2 -0
  15. package/es/core/constants/ModuleNames.js +9 -0
  16. package/es/core/constants/index.js +5 -0
  17. package/es/core/errors/AdapterError.js +7 -0
  18. package/es/core/errors/index.js +3 -0
  19. package/es/core/utils/ResponseUtils.js +24 -0
  20. package/es/core/utils/index.js +3 -0
  21. package/es/core/utils/validateSchema.js +76 -0
  22. package/es/domain/dto/RequestBuilder.js +44 -0
  23. package/es/domain/dto/agents/getAgentsRequest.js +12 -0
  24. package/es/domain/dto/agents/index.js +1 -0
  25. package/es/domain/dto/bots/getBotsRequest.js +15 -0
  26. package/es/domain/dto/bots/index.js +1 -0
  27. package/es/domain/dto/channels/agents/getChannelAgentsRequest.js +13 -0
  28. package/es/domain/dto/channels/agents/index.js +1 -0
  29. package/es/domain/dto/channels/getChannelsRequest.js +23 -0
  30. package/es/domain/dto/channels/index.js +3 -0
  31. package/es/domain/dto/contacts/getContactsRequest.js +10 -0
  32. package/es/domain/dto/contacts/index.js +1 -0
  33. package/es/domain/dto/index.js +6 -0
  34. package/es/domain/dto/messages/deleteMessageRequest.js +14 -0
  35. package/es/domain/dto/messages/getFullContentRequest.js +14 -0
  36. package/es/domain/dto/messages/getMessagesRequest.js +20 -0
  37. package/es/domain/dto/messages/index.js +8 -0
  38. package/es/domain/dto/messages/initiateSessionRequest.js +21 -0
  39. package/es/domain/dto/messages/resendMessageRequest.js +14 -0
  40. package/es/domain/dto/messages/searchMessagesRequest.js +22 -0
  41. package/es/domain/dto/messages/sendAttachmentRequest.js +20 -0
  42. package/es/domain/dto/messages/sendMessageRequest.js +17 -0
  43. package/es/domain/dto/sessions/getSessionAttachmentsRequest.js +13 -0
  44. package/es/domain/dto/sessions/getSessionLastMessagesRequest.js +13 -0
  45. package/es/domain/dto/sessions/getSessionRequest.js +13 -0
  46. package/es/domain/dto/sessions/getSessionsRequest.js +26 -0
  47. package/es/domain/dto/sessions/index.js +7 -0
  48. package/es/domain/dto/sessions/markSessionAsReadRequest.js +13 -0
  49. package/es/domain/dto/sessions/updateSessionAssigneeRequest.js +12 -0
  50. package/es/domain/dto/sessions/updateSessionStatusRequest.js +17 -0
  51. package/es/domain/entities/Actor/Actor.js +28 -0
  52. package/es/domain/entities/Actor/index.js +2 -2
  53. package/es/domain/entities/Agent/Agent.js +16 -102
  54. package/es/domain/entities/Agent/index.js +1 -1
  55. package/es/domain/entities/Attachment/Attachment.js +22 -0
  56. package/es/domain/entities/Attachment/index.js +2 -0
  57. package/es/domain/entities/Bot/Bot.js +23 -0
  58. package/es/domain/entities/Bot/index.js +2 -0
  59. package/es/domain/entities/Channel/Channel.js +38 -0
  60. package/es/domain/entities/Channel/index.js +2 -0
  61. package/es/domain/entities/Contact/Contact.js +22 -0
  62. package/es/domain/entities/Contact/index.js +2 -0
  63. package/es/domain/entities/Message/Action.js +19 -0
  64. package/es/domain/entities/Message/ExternalInfo.js +17 -0
  65. package/es/domain/entities/Message/Info.js +21 -0
  66. package/es/domain/entities/Message/Location.js +18 -0
  67. package/es/domain/entities/Message/Message.js +45 -0
  68. package/es/domain/entities/Message/MessageWithSession.js +21 -0
  69. package/es/domain/entities/Message/index.js +6 -0
  70. package/es/domain/entities/Session/Session.js +35 -0
  71. package/es/domain/entities/Session/index.js +2 -0
  72. package/es/domain/entities/index.js +8 -2
  73. package/es/domain/enum/actor/ActorType.js +7 -0
  74. package/es/domain/enum/actor/index.js +2 -0
  75. package/es/domain/enum/bot/BotServiceType.js +7 -0
  76. package/es/domain/enum/bot/index.js +2 -0
  77. package/es/domain/enum/index.js +5 -0
  78. package/es/domain/enum/integrationServices/IntegrationServices.js +11 -0
  79. package/es/domain/enum/integrationServices/index.js +2 -0
  80. package/es/domain/enum/message/ActionSubType.js +6 -0
  81. package/es/domain/enum/message/ActionType.js +6 -0
  82. package/es/domain/enum/message/ExternalInfoAction.js +9 -0
  83. package/es/domain/enum/message/InfoAction.js +17 -0
  84. package/es/domain/enum/message/InfoSessionStatus.js +10 -0
  85. package/es/domain/enum/message/MessageContentType.js +6 -0
  86. package/es/domain/enum/message/MessageDirection.js +6 -0
  87. package/es/domain/enum/message/MessageStatus.js +11 -0
  88. package/es/domain/enum/message/MessageType.js +11 -0
  89. package/es/domain/enum/message/index.js +10 -0
  90. package/es/domain/enum/session/SessionReplyStatus.js +20 -0
  91. package/es/domain/enum/session/SessionStatus.js +9 -0
  92. package/es/domain/enum/session/index.js +3 -0
  93. package/es/domain/interfaces/IAdapter.js +6 -0
  94. package/es/domain/interfaces/index.js +3 -1
  95. package/es/domain/interfaces/repositories/agents/IAgentRepository.js +9 -0
  96. package/es/domain/interfaces/repositories/agents/index.js +2 -0
  97. package/es/domain/interfaces/repositories/bots/IBotRepository.js +9 -0
  98. package/es/domain/interfaces/repositories/bots/index.js +2 -0
  99. package/es/domain/interfaces/repositories/channels/IChannelAgentRepository.js +9 -0
  100. package/es/domain/interfaces/repositories/channels/IChannelRepository.js +9 -0
  101. package/es/domain/interfaces/repositories/channels/index.js +3 -0
  102. package/es/domain/interfaces/repositories/contacts/IContactRepository.js +9 -0
  103. package/es/domain/interfaces/repositories/contacts/index.js +2 -0
  104. package/es/domain/interfaces/repositories/index.js +6 -0
  105. package/es/domain/interfaces/repositories/messages/IMessageRepository.js +43 -0
  106. package/es/domain/interfaces/repositories/messages/index.js +2 -0
  107. package/es/domain/interfaces/repositories/sessions/ISessionRepository.js +39 -0
  108. package/es/domain/interfaces/repositories/sessions/index.js +2 -0
  109. package/es/domain/schema/actor/ActorSchema.js +33 -0
  110. package/es/domain/schema/actor/AgentSchema.js +33 -0
  111. package/es/domain/schema/actor/index.js +3 -0
  112. package/es/domain/schema/attachment/AttachmentSchema.js +27 -0
  113. package/es/domain/schema/attachment/index.js +2 -0
  114. package/es/domain/schema/bot/BotSchema.js +33 -0
  115. package/es/domain/schema/bot/index.js +2 -0
  116. package/es/domain/schema/channel/ChannelSchema.js +49 -0
  117. package/es/domain/schema/channel/index.js +2 -0
  118. package/es/domain/schema/contact/ContactSchema.js +27 -0
  119. package/es/domain/schema/contact/index.js +2 -0
  120. package/es/domain/schema/index.js +8 -0
  121. package/es/domain/schema/integrationService/IntegrationServiceSchema.js +31 -0
  122. package/es/domain/schema/integrationService/index.js +2 -0
  123. package/es/domain/schema/message/ActionSchema.js +18 -0
  124. package/es/domain/schema/message/ExternalInfoSchema.js +9 -0
  125. package/es/domain/schema/message/InfoSchema.js +24 -0
  126. package/es/domain/schema/message/LocationSchema.js +11 -0
  127. package/es/domain/schema/message/MessageSchema.js +112 -0
  128. package/es/domain/schema/message/MessageWithSessionSchema.js +10 -0
  129. package/es/domain/schema/message/index.js +7 -0
  130. package/es/domain/schema/session/SessionSchema.js +82 -0
  131. package/es/domain/schema/session/index.js +2 -0
  132. package/es/frameworks/managers/ModuleFactory.js +58 -0
  133. package/es/frameworks/managers/ModuleManager.js +44 -0
  134. package/es/frameworks/managers/index.js +2 -0
  135. package/es/frameworks/sdk/IMSDK.js +62 -0
  136. package/es/frameworks/sdk/agents/AgentSDK.js +30 -0
  137. package/es/frameworks/sdk/agents/index.js +2 -0
  138. package/es/frameworks/sdk/bots/BotSDK.js +30 -0
  139. package/es/frameworks/sdk/bots/index.js +2 -0
  140. package/es/frameworks/sdk/channels/ChannelSDK.js +37 -0
  141. package/es/frameworks/sdk/channels/index.js +2 -0
  142. package/es/frameworks/sdk/contacts/ContactSDK.js +30 -0
  143. package/es/frameworks/sdk/contacts/index.js +2 -0
  144. package/es/frameworks/sdk/index.js +2 -0
  145. package/es/frameworks/sdk/messages/MessageSDK.js +32 -0
  146. package/es/frameworks/sdk/messages/index.js +2 -0
  147. package/es/frameworks/sdk/sessions/SessionSDK.js +34 -0
  148. package/es/frameworks/sdk/sessions/index.js +2 -0
  149. package/es/index.js +9 -6
  150. package/es/infrastructure/adapters/agents/AgentAdapter.js +29 -0
  151. package/es/infrastructure/adapters/agents/index.js +2 -0
  152. package/es/infrastructure/adapters/attachments/AttachmentAdapter.js +24 -0
  153. package/es/infrastructure/adapters/attachments/index.js +2 -0
  154. package/es/infrastructure/adapters/bots/BotAdapter.js +25 -0
  155. package/es/infrastructure/adapters/bots/index.js +2 -0
  156. package/es/infrastructure/adapters/channels/ChannelAdapter.js +29 -0
  157. package/es/infrastructure/adapters/channels/ChannelAgentAdapter.js +30 -0
  158. package/es/infrastructure/adapters/channels/index.js +3 -0
  159. package/es/infrastructure/adapters/contacts/ContactAdapter.js +24 -0
  160. package/es/infrastructure/adapters/contacts/index.js +2 -0
  161. package/es/infrastructure/adapters/index.js +7 -0
  162. package/es/infrastructure/adapters/messages/MessageAdapter.js +41 -0
  163. package/es/infrastructure/adapters/messages/MessageWithSessionAdapter.js +23 -0
  164. package/es/infrastructure/adapters/messages/index.js +2 -0
  165. package/es/infrastructure/adapters/sessions/SessionAdapter.js +36 -0
  166. package/es/infrastructure/adapters/sessions/index.js +2 -0
  167. package/es/infrastructure/api/BaseAPI.js +92 -0
  168. package/es/infrastructure/api/agents/AgentAPI.js +21 -0
  169. package/es/infrastructure/api/agents/index.js +2 -0
  170. package/es/infrastructure/api/bots/BotAPI.js +21 -0
  171. package/es/infrastructure/api/bots/index.js +2 -0
  172. package/es/infrastructure/api/channels/ChannelAPI.js +21 -0
  173. package/es/infrastructure/api/channels/ChannelAgentAPI.js +29 -0
  174. package/es/infrastructure/api/channels/index.js +3 -0
  175. package/es/infrastructure/api/contacts/ContactAPI.js +21 -0
  176. package/es/infrastructure/api/contacts/index.js +2 -0
  177. package/es/infrastructure/api/index.js +6 -0
  178. package/es/infrastructure/api/messages/MessageAPI.js +91 -0
  179. package/es/infrastructure/api/messages/index.js +2 -0
  180. package/es/infrastructure/api/registry/agents/agentAPIRegistry.js +12 -0
  181. package/es/infrastructure/api/registry/agents/constructAgentEndPoint.js +10 -0
  182. package/es/infrastructure/api/registry/agents/index.js +2 -0
  183. package/es/infrastructure/api/registry/bots/botAPIRegistry.js +12 -0
  184. package/es/infrastructure/api/registry/bots/constructBotEndPoint.js +10 -0
  185. package/es/infrastructure/api/registry/bots/index.js +2 -0
  186. package/es/infrastructure/api/registry/channels/channelAPIRegistry.js +16 -0
  187. package/es/infrastructure/api/registry/channels/channelAgentAPIRegistry.js +12 -0
  188. package/es/infrastructure/api/registry/channels/constructChannelEndPoint.js +10 -0
  189. package/es/infrastructure/api/registry/channels/index.js +2 -0
  190. package/es/infrastructure/api/registry/contacts/constructContactEndPoint.js +10 -0
  191. package/es/infrastructure/api/registry/contacts/contactAPIRegistry.js +12 -0
  192. package/es/infrastructure/api/registry/contacts/index.js +2 -0
  193. package/es/infrastructure/api/registry/createAPIRegistry.js +7 -0
  194. package/es/infrastructure/api/registry/createBaseUrl.js +3 -0
  195. package/es/infrastructure/api/registry/getRegistryConfig.js +26 -0
  196. package/es/infrastructure/api/registry/index.js +2 -0
  197. package/es/infrastructure/api/registry/messages/constructMessageEndPoint.js +4 -0
  198. package/es/infrastructure/api/registry/messages/index.js +2 -0
  199. package/es/infrastructure/api/registry/messages/messageAPIRegistry.js +57 -0
  200. package/es/infrastructure/api/registry/sessions/constructSessionEndPoint.js +10 -0
  201. package/es/infrastructure/api/registry/sessions/index.js +2 -0
  202. package/es/infrastructure/api/registry/sessions/sessionAPIRegistry.js +46 -0
  203. package/es/infrastructure/api/sessions/SessionAPI.js +81 -0
  204. package/es/infrastructure/api/sessions/index.js +2 -0
  205. package/es/infrastructure/config/configRegistry.js +27 -0
  206. package/es/infrastructure/config/index.js +2 -0
  207. package/es/infrastructure/repositories/agents/AgentRepository.js +27 -0
  208. package/es/infrastructure/repositories/agents/index.js +2 -0
  209. package/es/infrastructure/repositories/bots/BotRepository.js +27 -0
  210. package/es/infrastructure/repositories/bots/index.js +2 -0
  211. package/es/infrastructure/repositories/channels/ChannelAgentRepository.js +27 -0
  212. package/es/infrastructure/repositories/channels/ChannelRepository.js +27 -0
  213. package/es/infrastructure/repositories/channels/index.js +3 -0
  214. package/es/infrastructure/repositories/contacts/ContactRepository.js +27 -0
  215. package/es/infrastructure/repositories/contacts/index.js +2 -0
  216. package/es/infrastructure/repositories/index.js +6 -0
  217. package/es/infrastructure/repositories/messages/MessageRepository.js +72 -0
  218. package/es/infrastructure/repositories/messages/index.js +2 -0
  219. package/es/infrastructure/repositories/sessions/SessionRepository.js +67 -0
  220. package/es/infrastructure/repositories/sessions/index.js +2 -0
  221. package/package.json +4 -1
  222. package/es/domain/entities/Actor/ActorType.js +0 -6
  223. package/es/domain/interfaces/channels/IChannelAgent.js +0 -6
  224. package/es/domain/interfaces/channels/index.js +0 -2
  225. package/es/domain/services/channels/ChannelAgentService.js +0 -14
  226. package/es/domain/services/channels/index.js +0 -2
  227. package/es/domain/services/index.js +0 -1
  228. /package/es/{domain → core}/errors/ValidationError.js +0 -0
@@ -0,0 +1,12 @@
1
+ import { HTTP_METHODS } from "../../../../core/constants";
2
+ import { getAgentsRequest } from "../../../../domain/dto";
3
+ import createAPIRegistry from "../createAPIRegistry";
4
+ import constructAgentEndPoint from "./constructAgentEndPoint";
5
+
6
+ function getAgents() {
7
+ return createAPIRegistry(constructAgentEndPoint(), HTTP_METHODS.GET, getAgentsRequest());
8
+ }
9
+
10
+ export default {
11
+ getAgents
12
+ };
@@ -0,0 +1,10 @@
1
+ import createBaseUrl from "../createBaseUrl";
2
+ export default function constructAgentEndPoint(extra) {
3
+ const base = '/users';
4
+
5
+ if (extra) {
6
+ return createBaseUrl(base + extra);
7
+ }
8
+
9
+ return createBaseUrl(base);
10
+ }
@@ -0,0 +1,2 @@
1
+ import agentAPIRegistry from "./agentAPIRegistry";
2
+ export { agentAPIRegistry };
@@ -0,0 +1,12 @@
1
+ import { HTTP_METHODS } from "../../../../core/constants";
2
+ import { getBotsRequest } from "../../../../domain/dto";
3
+ import createAPIRegistry from "../createAPIRegistry";
4
+ import constructBotEndPoint from "./constructBotEndPoint";
5
+
6
+ function getBots() {
7
+ return createAPIRegistry(constructBotEndPoint(), HTTP_METHODS.GET, getBotsRequest());
8
+ }
9
+
10
+ export default {
11
+ getBots
12
+ };
@@ -0,0 +1,10 @@
1
+ import createBaseUrl from "../createBaseUrl";
2
+ export default function constructBotEndPoint(extra) {
3
+ const base = '/bots';
4
+
5
+ if (extra) {
6
+ return createBaseUrl(base + extra);
7
+ }
8
+
9
+ return createBaseUrl(base);
10
+ }
@@ -0,0 +1,2 @@
1
+ import botAPIRegistry from "./botAPIRegistry";
2
+ export { botAPIRegistry };
@@ -0,0 +1,16 @@
1
+ import { HTTP_METHODS } from "../../../../core/constants";
2
+ import { getChannelsRequest } from "../../../../domain/dto";
3
+ import createAPIRegistry from "../createAPIRegistry";
4
+ import channelAgentAPIRegistry from "./channelAgentAPIRegistry";
5
+ import constructChannelEndPoint from "./constructChannelEndPoint";
6
+
7
+ function getChannels() {
8
+ return createAPIRegistry(constructChannelEndPoint(), HTTP_METHODS.GET, getChannelsRequest());
9
+ }
10
+
11
+ const channelAPIRegistry = {
12
+ getChannels,
13
+ agents: { ...channelAgentAPIRegistry
14
+ }
15
+ };
16
+ export default channelAPIRegistry;
@@ -0,0 +1,12 @@
1
+ import { HTTP_METHODS } from "../../../../core/constants";
2
+ import { getChannelAgentsRequest } from "../../../../domain/dto";
3
+ import createAPIRegistry from "../createAPIRegistry";
4
+ import constructChannelEndPoint from "./constructChannelEndPoint";
5
+
6
+ function getAgents() {
7
+ return createAPIRegistry(constructChannelEndPoint('/:channelId/agents'), HTTP_METHODS.GET, getChannelAgentsRequest());
8
+ }
9
+
10
+ export default {
11
+ getAgents
12
+ };
@@ -0,0 +1,10 @@
1
+ import createBaseUrl from "../createBaseUrl";
2
+ export default function constructChannelEndPoint(extra) {
3
+ const base = '/channels';
4
+
5
+ if (extra) {
6
+ return createBaseUrl(base + extra);
7
+ }
8
+
9
+ return createBaseUrl(base);
10
+ }
@@ -0,0 +1,2 @@
1
+ import channelAPIRegistry from "./channelAPIRegistry";
2
+ export { channelAPIRegistry };
@@ -0,0 +1,10 @@
1
+ import createBaseUrl from "../createBaseUrl";
2
+ export default function constructContactEndPoint(extra) {
3
+ const base = '/contacts';
4
+
5
+ if (extra) {
6
+ return createBaseUrl(base + extra);
7
+ }
8
+
9
+ return createBaseUrl(base);
10
+ }
@@ -0,0 +1,12 @@
1
+ import { HTTP_METHODS } from "../../../../core/constants";
2
+ import { getContactsRequest } from "../../../../domain/dto";
3
+ import createAPIRegistry from "../createAPIRegistry";
4
+ import constructContactEndPoint from "./constructContactEndPoint";
5
+
6
+ function getContacts() {
7
+ return createAPIRegistry(constructContactEndPoint(), HTTP_METHODS.GET, getContactsRequest());
8
+ }
9
+
10
+ export default {
11
+ getContacts
12
+ };
@@ -0,0 +1,2 @@
1
+ import contactAPIRegistry from "./contactAPIRegistry";
2
+ export { contactAPIRegistry };
@@ -0,0 +1,7 @@
1
+ export default function createAPIRegistry(endpoint, method, requestDefinition) {
2
+ return {
3
+ endpoint,
4
+ method,
5
+ ...requestDefinition
6
+ };
7
+ }
@@ -0,0 +1,3 @@
1
+ export default function createBaseUrl(path) {
2
+ return `/api/v1${path}`;
3
+ }
@@ -0,0 +1,26 @@
1
+ import selectn from 'selectn';
2
+ import { channelAPIRegistry } from "./channels";
3
+ import { sessionAPIRegistry } from "./sessions";
4
+ import { botAPIRegistry } from "./bots";
5
+ import { messageAPIRegistry } from "./messages";
6
+ import { agentAPIRegistry } from "./agents";
7
+ import { contactAPIRegistry } from "./contacts";
8
+ import { ModuleNames } from "../../../core/constants";
9
+ const APIRegistry = {
10
+ [ModuleNames.CHANNELS]: channelAPIRegistry,
11
+ [ModuleNames.SESSIONS]: sessionAPIRegistry,
12
+ [ModuleNames.BOTS]: botAPIRegistry,
13
+ [ModuleNames.MESSAGES]: messageAPIRegistry,
14
+ [ModuleNames.AGENTS]: agentAPIRegistry,
15
+ [ModuleNames.CONTACTS]: contactAPIRegistry
16
+ };
17
+ export default function getRegistryConfig(module, operation) {
18
+ const moduleConfig = selectn(module, APIRegistry);
19
+
20
+ if (!moduleConfig) {
21
+ return null;
22
+ }
23
+
24
+ const operationConfig = moduleConfig[operation];
25
+ return operationConfig ? operationConfig() : null;
26
+ }
@@ -0,0 +1,2 @@
1
+ import getRegistryConfig from "./getRegistryConfig";
2
+ export { getRegistryConfig };
@@ -0,0 +1,4 @@
1
+ import constructSessionEndPoint from "../sessions/constructSessionEndPoint";
2
+ export default function constructMessageEndPoint(extra) {
3
+ return constructSessionEndPoint(extra);
4
+ }
@@ -0,0 +1,2 @@
1
+ import messageAPIRegistry from "./messageAPIRegistry";
2
+ export { messageAPIRegistry };
@@ -0,0 +1,57 @@
1
+ import { HTTP_METHODS } from "../../../../core/constants";
2
+ import { deleteMessageRequest, getFullContentRequest, getMessagesRequest, initiateSessionRequest, resendMessageRequest, sendAttachmentRequest, sendMessageRequest, searchMessagesRequest } from "../../../../domain/dto";
3
+ import constructChannelEndPoint from "../channels/constructChannelEndPoint";
4
+ import constructMessageEndPoint from "./constructMessageEndPoint";
5
+ import createAPIRegistry from "../createAPIRegistry";
6
+ import createBaseUrl from "../createBaseUrl";
7
+ const SINGLE_SESSION_URL = '/:sessionId';
8
+ const MESSAGES_URL = `${SINGLE_SESSION_URL}/messages`;
9
+ const SINGLE_MESSAGE_URL = `${MESSAGES_URL}/:messageId`;
10
+ const FULL_CONTENT_URL = `${SINGLE_MESSAGE_URL}/fullContent`;
11
+ const RESEND_MESSAGE_URL = `${SINGLE_MESSAGE_URL}/resend`;
12
+ const ATTACHMENTS_URL = `${SINGLE_SESSION_URL}/attachments`;
13
+ const INITIATE_SESSION_URL = '/:channelId/initiateSession';
14
+ const SEARCH_MESSAGES_URL = '/messages/search';
15
+
16
+ function getMessages() {
17
+ return createAPIRegistry(constructMessageEndPoint(MESSAGES_URL), HTTP_METHODS.GET, getMessagesRequest());
18
+ }
19
+
20
+ function getFullContent() {
21
+ return createAPIRegistry(constructMessageEndPoint(FULL_CONTENT_URL), HTTP_METHODS.GET, getFullContentRequest());
22
+ }
23
+
24
+ function sendMessage() {
25
+ return createAPIRegistry(constructMessageEndPoint(MESSAGES_URL), HTTP_METHODS.POST, sendMessageRequest());
26
+ }
27
+
28
+ function sendAttachment() {
29
+ return createAPIRegistry(constructMessageEndPoint(ATTACHMENTS_URL), HTTP_METHODS.POST, sendAttachmentRequest());
30
+ }
31
+
32
+ function resendMessage() {
33
+ return createAPIRegistry(constructMessageEndPoint(RESEND_MESSAGE_URL), HTTP_METHODS.POST, resendMessageRequest());
34
+ }
35
+
36
+ function deleteMessage() {
37
+ return createAPIRegistry(constructMessageEndPoint(SINGLE_MESSAGE_URL), HTTP_METHODS.DELETE, deleteMessageRequest());
38
+ }
39
+
40
+ function initiateSession() {
41
+ return createAPIRegistry(constructChannelEndPoint(INITIATE_SESSION_URL), HTTP_METHODS.POST, initiateSessionRequest());
42
+ }
43
+
44
+ function searchMessages() {
45
+ return createAPIRegistry(createBaseUrl(SEARCH_MESSAGES_URL), HTTP_METHODS.GET, searchMessagesRequest());
46
+ }
47
+
48
+ export default {
49
+ getMessages,
50
+ getFullContent,
51
+ sendMessage,
52
+ sendAttachment,
53
+ resendMessage,
54
+ deleteMessage,
55
+ initiateSession,
56
+ searchMessages
57
+ };
@@ -0,0 +1,10 @@
1
+ import createBaseUrl from "../createBaseUrl";
2
+ export default function constructSessionEndPoint(extra) {
3
+ const base = '/sessions';
4
+
5
+ if (extra) {
6
+ return createBaseUrl(base + extra);
7
+ }
8
+
9
+ return createBaseUrl(base);
10
+ }
@@ -0,0 +1,2 @@
1
+ import sessionAPIRegistry from "./sessionAPIRegistry";
2
+ export { sessionAPIRegistry };
@@ -0,0 +1,46 @@
1
+ import { HTTP_METHODS } from "../../../../core/constants";
2
+ import { updateSessionAssigneeRequest, getSessionAttachmentsRequest, getSessionLastMessagesRequest, getSessionRequest, getSessionsRequest, markSessionAsReadRequest, updateSessionStatusRequest } from "../../../../domain/dto";
3
+ import createAPIRegistry from "../createAPIRegistry";
4
+ import constructSessionEndPoint from "./constructSessionEndPoint";
5
+ const SINGLE_SESSION_URL = '/:sessionId';
6
+ const SESSION_ATTACHMENTS_URL = `${SINGLE_SESSION_URL}/attachments`;
7
+ const SESSION_LAST_MESSAGE = '/lastMessages';
8
+ const MARK_AS_READ = `${SINGLE_SESSION_URL}/markAsRead`;
9
+
10
+ function updateAssignee() {
11
+ return createAPIRegistry(constructSessionEndPoint(SINGLE_SESSION_URL), HTTP_METHODS.PATCH, updateSessionAssigneeRequest());
12
+ }
13
+
14
+ function getSessions() {
15
+ return createAPIRegistry(constructSessionEndPoint(), HTTP_METHODS.GET, getSessionsRequest());
16
+ }
17
+
18
+ function getSession() {
19
+ return createAPIRegistry(constructSessionEndPoint(SINGLE_SESSION_URL), HTTP_METHODS.GET, getSessionRequest());
20
+ }
21
+
22
+ function getSessionAttachments() {
23
+ return createAPIRegistry(constructSessionEndPoint(SESSION_ATTACHMENTS_URL), HTTP_METHODS.GET, getSessionAttachmentsRequest());
24
+ }
25
+
26
+ function getSessionLastMessages() {
27
+ return createAPIRegistry(constructSessionEndPoint(SESSION_LAST_MESSAGE), HTTP_METHODS.GET, getSessionLastMessagesRequest());
28
+ }
29
+
30
+ function markSessionAsRead() {
31
+ return createAPIRegistry(constructSessionEndPoint(MARK_AS_READ), HTTP_METHODS.PATCH, markSessionAsReadRequest());
32
+ }
33
+
34
+ function updateSessionStatus() {
35
+ return createAPIRegistry(constructSessionEndPoint(SINGLE_SESSION_URL), HTTP_METHODS.PATCH, updateSessionStatusRequest());
36
+ }
37
+
38
+ export default {
39
+ updateAssignee,
40
+ getSessions,
41
+ getSession,
42
+ getSessionAttachments,
43
+ getSessionLastMessages,
44
+ markSessionAsRead,
45
+ updateSessionStatus
46
+ };
@@ -0,0 +1,81 @@
1
+ import { ModuleNames } from "../../../core/constants";
2
+ import { updateSessionAssigneeRequest, getSessionsRequest, getSessionRequest, getSessionAttachmentsRequest, getSessionLastMessagesRequest, markSessionAsReadRequest, updateSessionStatusRequest } from "../../../domain/dto";
3
+ import BaseAPI from "../BaseAPI";
4
+ export default class SessionAPI extends BaseAPI {
5
+ constructor() {
6
+ super({
7
+ module: ModuleNames.SESSIONS
8
+ });
9
+ }
10
+
11
+ async updateAssignee() {
12
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : updateSessionAssigneeRequest();
13
+ const operation = 'updateAssignee';
14
+ const httpRequest = await this.request({
15
+ request,
16
+ operation
17
+ });
18
+ return httpRequest;
19
+ }
20
+
21
+ async getSessions() {
22
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getSessionsRequest();
23
+ const operation = 'getSessions';
24
+ const httpRequest = await this.request({
25
+ request,
26
+ operation
27
+ });
28
+ return httpRequest;
29
+ }
30
+
31
+ async getSession() {
32
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getSessionRequest();
33
+ const operation = 'getSession';
34
+ const httpRequest = await this.request({
35
+ request,
36
+ operation
37
+ });
38
+ return httpRequest;
39
+ }
40
+
41
+ async getSessionAttachments() {
42
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getSessionAttachmentsRequest();
43
+ const operation = 'getSessionAttachments';
44
+ const httpRequest = await this.request({
45
+ request,
46
+ operation
47
+ });
48
+ return httpRequest;
49
+ }
50
+
51
+ async getSessionLastMessages() {
52
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getSessionLastMessagesRequest();
53
+ const operation = 'getSessionLastMessages';
54
+ const httpRequest = await this.request({
55
+ request,
56
+ operation
57
+ });
58
+ return httpRequest;
59
+ }
60
+
61
+ async markSessionAsRead() {
62
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : markSessionAsReadRequest();
63
+ const operation = 'markSessionAsRead';
64
+ const httpRequest = await this.request({
65
+ request,
66
+ operation
67
+ });
68
+ return httpRequest;
69
+ }
70
+
71
+ async updateSessionStatus() {
72
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : updateSessionStatusRequest();
73
+ const operation = 'updateSessionStatus';
74
+ const httpRequest = await this.request({
75
+ request,
76
+ operation
77
+ });
78
+ return httpRequest;
79
+ }
80
+
81
+ }
@@ -0,0 +1,2 @@
1
+ import SessionAPI from "./SessionAPI";
2
+ export { SessionAPI };
@@ -0,0 +1,27 @@
1
+ class ConfigRegistry {
2
+ constructor() {
3
+ this.baseURL = null;
4
+ this.httpClient = null;
5
+ }
6
+
7
+ setConfig(_ref) {
8
+ let {
9
+ baseURL,
10
+ httpClient
11
+ } = _ref;
12
+ this.baseURL = baseURL;
13
+ this.httpClient = httpClient;
14
+ }
15
+
16
+ getBaseURL() {
17
+ return this.baseURL;
18
+ }
19
+
20
+ getHttpClient() {
21
+ return this.httpClient;
22
+ }
23
+
24
+ }
25
+
26
+ const configRegistry = new ConfigRegistry();
27
+ export default configRegistry;
@@ -0,0 +1,2 @@
1
+ import configRegistry from "./configRegistry";
2
+ export { configRegistry };
@@ -0,0 +1,27 @@
1
+ import { ResponseUtils } from "../../../core/utils";
2
+ import { IAgentRepository } from "../../../domain/interfaces/repositories";
3
+ import { AgentAdapter } from "../../adapters";
4
+ import { AgentAPI } from "../../api";
5
+ export default class AgentRepository extends IAgentRepository {
6
+ constructor(_ref) {
7
+ let {
8
+ agentAPI,
9
+ agentAdapter
10
+ } = _ref;
11
+ super();
12
+ this.agentAPI = agentAPI || new AgentAPI();
13
+ this.agentAdapter = agentAdapter || new AgentAdapter();
14
+ }
15
+
16
+ async getAgents(request) {
17
+ const response = await this.agentAPI.getAgents(request);
18
+ return ResponseUtils.adaptListResponse(response, this.agentAdapter.adapt);
19
+ }
20
+
21
+ toJSON() {
22
+ return {
23
+ getAgents: this.getAgents.bind(this)
24
+ };
25
+ }
26
+
27
+ }
@@ -0,0 +1,2 @@
1
+ import AgentRepository from "./AgentRepository";
2
+ export { AgentRepository };
@@ -0,0 +1,27 @@
1
+ import { ResponseUtils } from "../../../core/utils";
2
+ import { IBotRepository } from "../../../domain/interfaces/repositories";
3
+ import { BotAdapter } from "../../adapters";
4
+ import { BotAPI } from "../../api";
5
+ export default class BotRepository extends IBotRepository {
6
+ constructor(_ref) {
7
+ let {
8
+ botAPI,
9
+ botAdapter
10
+ } = _ref;
11
+ super();
12
+ this.botAPI = botAPI || new BotAPI();
13
+ this.botAdapter = botAdapter || new BotAdapter();
14
+ }
15
+
16
+ async getBots(request) {
17
+ const response = await this.botAPI.getBots(request);
18
+ return ResponseUtils.adaptListResponse(response, this.botAdapter.adapt);
19
+ }
20
+
21
+ toJSON() {
22
+ return {
23
+ getBots: this.getBots.bind(this)
24
+ };
25
+ }
26
+
27
+ }
@@ -0,0 +1,2 @@
1
+ import BotRepository from "./BotRepository";
2
+ export { BotRepository };
@@ -0,0 +1,27 @@
1
+ import { ResponseUtils } from "../../../core/utils";
2
+ import { IChannelAgentRepository } from "../../../domain/interfaces/repositories";
3
+ import { ChannelAgentAdapter } from "../../adapters";
4
+ import { ChannelAgentAPI } from "../../api";
5
+ export default class ChannelAgentRepository extends IChannelAgentRepository {
6
+ constructor(_ref) {
7
+ let {
8
+ channelAgentAPI,
9
+ channelAgentAdapter
10
+ } = _ref;
11
+ super();
12
+ this.channelAgentAPI = channelAgentAPI || new ChannelAgentAPI();
13
+ this.channelAgentAdapter = channelAgentAdapter || new ChannelAgentAdapter();
14
+ }
15
+
16
+ async getAgents(request) {
17
+ const response = await this.channelAgentAPI.getAgents(request);
18
+ return ResponseUtils.adaptListResponse(response, this.channelAgentAdapter.adapt);
19
+ }
20
+
21
+ toJSON() {
22
+ return {
23
+ getAgents: this.getAgents.bind(this)
24
+ };
25
+ }
26
+
27
+ }
@@ -0,0 +1,27 @@
1
+ import { ResponseUtils } from "../../../core/utils";
2
+ import { IChannelRepository } from "../../../domain/interfaces/repositories";
3
+ import { ChannelAdapter } from "../../adapters";
4
+ import { ChannelAPI } from "../../api";
5
+ export default class ChannelRepository extends IChannelRepository {
6
+ constructor() {
7
+ let {
8
+ channelAPI,
9
+ channelAdapter
10
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
11
+ super();
12
+ this.channelAPI = channelAPI || new ChannelAPI();
13
+ this.channelAdapter = channelAdapter || new ChannelAdapter();
14
+ }
15
+
16
+ async getChannels(request) {
17
+ const response = await this.channelAPI.getChannels(request);
18
+ return ResponseUtils.adaptListResponse(response, this.channelAdapter.adapt);
19
+ }
20
+
21
+ toJSON() {
22
+ return {
23
+ getChannels: this.getChannels.bind(this)
24
+ };
25
+ }
26
+
27
+ }
@@ -0,0 +1,3 @@
1
+ import ChannelAgentRepository from "./ChannelAgentRepository";
2
+ import ChannelRepository from "./ChannelRepository";
3
+ export { ChannelAgentRepository, ChannelRepository };
@@ -0,0 +1,27 @@
1
+ import { ResponseUtils } from "../../../core/utils";
2
+ import { IContactRepository } from "../../../domain/interfaces/repositories";
3
+ import { ContactAdapter } from "../../adapters";
4
+ import { ContactAPI } from "../../api";
5
+ export default class ContactRepository extends IContactRepository {
6
+ constructor(_ref) {
7
+ let {
8
+ contactAPI,
9
+ contactAdapter
10
+ } = _ref;
11
+ super();
12
+ this.contactAPI = contactAPI || new ContactAPI();
13
+ this.contactAdapter = contactAdapter || new ContactAdapter();
14
+ }
15
+
16
+ async getContacts(request) {
17
+ const response = await this.contactAPI.getContacts(request);
18
+ return ResponseUtils.adaptListResponse(response, this.contactAdapter.adapt);
19
+ }
20
+
21
+ toJSON() {
22
+ return {
23
+ getContacts: this.getContacts.bind(this)
24
+ };
25
+ }
26
+
27
+ }
@@ -0,0 +1,2 @@
1
+ import ContactRepository from "./ContactRepository";
2
+ export { ContactRepository };
@@ -0,0 +1,6 @@
1
+ export * from "./channels";
2
+ export * from "./sessions";
3
+ export * from "./bots";
4
+ export * from "./messages";
5
+ export * from "./agents";
6
+ export * from "./contacts";