@zohoim/client-sdk 1.0.0-poc9 → 1.0.0-poc91

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 (252) 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/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 +61 -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 +6 -1
  16. package/es/core/constants/ResponseTypes.js +6 -0
  17. package/es/core/constants/index.js +5 -3
  18. package/es/core/errors/index.js +2 -2
  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 +74 -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/getBotRequest.js +9 -0
  26. package/es/domain/dto/bots/getBotsRequest.js +15 -0
  27. package/es/domain/dto/bots/index.js +2 -0
  28. package/es/domain/dto/channels/agents/getChannelAgentsRequest.js +13 -0
  29. package/es/domain/dto/channels/agents/index.js +1 -0
  30. package/es/domain/dto/channels/getChannelsRequest.js +23 -0
  31. package/es/domain/dto/channels/index.js +3 -0
  32. package/es/domain/dto/contacts/getContactsRequest.js +11 -0
  33. package/es/domain/dto/contacts/index.js +1 -0
  34. package/es/domain/dto/index.js +6 -0
  35. package/es/domain/dto/messages/deleteMessageRequest.js +14 -0
  36. package/es/domain/dto/messages/getFullContentRequest.js +14 -0
  37. package/es/domain/dto/messages/getMessageRequest.js +14 -0
  38. package/es/domain/dto/messages/getMessagesRequest.js +20 -0
  39. package/es/domain/dto/messages/index.js +9 -0
  40. package/es/domain/dto/messages/initiateSessionRequest.js +22 -0
  41. package/es/domain/dto/messages/resendMessageRequest.js +14 -0
  42. package/es/domain/dto/messages/searchMessagesRequest.js +22 -0
  43. package/es/domain/dto/messages/sendAttachmentRequest.js +19 -0
  44. package/es/domain/dto/messages/sendMessageRequest.js +19 -0
  45. package/es/domain/dto/sessions/getSessionAttachmentsRequest.js +13 -0
  46. package/es/domain/dto/sessions/getSessionLastMessagesRequest.js +13 -0
  47. package/es/domain/dto/sessions/getSessionRequest.js +13 -0
  48. package/es/domain/dto/sessions/getSessionsRequest.js +26 -0
  49. package/es/domain/dto/sessions/index.js +7 -0
  50. package/es/domain/dto/sessions/markSessionAsReadRequest.js +17 -0
  51. package/es/domain/dto/sessions/updateSessionAssigneeRequest.js +12 -0
  52. package/es/domain/dto/sessions/updateSessionStatusRequest.js +17 -0
  53. package/es/domain/entities/Actor/Actor.js +37 -0
  54. package/es/domain/entities/Actor/index.js +2 -2
  55. package/es/domain/entities/Agent/Agent.js +17 -102
  56. package/es/domain/entities/Agent/index.js +1 -1
  57. package/es/domain/entities/Attachment/Attachment.js +23 -0
  58. package/es/domain/entities/Attachment/index.js +2 -0
  59. package/es/domain/entities/Bot/Bot.js +23 -0
  60. package/es/domain/entities/Bot/index.js +2 -0
  61. package/es/domain/entities/Channel/Channel.js +38 -0
  62. package/es/domain/entities/Channel/index.js +2 -0
  63. package/es/domain/entities/Contact/Contact.js +22 -0
  64. package/es/domain/entities/Contact/index.js +2 -0
  65. package/es/domain/entities/IntegrationService/IntegrationService.js +33 -0
  66. package/es/domain/entities/IntegrationService/index.js +2 -0
  67. package/es/domain/entities/Message/Action.js +24 -0
  68. package/es/domain/entities/Message/ExternalInfo.js +26 -0
  69. package/es/domain/entities/Message/Info.js +34 -0
  70. package/es/domain/entities/Message/Location.js +18 -0
  71. package/es/domain/entities/Message/Message.js +114 -0
  72. package/es/domain/entities/Message/MessageWithSession.js +21 -0
  73. package/es/domain/entities/Message/index.js +6 -0
  74. package/es/domain/entities/Session/Session.js +76 -0
  75. package/es/domain/entities/Session/index.js +2 -0
  76. package/es/domain/entities/index.js +9 -2
  77. package/es/domain/enum/actor/ActorType.js +7 -0
  78. package/es/domain/enum/actor/index.js +2 -0
  79. package/es/domain/enum/attachment/AttachmentStatus.js +5 -0
  80. package/es/domain/enum/attachment/index.js +2 -0
  81. package/es/domain/enum/bot/BotServiceType.js +7 -0
  82. package/es/domain/enum/bot/index.js +2 -0
  83. package/es/domain/enum/index.js +6 -0
  84. package/es/domain/enum/integrationServices/IntegrationServices.js +11 -0
  85. package/es/domain/enum/integrationServices/index.js +2 -0
  86. package/es/domain/enum/message/ActionSubType.js +6 -0
  87. package/es/domain/enum/message/ActionType.js +6 -0
  88. package/es/domain/enum/message/ExternalInfoAction.js +9 -0
  89. package/es/domain/enum/message/InfoAction.js +17 -0
  90. package/es/domain/enum/message/InfoSessionStatus.js +10 -0
  91. package/es/domain/enum/message/MessageContentType.js +6 -0
  92. package/es/domain/enum/message/MessageDirection.js +6 -0
  93. package/es/domain/enum/message/MessageStatus.js +11 -0
  94. package/es/domain/enum/message/MessageType.js +15 -0
  95. package/es/domain/enum/message/index.js +10 -0
  96. package/es/domain/enum/session/SessionReplyStatus.js +21 -0
  97. package/es/domain/enum/session/SessionStatus.js +10 -0
  98. package/es/domain/enum/session/index.js +3 -0
  99. package/es/domain/interfaces/IAdapter.js +6 -0
  100. package/es/domain/interfaces/index.js +3 -1
  101. package/es/domain/interfaces/repositories/agents/IAgentRepository.js +17 -0
  102. package/es/domain/interfaces/repositories/agents/index.js +2 -0
  103. package/es/domain/interfaces/repositories/bots/IBotRepository.js +23 -0
  104. package/es/domain/interfaces/repositories/bots/index.js +2 -0
  105. package/es/domain/interfaces/repositories/channels/IChannelAgentRepository.js +17 -0
  106. package/es/domain/interfaces/repositories/channels/IChannelRepository.js +17 -0
  107. package/es/domain/interfaces/repositories/channels/index.js +3 -0
  108. package/es/domain/interfaces/repositories/contacts/IContactRepository.js +17 -0
  109. package/es/domain/interfaces/repositories/contacts/index.js +2 -0
  110. package/es/domain/interfaces/repositories/index.js +6 -0
  111. package/es/domain/interfaces/repositories/messages/IMessageRepository.js +57 -0
  112. package/es/domain/interfaces/repositories/messages/index.js +2 -0
  113. package/es/domain/interfaces/repositories/sessions/ISessionRepository.js +47 -0
  114. package/es/domain/interfaces/repositories/sessions/index.js +2 -0
  115. package/es/domain/schema/actor/ActorSchema.js +37 -0
  116. package/es/domain/schema/actor/AgentSchema.js +45 -0
  117. package/es/domain/schema/actor/index.js +3 -0
  118. package/es/domain/schema/attachment/AttachmentSchema.js +33 -0
  119. package/es/domain/schema/attachment/index.js +2 -0
  120. package/es/domain/schema/bot/BotSchema.js +33 -0
  121. package/es/domain/schema/bot/index.js +2 -0
  122. package/es/domain/schema/channel/ChannelSchema.js +49 -0
  123. package/es/domain/schema/channel/index.js +2 -0
  124. package/es/domain/schema/contact/ContactSchema.js +27 -0
  125. package/es/domain/schema/contact/index.js +2 -0
  126. package/es/domain/schema/index.js +8 -0
  127. package/es/domain/schema/integrationService/IntegrationServiceSchema.js +31 -0
  128. package/es/domain/schema/integrationService/index.js +2 -0
  129. package/es/domain/schema/message/ActionSchema.js +18 -0
  130. package/es/domain/schema/message/ExternalInfoSchema.js +9 -0
  131. package/es/domain/schema/message/InfoSchema.js +24 -0
  132. package/es/domain/schema/message/LocationSchema.js +11 -0
  133. package/es/domain/schema/message/MessageSchema.js +116 -0
  134. package/es/domain/schema/message/MessageWithSessionSchema.js +10 -0
  135. package/es/domain/schema/message/index.js +7 -0
  136. package/es/domain/schema/session/SessionSchema.js +82 -0
  137. package/es/domain/schema/session/index.js +2 -0
  138. package/es/frameworks/managers/ModuleFactory.js +58 -0
  139. package/es/{infrastructure → frameworks}/managers/ModuleManager.js +11 -13
  140. package/es/frameworks/managers/index.js +2 -0
  141. package/es/frameworks/sdk/IMSDK.js +62 -0
  142. package/es/frameworks/sdk/agents/AgentSDK.js +30 -0
  143. package/es/frameworks/sdk/agents/index.js +2 -0
  144. package/es/frameworks/sdk/bots/BotSDK.js +30 -0
  145. package/es/frameworks/sdk/bots/index.js +2 -0
  146. package/es/frameworks/sdk/channels/ChannelSDK.js +37 -0
  147. package/es/frameworks/sdk/channels/index.js +2 -0
  148. package/es/frameworks/sdk/contacts/ContactSDK.js +30 -0
  149. package/es/frameworks/sdk/contacts/index.js +2 -0
  150. package/es/frameworks/sdk/index.js +2 -0
  151. package/es/frameworks/sdk/messages/MessageSDK.js +32 -0
  152. package/es/frameworks/sdk/messages/index.js +2 -0
  153. package/es/frameworks/sdk/sessions/SessionSDK.js +34 -0
  154. package/es/frameworks/sdk/sessions/index.js +2 -0
  155. package/es/index.js +12 -7
  156. package/es/infrastructure/adapters/agents/AgentAdapter.js +28 -0
  157. package/es/infrastructure/adapters/agents/index.js +2 -0
  158. package/es/infrastructure/adapters/attachments/AttachmentAdapter.js +25 -0
  159. package/es/infrastructure/adapters/attachments/index.js +2 -0
  160. package/es/infrastructure/adapters/bots/BotAdapter.js +25 -0
  161. package/es/infrastructure/adapters/bots/index.js +2 -0
  162. package/es/infrastructure/adapters/channels/ChannelAdapter.js +29 -0
  163. package/es/infrastructure/adapters/channels/ChannelAgentAdapter.js +27 -13
  164. package/es/infrastructure/adapters/channels/index.js +3 -2
  165. package/es/infrastructure/adapters/contacts/ContactAdapter.js +24 -0
  166. package/es/infrastructure/adapters/contacts/index.js +2 -0
  167. package/es/infrastructure/adapters/index.js +7 -1
  168. package/es/infrastructure/adapters/messages/MessageAdapter.js +41 -0
  169. package/es/infrastructure/adapters/messages/MessageWithSessionAdapter.js +23 -0
  170. package/es/infrastructure/adapters/messages/index.js +2 -0
  171. package/es/infrastructure/adapters/sessions/SessionAdapter.js +36 -0
  172. package/es/infrastructure/adapters/sessions/index.js +2 -0
  173. package/es/infrastructure/api/BaseAPI.js +100 -0
  174. package/es/infrastructure/api/UrlBuilder.js +53 -0
  175. package/es/infrastructure/api/agents/AgentAPI.js +14 -0
  176. package/es/infrastructure/api/agents/index.js +2 -0
  177. package/es/infrastructure/api/bots/BotAPI.js +24 -0
  178. package/es/infrastructure/api/bots/index.js +2 -0
  179. package/es/infrastructure/api/channels/ChannelAPI.js +14 -0
  180. package/es/infrastructure/api/channels/ChannelAgentAPI.js +16 -19
  181. package/es/infrastructure/api/channels/index.js +3 -2
  182. package/es/infrastructure/api/contacts/ContactAPI.js +14 -0
  183. package/es/infrastructure/api/contacts/index.js +2 -0
  184. package/es/infrastructure/api/index.js +6 -1
  185. package/es/infrastructure/api/messages/MessageAPI.js +94 -0
  186. package/es/infrastructure/api/messages/index.js +2 -0
  187. package/es/infrastructure/api/registry/agents/agentAPIRegistry.js +12 -0
  188. package/es/infrastructure/api/registry/agents/constructAgentEndPoint.js +10 -0
  189. package/es/infrastructure/api/registry/agents/index.js +2 -0
  190. package/es/infrastructure/api/registry/bots/botAPIRegistry.js +17 -0
  191. package/es/infrastructure/api/registry/bots/constructBotEndPoint.js +10 -0
  192. package/es/infrastructure/api/registry/bots/index.js +2 -0
  193. package/es/infrastructure/api/registry/channels/channelAPIRegistry.js +16 -0
  194. package/es/infrastructure/api/registry/channels/channelAgentAPIRegistry.js +12 -0
  195. package/es/infrastructure/api/registry/channels/constructChannelEndPoint.js +10 -0
  196. package/es/infrastructure/api/registry/channels/index.js +2 -0
  197. package/es/infrastructure/api/registry/contacts/constructContactEndPoint.js +10 -0
  198. package/es/infrastructure/api/registry/contacts/contactAPIRegistry.js +12 -0
  199. package/es/infrastructure/api/registry/contacts/index.js +2 -0
  200. package/es/infrastructure/api/registry/createAPIRegistry.js +7 -0
  201. package/es/infrastructure/api/registry/createBaseUrl.js +3 -0
  202. package/es/infrastructure/api/registry/getRegistryConfig.js +26 -0
  203. package/es/infrastructure/api/registry/index.js +2 -0
  204. package/es/infrastructure/api/registry/messages/constructMessageEndPoint.js +4 -0
  205. package/es/infrastructure/api/registry/messages/index.js +2 -0
  206. package/es/infrastructure/api/registry/messages/messageAPIRegistry.js +62 -0
  207. package/es/infrastructure/api/registry/sessions/constructSessionEndPoint.js +10 -0
  208. package/es/infrastructure/api/registry/sessions/index.js +2 -0
  209. package/es/infrastructure/api/registry/sessions/sessionAPIRegistry.js +46 -0
  210. package/es/infrastructure/api/sessions/SessionAPI.js +74 -0
  211. package/es/infrastructure/api/sessions/index.js +2 -0
  212. package/es/infrastructure/config/configRegistry.js +27 -0
  213. package/es/infrastructure/config/index.js +2 -0
  214. package/es/infrastructure/repositories/agents/AgentRepository.js +49 -0
  215. package/es/infrastructure/repositories/agents/index.js +2 -0
  216. package/es/infrastructure/repositories/bots/BotRepository.js +58 -0
  217. package/es/infrastructure/repositories/bots/index.js +2 -0
  218. package/es/infrastructure/repositories/channels/ChannelAgentRepository.js +49 -0
  219. package/es/infrastructure/repositories/channels/ChannelRepository.js +49 -0
  220. package/es/infrastructure/repositories/channels/index.js +3 -0
  221. package/es/infrastructure/repositories/contacts/ContactRepository.js +49 -0
  222. package/es/infrastructure/repositories/contacts/index.js +2 -0
  223. package/es/infrastructure/repositories/index.js +6 -0
  224. package/es/infrastructure/repositories/messages/MessageRepository.js +119 -0
  225. package/es/infrastructure/repositories/messages/index.js +2 -0
  226. package/es/infrastructure/repositories/sessions/SessionRepository.js +105 -0
  227. package/es/infrastructure/repositories/sessions/index.js +2 -0
  228. package/package.json +4 -1
  229. package/es/config/urls/channels/index.js +0 -2
  230. package/es/config/urls/channels/urls-channel-agents.js +0 -11
  231. package/es/config/urls/index.js +0 -1
  232. package/es/core/constants/HttpMethods.js +0 -8
  233. package/es/domain/entities/Actor/ActorType.js +0 -6
  234. package/es/domain/interfaces/BaseAPI.js +0 -33
  235. package/es/domain/interfaces/channels/IChannelAgent.js +0 -10
  236. package/es/domain/interfaces/channels/index.js +0 -2
  237. package/es/domain/services/channels/ChannelAgentService.js +0 -27
  238. package/es/domain/services/channels/index.js +0 -2
  239. package/es/domain/services/index.js +0 -1
  240. package/es/infrastructure/adapters/BaseAdapter.js +0 -23
  241. package/es/infrastructure/interfaces/api/channels/agents/GetChannelAgentsRequest.js +0 -13
  242. package/es/infrastructure/interfaces/api/channels/agents/index.js +0 -2
  243. package/es/infrastructure/interfaces/api/channels/index.js +0 -1
  244. package/es/infrastructure/interfaces/api/index.js +0 -1
  245. package/es/infrastructure/interfaces/index.js +0 -1
  246. package/es/infrastructure/managers/ModuleFactory.js +0 -15
  247. package/es/infrastructure/managers/index.js +0 -2
  248. package/es/infrastructure/sdk/IMSDK.js +0 -25
  249. package/es/infrastructure/sdk/channels/ChannelAgentsSDK.js +0 -22
  250. package/es/infrastructure/sdk/channels/ChannelSDK.js +0 -19
  251. package/es/infrastructure/sdk/channels/index.js +0 -2
  252. package/es/infrastructure/sdk/index.js +0 -2
