@zohoim/client-sdk 0.0.1

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