@@ -0,0 +1,21 @@
1
+ import { IAgentRepository } from "../../../domain/interfaces/repositories";
2
+ export default class AgentService extends IAgentRepository {
3
+ constructor(_ref) {
4
+ let {
5
+ agentRepository
6
+ } = _ref;
7
+ super();
8
+ this.agentRepository = agentRepository;
9
+ }
10
+
11
+ async getAgents(request) {
12
+ return this.agentRepository.getAgents(request);
13
+ }
14
+
15
+ toJSON() {
16
+ return {
17
+ getAgents: this.getAgents.bind(this)
18
+ };
19
+ }
20
+
21
+ }
@@ -0,0 +1,2 @@
1
+ import AgentService from "./AgentService";
2
+ export { AgentService };
@@ -0,0 +1,26 @@
1
+ import { IBotRepository } from "../../../domain/interfaces/repositories";
2
+ export default class BotService extends IBotRepository {
3
+ constructor(_ref) {
4
+ let {
5
+ botRepository
6
+ } = _ref;
7
+ super();
8
+ this.botRepository = botRepository;
9
+ }
10
+
11
+ async getBots(request) {
12
+ return this.botRepository.getBots(request);
13
+ }
14
+
15
+ async getBot(request) {
16
+ return this.botRepository.getBot(request);
17
+ }
18
+
19
+ toJSON() {
20
+ return {
21
+ getBots: this.getBots.bind(this),
22
+ getBot: this.getBot.bind(this)
23
+ };
24
+ }
25
+
26
+ }
@@ -0,0 +1,2 @@
1
+ import BotService from "./BotService";
2
+ export { BotService };
@@ -0,0 +1,21 @@
1
+ import { IChannelAgentRepository } from "../../../domain/interfaces/repositories";
2
+ export default class ChannelAgentService extends IChannelAgentRepository {
3
+ constructor(_ref) {
4
+ let {
5
+ channelAgentRepository
6
+ } = _ref;
7
+ super();
8
+ this.channelAgentRepository = channelAgentRepository;
9
+ }
10
+
11
+ async getAgents(request) {
12
+ return this.channelAgentRepository.getAgents(request);
13
+ }
14
+
15
+ toJSON() {
16
+ return {
17
+ getAgents: this.getAgents.bind(this)
18
+ };
19
+ }
20
+
21
+ }
@@ -0,0 +1,21 @@
1
+ import { IChannelRepository } from "../../../domain/interfaces/repositories";
2
+ export default class ChannelService extends IChannelRepository {
3
+ constructor(_ref) {
4
+ let {
5
+ channelRepository
6
+ } = _ref;
7
+ super();
8
+ this.channelRepository = channelRepository;
9
+ }
10
+
11
+ async getChannels(request) {
12
+ return this.channelRepository.getChannels(request);
13
+ }
14
+
15
+ toJSON() {
16
+ return {
17
+ getChannels: this.getChannels.bind(this)
18
+ };
19
+ }
20
+
21
+ }
@@ -0,0 +1,3 @@
1
+ import ChannelAgentService from "./ChannelAgentService";
2
+ import ChannelService from "./ChannelService";
3
+ export { ChannelService, ChannelAgentService };
@@ -0,0 +1,21 @@
1
+ import { IContactRepository } from "../../../domain/interfaces/repositories";
2
+ export default class ContactService extends IContactRepository {
3
+ constructor(_ref) {
4
+ let {
5
+ contactRepository
6
+ } = _ref;
7
+ super();
8
+ this.contactRepository = contactRepository;
9
+ }
10
+
11
+ async getContacts(request) {
12
+ return this.contactRepository.getContacts(request);
13
+ }
14
+
15
+ toJSON() {
16
+ return {
17
+ getContacts: this.getContacts.bind(this)
18
+ };
19
+ }
20
+
21
+ }
@@ -0,0 +1,2 @@
1
+ import ContactService from "./ContactService";
2
+ export { ContactService };
@@ -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";
@@ -0,0 +1,61 @@
1
+ import { IMessageRepository } from "../../../domain/interfaces/repositories";
2
+ export default class MessageService extends IMessageRepository {
3
+ constructor(_ref) {
4
+ let {
5
+ messageRepository
6
+ } = _ref;
7
+ super();
8
+ this.messageRepository = messageRepository;
9
+ }
10
+
11
+ async getMessages(request) {
12
+ return this.messageRepository.getMessages(request);
13
+ }
14
+
15
+ async getMessage(request) {
16
+ return this.messageRepository.getMessage(request);
17
+ }
18
+
19
+ async getFullContent(request) {
20
+ return this.messageRepository.getFullContent(request);
21
+ }
22
+
23
+ async sendMessage(request) {
24
+ return this.messageRepository.sendMessage(request);
25
+ }
26
+
27
+ async sendAttachment(request) {
28
+ return this.messageRepository.sendAttachment(request);
29
+ }
30
+
31
+ async resendMessage(request) {
32
+ return this.messageRepository.resendMessage(request);
33
+ }
34
+
35
+ async deleteMessage(request) {
36
+ return this.messageRepository.deleteMessage(request);
37
+ }
38
+
39
+ async initiateSession(request) {
40
+ return this.messageRepository.initiateSession(request);
41
+ }
42
+
43
+ async searchMessages(request) {
44
+ return this.messageRepository.searchMessages(request);
45
+ }
46
+
47
+ toJSON() {
48
+ return {
49
+ getMessages: this.getMessages.bind(this),
50
+ getMessage: this.getMessage.bind(this),
51
+ getFullContent: this.getFullContent.bind(this),
52
+ sendMessage: this.sendMessage.bind(this),
53
+ sendAttachment: this.sendAttachment.bind(this),
54
+ resendMessage: this.resendMessage.bind(this),
55
+ deleteMessage: this.deleteMessage.bind(this),
56
+ initiateSession: this.initiateSession.bind(this),
57
+ searchMessages: this.searchMessages.bind(this)
58
+ };
59
+ }
60
+
61
+ }
@@ -0,0 +1,2 @@
1
+ import MessageService from "./MessageService";
2
+ export { MessageService };
@@ -0,0 +1,51 @@
1
+ import { ISessionRepository } from "../../../domain/interfaces/repositories";
2
+ export default class SessionService extends ISessionRepository {
3
+ constructor(_ref) {
4
+ let {
5
+ sessionRepository
6
+ } = _ref;
7
+ super();
8
+ this.sessionRepository = sessionRepository;
9
+ }
10
+
11
+ async updateAssignee(request) {
12
+ return this.sessionRepository.updateAssignee(request);
13
+ }
14
+
15
+ async getSessions(request) {
16
+ return this.sessionRepository.getSessions(request);
17
+ }
18
+
19
+ async getSession(request) {
20
+ return this.sessionRepository.getSession(request);
21
+ }
22
+
23
+ async getSessionAttachments(request) {
24
+ return this.sessionRepository.getSessionAttachments(request);
25
+ }
26
+
27
+ async getSessionLastMessages(request) {
28
+ return this.sessionRepository.getSessionLastMessages(request);
29
+ }
30
+
31
+ async markSessionAsRead(request) {
32
+ return this.sessionRepository.markSessionAsRead(request);
33
+ }
34
+
35
+ async updateSessionStatus(request) {
36
+ return this.sessionRepository.updateSessionStatus(request);
37
+ }
38
+
39
+ toJSON() {
40
+ return {
41
+ updateAssignee: this.updateAssignee.bind(this),
42
+ getSessions: this.getSessions.bind(this),
43
+ getSession: this.getSession.bind(this),
44
+ getSessionAttachments: this.getSessionAttachments.bind(this),
45
+ getSessionLastMessages: this.getSessionLastMessages.bind(this),
46
+ markSessionAsRead: this.markSessionAsRead.bind(this),
47
+ updateSessionStatus: this.updateSessionStatus.bind(this)
48
+ };
49
+ }
50
+
51
+ }
@@ -0,0 +1,2 @@
1
+ import SessionService from "./SessionService";
2
+ export { SessionService };
@@ -1,4 +1,9 @@
1
1
  const ModuleNames = {
2
- CHANNELS: 'channels'
2
+ CHANNELS: 'channels',
3
+ SESSIONS: 'sessions',
4
+ BOTS: 'bots',
5
+ MESSAGES: 'messages',
6
+ CONTACTS: 'contacts',
7
+ AGENTS: 'agents'
3
8
  };
4
9
  export default ModuleNames;
@@ -0,0 +1,6 @@
1
+ const ResponseTypes = {
2
+ LIST: 'list',
3
+ SINGLE: 'single',
4
+ NONE: 'none'
5
+ };
6
+ export default ResponseTypes;
@@ -1,4 +1,6 @@
1
- import HTTP_METHODS from './HTTPMethods';
2
- import ModuleNames from './ModuleNames';
1
+ import { HttpMethods } from '@zohoim/http-client';
2
+ import ModuleNames from "./ModuleNames";
3
+ import ResponseTypes from "./ResponseTypes";
3
4
  const IM_API_PREFIX = '/api/v1';
4
- export { ModuleNames, IM_API_PREFIX, HTTP_METHODS };
5
+ const HTTP_METHODS = HttpMethods;
6
+ export { ModuleNames, IM_API_PREFIX, HTTP_METHODS, ResponseTypes };
@@ -1,3 +1,3 @@
1
- import AdapterError from './AdapterError';
2
- import ValidationError from './ValidationError';
1
+ import AdapterError from "./AdapterError";
2
+ import ValidationError from "./ValidationError";
3
3
  export { ValidationError, AdapterError };
@@ -0,0 +1,24 @@
1
+ export default class ResponseUtils {
2
+ static async adaptListResponse(response, adapter) {
3
+ if (!response || !adapter) {
4
+ return response;
5
+ }
6
+
7
+ if (!response.data || !adapter) {
8
+ return response;
9
+ }
10
+
11
+ return { ...response,
12
+ data: await Promise.all(response.data.map(item => adapter(item)))
13
+ };
14
+ }
15
+
16
+ static adaptSingleResponse(response, adapter) {
17
+ if (!response || !adapter) {
18
+ return response;
19
+ }
20
+
21
+ return adapter(response);
22
+ }
23
+
24
+ }
@@ -0,0 +1,3 @@
1
+ import ResponseUtils from "./ResponseUtils";
2
+ import { validateSchema } from "./validateSchema";
3
+ export { validateSchema, ResponseUtils };
@@ -0,0 +1,74 @@
1
+ import { ValidationError } from "../errors"; // function validateSchemaKeys(schema, data) {
2
+ // Object.keys(schema).forEach((key) => {
3
+ // if (!(key in data)) {
4
+ // throw new ValidationError(`Key '${key}' is missing in the data`);
5
+ // }
6
+ // });
7
+ // }
8
+
9
+ function isEmpty(value) {
10
+ if (value === null || value === undefined || value === '') {
11
+ return true;
12
+ }
13
+
14
+ return false;
15
+ }
16
+
17
+ function validateRequiredCheck(_ref) {
18
+ let {
19
+ value,
20
+ rules,
21
+ path
22
+ } = _ref;
23
+
24
+ if (rules.required && isEmpty(value)) {
25
+ throw new ValidationError(rules.message || `${path} is required`);
26
+ }
27
+ }
28
+
29
+ function validateEnumCheck(_ref2) {
30
+ let {
31
+ value,
32
+ rules,
33
+ path
34
+ } = _ref2;
35
+
36
+ if (rules.enum && !rules.enum.includes(value)) {
37
+ throw new ValidationError(`${path} must be one of: ${rules.enum.join(', ')}`);
38
+ }
39
+ }
40
+
41
+ export const validateSchema = (schema, data) => {
42
+ const validate = function (schemaObj, dataObj) {
43
+ let path = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
44
+ // Check if all schema keys exist in data
45
+ // validateSchemaKeys(schemaObj, dataObj);
46
+ // Validate each field
47
+ Object.entries(schemaObj).forEach(_ref3 => {
48
+ let [field, rules] = _ref3;
49
+ const value = dataObj[field];
50
+ const fieldPath = path ? `${path}.${field}` : field;
51
+ validateRequiredCheck({
52
+ value,
53
+ rules,
54
+ path: fieldPath
55
+ });
56
+
57
+ if (value !== null && value !== undefined) {
58
+ // Enum validation
59
+ validateEnumCheck({
60
+ value,
61
+ rules,
62
+ path: fieldPath
63
+ }); // Nested object validation
64
+
65
+ if (rules.type === 'object' && rules.schema) {
66
+ validate(rules.schema, value, fieldPath);
67
+ }
68
+ }
69
+ });
70
+ return dataObj;
71
+ };
72
+
73
+ return validate(schema, data);
74
+ };
@@ -0,0 +1,44 @@
1
+ class RequestBuilder {
2
+ constructor() {
3
+ this._params = {};
4
+ this._query = {};
5
+ this._body = {};
6
+ this._context = {};
7
+ }
8
+
9
+ withParams() {
10
+ let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
11
+ this._params = { ...this._params,
12
+ ...params
13
+ };
14
+ return this;
15
+ }
16
+
17
+ withQuery() {
18
+ let query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
19
+ this._query = { ...this._query,
20
+ ...query
21
+ };
22
+ return this;
23
+ }
24
+
25
+ withBody() {
26
+ let body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
27
+ this._body = { ...this._body,
28
+ ...body
29
+ };
30
+ return this;
31
+ }
32
+
33
+ build() {
34
+ return {
35
+ params: this._params,
36
+ query: this._query,
37
+ body: Object.keys(this._body).length ? this._body : undefined,
38
+ context: this._context
39
+ };
40
+ }
41
+
42
+ }
43
+
44
+ export default RequestBuilder;
@@ -0,0 +1,12 @@
1
+ import RequestBuilder from "../RequestBuilder";
2
+
3
+ function getAgentsRequest() {
4
+ return new RequestBuilder().withQuery({
5
+ from: 0,
6
+ limit: 10,
7
+ modifiedAfter: null,
8
+ searchStr: null
9
+ }).build();
10
+ }
11
+
12
+ export default getAgentsRequest;
@@ -0,0 +1 @@
1
+ export { default as getAgentsRequest } from "./getAgentsRequest";
@@ -0,0 +1,9 @@
1
+ import RequestBuilder from "../RequestBuilder";
2
+
3
+ function getBotRequest() {
4
+ return new RequestBuilder().withParams({
5
+ botId: null
6
+ }).build();
7
+ }
8
+
9
+ export default getBotRequest;
@@ -0,0 +1,15 @@
1
+ import RequestBuilder from "../RequestBuilder";
2
+
3
+ function getBotsRequest() {
4
+ return new RequestBuilder().withQuery({
5
+ from: 0,
6
+ limit: 10,
7
+ modifiedAfter: null,
8
+ botServiceId: null,
9
+ externalAccountId: null,
10
+ searchStr: null,
11
+ isActive: false
12
+ }).build();
13
+ }
14
+
15
+ export default getBotsRequest;
@@ -0,0 +1,2 @@
1
+ export { default as getBotsRequest } from "./getBotsRequest";
2
+ export { default as getBotRequest } from "./getBotRequest";
@@ -0,0 +1,13 @@
1
+ import RequestBuilder from "../../RequestBuilder";
2
+
3
+ function getChannelAgentsRequest() {
4
+ return new RequestBuilder().withQuery({
5
+ from: 0,
6
+ limit: 10,
7
+ searchStr: null
8
+ }).withParams({
9
+ channelId: null
10
+ }).build();
11
+ }
12
+
13
+ export default getChannelAgentsRequest;
@@ -0,0 +1 @@
1
+ export { default as getChannelAgentsRequest } from "./getChannelAgentsRequest";
@@ -0,0 +1,23 @@
1
+ import RequestBuilder from "../RequestBuilder";
2
+
3
+ function getChannelsRequest() {
4
+ return new RequestBuilder().withQuery({
5
+ from: null,
6
+ limit: null,
7
+ modifiedAfter: null,
8
+ integrationServiceId: null,
9
+ externalAccountId: null,
10
+ isSandBox: null,
11
+ isActive: null,
12
+ includeDeleted: null,
13
+ onlyDeleted: null,
14
+ configName: null,
15
+ configValue: null,
16
+ channelIds: null,
17
+ include: null,
18
+ // meta|configParams
19
+ includeUnsubscribed: null
20
+ }).build();
21
+ }
22
+
23
+ export default getChannelsRequest;
@@ -0,0 +1,3 @@
1
+ import getChannelsRequest from "./getChannelsRequest";
2
+ export * from "./agents";
3
+ export { getChannelsRequest };
@@ -0,0 +1,11 @@
1
+ import RequestBuilder from "../RequestBuilder";
2
+
3
+ function getContactsRequest() {
4
+ return new RequestBuilder().withQuery({
5
+ from: 0,
6
+ limit: 10,
7
+ searchStr: null
8
+ }).build();
9
+ }
10
+
11
+ export default getContactsRequest;
@@ -0,0 +1 @@
1
+ export { default as getContactsRequest } from "./getContactsRequest";
@@ -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";
@@ -0,0 +1,14 @@
1
+ import RequestBuilder from "../RequestBuilder";
2
+
3
+ function deleteMessageRequest() {
4
+ let {
5
+ params = {}
6
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7
+ return new RequestBuilder().withParams({
8
+ sessionId: null,
9
+ messageId: null,
10
+ ...params
11
+ }).build();
12
+ }
13
+
14
+ export default deleteMessageRequest;
@@ -0,0 +1,14 @@
1
+ import RequestBuilder from "../RequestBuilder";
2
+
3
+ function getFullContentRequest() {
4
+ let {
5
+ params = {}
6
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7
+ return new RequestBuilder().withParams({
8
+ sessionId: null,
9
+ messageId: null,
10
+ ...params
11
+ }).build();
12
+ }
13
+
14
+ export default getFullContentRequest;
@@ -0,0 +1,14 @@
1
+ import RequestBuilder from "../RequestBuilder";
2
+
3
+ function getMessageRequest() {
4
+ let {
5
+ params = {}
6
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7
+ return new RequestBuilder().withParams({
8
+ sessionId: null,
9
+ messageId: null,
10
+ ...params
11
+ }).build();
12
+ }
13
+
14
+ export default getMessageRequest;
@@ -0,0 +1,20 @@
1
+ import RequestBuilder from "../RequestBuilder";
2
+
3
+ function getMessagesRequest() {
4
+ let {
5
+ query = {},
6
+ params = {}
7
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
8
+ return new RequestBuilder().withParams({
9
+ sessionId: null,
10
+ ...params
11
+ }).withQuery({
12
+ from: 0,
13
+ limit: 10,
14
+ modifiedAfter: null,
15
+ type: null,
16
+ ...query
17
+ }).build();
18
+ }
19
+
20
+ export default getMessagesRequest;
@@ -0,0 +1,9 @@
1
+ export { default as getMessagesRequest } from "./getMessagesRequest";
2
+ export { default as getMessageRequest } from "./getMessageRequest";
3
+ export { default as deleteMessageRequest } from "./deleteMessageRequest";
4
+ export { default as getFullContentRequest } from "./getFullContentRequest";
5
+ export { default as resendMessageRequest } from "./resendMessageRequest";
6
+ export { default as sendAttachmentRequest } from "./sendAttachmentRequest";
7
+ export { default as sendMessageRequest } from "./sendMessageRequest";
8
+ export { default as initiateSessionRequest } from "./initiateSessionRequest";
9
+ export { default as searchMessagesRequest } from "./searchMessagesRequest";
@@ -0,0 +1,22 @@
1
+ import RequestBuilder from "../RequestBuilder";
2
+
3
+ function initiateSessionRequest() {
4
+ let {
5
+ params = {},
6
+ body = {}
7
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
8
+ return new RequestBuilder().withParams({
9
+ channelId: null,
10
+ ...params
11
+ }).withBody({
12
+ receiverId: null,
13
+ receiverType: null,
14
+ cannedMessageId: null,
15
+ language: null,
16
+ parameters: {},
17
+ message: null,
18
+ ...body
19
+ }).build();
20
+ }
21
+
22
+ export default initiateSessionRequest;