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

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 (254) 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 +56 -0
  12. package/es/application/services/messages/index.js +2 -0
  13. package/es/application/services/sessions/SessionService.js +56 -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/getMessagesRequest.js +20 -0
  38. package/es/domain/dto/messages/index.js +8 -0
  39. package/es/domain/dto/messages/initiateSessionRequest.js +21 -0
  40. package/es/domain/dto/messages/resendMessageRequest.js +14 -0
  41. package/es/domain/dto/messages/searchMessagesRequest.js +22 -0
  42. package/es/domain/dto/messages/sendAttachmentRequest.js +20 -0
  43. package/es/domain/dto/messages/sendMessageRequest.js +17 -0
  44. package/es/domain/dto/sessions/getSessionAttachmentsRequest.js +13 -0
  45. package/es/domain/dto/sessions/getSessionLastMessagesRequest.js +13 -0
  46. package/es/domain/dto/sessions/getSessionRequest.js +13 -0
  47. package/es/domain/dto/sessions/getSessionsRequest.js +26 -0
  48. package/es/domain/dto/sessions/index.js +8 -0
  49. package/es/domain/dto/sessions/markSessionAsReadRequest.js +13 -0
  50. package/es/domain/dto/sessions/pickupSessionRequest.js +9 -0
  51. package/es/domain/dto/sessions/updateSessionAssigneeRequest.js +12 -0
  52. package/es/domain/dto/sessions/updateSessionStatusRequest.js +18 -0
  53. package/es/domain/entities/Actor/Actor.js +33 -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 +25 -0
  68. package/es/domain/entities/Message/ExternalInfo.js +17 -0
  69. package/es/domain/entities/Message/Info.js +39 -0
  70. package/es/domain/entities/Message/InfoTarget.js +22 -0
  71. package/es/domain/entities/Message/Location.js +18 -0
  72. package/es/domain/entities/Message/Message.js +78 -0
  73. package/es/domain/entities/Message/MessageWithSession.js +21 -0
  74. package/es/domain/entities/Message/index.js +7 -0
  75. package/es/domain/entities/Session/Session.js +60 -0
  76. package/es/domain/entities/Session/index.js +2 -0
  77. package/es/domain/entities/index.js +9 -2
  78. package/es/domain/enum/actor/ActorType.js +7 -0
  79. package/es/domain/enum/actor/index.js +2 -0
  80. package/es/domain/enum/attachment/AttachmentStatus.js +7 -0
  81. package/es/domain/enum/attachment/index.js +2 -0
  82. package/es/domain/enum/bot/BotServiceType.js +7 -0
  83. package/es/domain/enum/bot/index.js +2 -0
  84. package/es/domain/enum/index.js +6 -0
  85. package/es/domain/enum/integrationServices/IntegrationServices.js +11 -0
  86. package/es/domain/enum/integrationServices/index.js +2 -0
  87. package/es/domain/enum/message/ActionSubType.js +6 -0
  88. package/es/domain/enum/message/ActionType.js +6 -0
  89. package/es/domain/enum/message/ExternalInfoAction.js +9 -0
  90. package/es/domain/enum/message/InfoAction.js +17 -0
  91. package/es/domain/enum/message/InfoSessionStatus.js +10 -0
  92. package/es/domain/enum/message/InfoTargetType.js +7 -0
  93. package/es/domain/enum/message/MessageContentType.js +6 -0
  94. package/es/domain/enum/message/MessageDirection.js +6 -0
  95. package/es/domain/enum/message/MessageStatus.js +11 -0
  96. package/es/domain/enum/message/MessageType.js +11 -0
  97. package/es/domain/enum/message/index.js +11 -0
  98. package/es/domain/enum/session/SessionReplyStatus.js +21 -0
  99. package/es/domain/enum/session/SessionStatus.js +10 -0
  100. package/es/domain/enum/session/index.js +3 -0
  101. package/es/domain/interfaces/IAdapter.js +6 -0
  102. package/es/domain/interfaces/index.js +3 -1
  103. package/es/domain/interfaces/repositories/agents/IAgentRepository.js +17 -0
  104. package/es/domain/interfaces/repositories/agents/index.js +2 -0
  105. package/es/domain/interfaces/repositories/bots/IBotRepository.js +23 -0
  106. package/es/domain/interfaces/repositories/bots/index.js +2 -0
  107. package/es/domain/interfaces/repositories/channels/IChannelAgentRepository.js +17 -0
  108. package/es/domain/interfaces/repositories/channels/IChannelRepository.js +17 -0
  109. package/es/domain/interfaces/repositories/channels/index.js +3 -0
  110. package/es/domain/interfaces/repositories/contacts/IContactRepository.js +17 -0
  111. package/es/domain/interfaces/repositories/contacts/index.js +2 -0
  112. package/es/domain/interfaces/repositories/index.js +6 -0
  113. package/es/domain/interfaces/repositories/messages/IMessageRepository.js +52 -0
  114. package/es/domain/interfaces/repositories/messages/index.js +2 -0
  115. package/es/domain/interfaces/repositories/sessions/ISessionRepository.js +52 -0
  116. package/es/domain/interfaces/repositories/sessions/index.js +2 -0
  117. package/es/domain/schema/actor/ActorSchema.js +37 -0
  118. package/es/domain/schema/actor/AgentSchema.js +45 -0
  119. package/es/domain/schema/actor/index.js +3 -0
  120. package/es/domain/schema/attachment/AttachmentSchema.js +33 -0
  121. package/es/domain/schema/attachment/index.js +2 -0
  122. package/es/domain/schema/bot/BotSchema.js +33 -0
  123. package/es/domain/schema/bot/index.js +2 -0
  124. package/es/domain/schema/channel/ChannelSchema.js +49 -0
  125. package/es/domain/schema/channel/index.js +2 -0
  126. package/es/domain/schema/contact/ContactSchema.js +27 -0
  127. package/es/domain/schema/contact/index.js +2 -0
  128. package/es/domain/schema/index.js +8 -0
  129. package/es/domain/schema/integrationService/IntegrationServiceSchema.js +31 -0
  130. package/es/domain/schema/integrationService/index.js +2 -0
  131. package/es/domain/schema/message/ActionSchema.js +18 -0
  132. package/es/domain/schema/message/ExternalInfoSchema.js +9 -0
  133. package/es/domain/schema/message/InfoSchema.js +24 -0
  134. package/es/domain/schema/message/InfoTargetSchema.js +29 -0
  135. package/es/domain/schema/message/LocationSchema.js +11 -0
  136. package/es/domain/schema/message/MessageSchema.js +112 -0
  137. package/es/domain/schema/message/MessageWithSessionSchema.js +10 -0
  138. package/es/domain/schema/message/index.js +8 -0
  139. package/es/domain/schema/session/SessionSchema.js +82 -0
  140. package/es/domain/schema/session/index.js +2 -0
  141. package/es/frameworks/managers/ModuleFactory.js +58 -0
  142. package/es/{infrastructure → frameworks}/managers/ModuleManager.js +11 -13
  143. package/es/frameworks/managers/index.js +2 -0
  144. package/es/frameworks/sdk/IMSDK.js +62 -0
  145. package/es/frameworks/sdk/agents/AgentSDK.js +30 -0
  146. package/es/frameworks/sdk/agents/index.js +2 -0
  147. package/es/frameworks/sdk/bots/BotSDK.js +30 -0
  148. package/es/frameworks/sdk/bots/index.js +2 -0
  149. package/es/frameworks/sdk/channels/ChannelSDK.js +37 -0
  150. package/es/frameworks/sdk/channels/index.js +2 -0
  151. package/es/frameworks/sdk/contacts/ContactSDK.js +30 -0
  152. package/es/frameworks/sdk/contacts/index.js +2 -0
  153. package/es/frameworks/sdk/index.js +2 -0
  154. package/es/frameworks/sdk/messages/MessageSDK.js +32 -0
  155. package/es/frameworks/sdk/messages/index.js +2 -0
  156. package/es/frameworks/sdk/sessions/SessionSDK.js +34 -0
  157. package/es/frameworks/sdk/sessions/index.js +2 -0
  158. package/es/index.js +12 -7
  159. package/es/infrastructure/adapters/agents/AgentAdapter.js +28 -0
  160. package/es/infrastructure/adapters/agents/index.js +2 -0
  161. package/es/infrastructure/adapters/attachments/AttachmentAdapter.js +25 -0
  162. package/es/infrastructure/adapters/attachments/index.js +2 -0
  163. package/es/infrastructure/adapters/bots/BotAdapter.js +25 -0
  164. package/es/infrastructure/adapters/bots/index.js +2 -0
  165. package/es/infrastructure/adapters/channels/ChannelAdapter.js +29 -0
  166. package/es/infrastructure/adapters/channels/ChannelAgentAdapter.js +27 -13
  167. package/es/infrastructure/adapters/channels/index.js +3 -2
  168. package/es/infrastructure/adapters/contacts/ContactAdapter.js +24 -0
  169. package/es/infrastructure/adapters/contacts/index.js +2 -0
  170. package/es/infrastructure/adapters/index.js +7 -1
  171. package/es/infrastructure/adapters/messages/MessageAdapter.js +41 -0
  172. package/es/infrastructure/adapters/messages/MessageWithSessionAdapter.js +23 -0
  173. package/es/infrastructure/adapters/messages/index.js +2 -0
  174. package/es/infrastructure/adapters/sessions/SessionAdapter.js +36 -0
  175. package/es/infrastructure/adapters/sessions/index.js +2 -0
  176. package/es/infrastructure/api/BaseAPI.js +151 -0
  177. package/es/infrastructure/api/agents/AgentAPI.js +14 -0
  178. package/es/infrastructure/api/agents/index.js +2 -0
  179. package/es/infrastructure/api/bots/BotAPI.js +24 -0
  180. package/es/infrastructure/api/bots/index.js +2 -0
  181. package/es/infrastructure/api/channels/ChannelAPI.js +14 -0
  182. package/es/infrastructure/api/channels/ChannelAgentAPI.js +16 -19
  183. package/es/infrastructure/api/channels/index.js +3 -2
  184. package/es/infrastructure/api/contacts/ContactAPI.js +14 -0
  185. package/es/infrastructure/api/contacts/index.js +2 -0
  186. package/es/infrastructure/api/index.js +6 -1
  187. package/es/infrastructure/api/messages/MessageAPI.js +84 -0
  188. package/es/infrastructure/api/messages/index.js +2 -0
  189. package/es/infrastructure/api/registry/agents/agentAPIRegistry.js +12 -0
  190. package/es/infrastructure/api/registry/agents/constructAgentEndPoint.js +10 -0
  191. package/es/infrastructure/api/registry/agents/index.js +2 -0
  192. package/es/infrastructure/api/registry/bots/botAPIRegistry.js +18 -0
  193. package/es/infrastructure/api/registry/bots/constructBotEndPoint.js +10 -0
  194. package/es/infrastructure/api/registry/bots/index.js +2 -0
  195. package/es/infrastructure/api/registry/channels/channelAPIRegistry.js +16 -0
  196. package/es/infrastructure/api/registry/channels/channelAgentAPIRegistry.js +12 -0
  197. package/es/infrastructure/api/registry/channels/constructChannelEndPoint.js +10 -0
  198. package/es/infrastructure/api/registry/channels/index.js +2 -0
  199. package/es/infrastructure/api/registry/contacts/constructContactEndPoint.js +10 -0
  200. package/es/infrastructure/api/registry/contacts/contactAPIRegistry.js +12 -0
  201. package/es/infrastructure/api/registry/contacts/index.js +2 -0
  202. package/es/infrastructure/api/registry/createAPIRegistry.js +7 -0
  203. package/es/infrastructure/api/registry/createBaseUrl.js +3 -0
  204. package/es/infrastructure/api/registry/getRegistryConfig.js +26 -0
  205. package/es/infrastructure/api/registry/index.js +2 -0
  206. package/es/infrastructure/api/registry/messages/constructMessageEndPoint.js +4 -0
  207. package/es/infrastructure/api/registry/messages/index.js +2 -0
  208. package/es/infrastructure/api/registry/messages/messageAPIRegistry.js +57 -0
  209. package/es/infrastructure/api/registry/sessions/constructSessionEndPoint.js +10 -0
  210. package/es/infrastructure/api/registry/sessions/index.js +2 -0
  211. package/es/infrastructure/api/registry/sessions/sessionAPIRegistry.js +52 -0
  212. package/es/infrastructure/api/sessions/SessionAPI.js +84 -0
  213. package/es/infrastructure/api/sessions/index.js +2 -0
  214. package/es/infrastructure/config/configRegistry.js +27 -0
  215. package/es/infrastructure/config/index.js +2 -0
  216. package/es/infrastructure/repositories/agents/AgentRepository.js +49 -0
  217. package/es/infrastructure/repositories/agents/index.js +2 -0
  218. package/es/infrastructure/repositories/bots/BotRepository.js +58 -0
  219. package/es/infrastructure/repositories/bots/index.js +2 -0
  220. package/es/infrastructure/repositories/channels/ChannelAgentRepository.js +49 -0
  221. package/es/infrastructure/repositories/channels/ChannelRepository.js +49 -0
  222. package/es/infrastructure/repositories/channels/index.js +3 -0
  223. package/es/infrastructure/repositories/contacts/ContactRepository.js +49 -0
  224. package/es/infrastructure/repositories/contacts/index.js +2 -0
  225. package/es/infrastructure/repositories/index.js +6 -0
  226. package/es/infrastructure/repositories/messages/MessageRepository.js +111 -0
  227. package/es/infrastructure/repositories/messages/index.js +2 -0
  228. package/es/infrastructure/repositories/sessions/SessionRepository.js +113 -0
  229. package/es/infrastructure/repositories/sessions/index.js +2 -0
  230. package/package.json +4 -1
  231. package/es/config/urls/channels/index.js +0 -2
  232. package/es/config/urls/channels/urls-channel-agents.js +0 -11
  233. package/es/config/urls/index.js +0 -1
  234. package/es/core/constants/HttpMethods.js +0 -8
  235. package/es/domain/entities/Actor/ActorType.js +0 -6
  236. package/es/domain/interfaces/BaseAPI.js +0 -33
  237. package/es/domain/interfaces/channels/IChannelAgent.js +0 -10
  238. package/es/domain/interfaces/channels/index.js +0 -2
  239. package/es/domain/services/channels/ChannelAgentService.js +0 -27
  240. package/es/domain/services/channels/index.js +0 -2
  241. package/es/domain/services/index.js +0 -1
  242. package/es/infrastructure/adapters/BaseAdapter.js +0 -23
  243. package/es/infrastructure/interfaces/api/channels/agents/GetChannelAgentsRequest.js +0 -13
  244. package/es/infrastructure/interfaces/api/channels/agents/index.js +0 -2
  245. package/es/infrastructure/interfaces/api/channels/index.js +0 -1
  246. package/es/infrastructure/interfaces/api/index.js +0 -1
  247. package/es/infrastructure/interfaces/index.js +0 -1
  248. package/es/infrastructure/managers/ModuleFactory.js +0 -15
  249. package/es/infrastructure/managers/index.js +0 -2
  250. package/es/infrastructure/sdk/IMSDK.js +0 -25
  251. package/es/infrastructure/sdk/channels/ChannelAgentsSDK.js +0 -22
  252. package/es/infrastructure/sdk/channels/ChannelSDK.js +0 -19
  253. package/es/infrastructure/sdk/channels/index.js +0 -2
  254. package/es/infrastructure/sdk/index.js +0 -2
@@ -0,0 +1,58 @@
1
+ import { ModuleNames } from "../../core/constants";
2
+ import { BotSDK } from "../sdk/bots";
3
+ import { ChannelSDK } from "../sdk/channels";
4
+ import { SessionSDK } from "../sdk/sessions";
5
+ import { MessageSDK } from "../sdk/messages";
6
+ import { AgentSDK } from "../sdk/agents";
7
+ import { ContactSDK } from "../sdk/contacts";
8
+ const ModuleFactory = {
9
+ [ModuleNames.CHANNELS]: _ref => {
10
+ let {
11
+ config
12
+ } = _ref;
13
+ return new ChannelSDK({
14
+ config
15
+ }).toJSON();
16
+ },
17
+ [ModuleNames.SESSIONS]: _ref2 => {
18
+ let {
19
+ config
20
+ } = _ref2;
21
+ return new SessionSDK({
22
+ config
23
+ }).toJSON();
24
+ },
25
+ [ModuleNames.BOTS]: _ref3 => {
26
+ let {
27
+ config
28
+ } = _ref3;
29
+ return new BotSDK({
30
+ config
31
+ }).toJSON();
32
+ },
33
+ [ModuleNames.AGENTS]: _ref4 => {
34
+ let {
35
+ config
36
+ } = _ref4;
37
+ return new AgentSDK({
38
+ config
39
+ }).toJSON();
40
+ },
41
+ [ModuleNames.CONTACTS]: _ref5 => {
42
+ let {
43
+ config
44
+ } = _ref5;
45
+ return new ContactSDK({
46
+ config
47
+ }).toJSON();
48
+ },
49
+ [ModuleNames.MESSAGES]: _ref6 => {
50
+ let {
51
+ config
52
+ } = _ref6;
53
+ return new MessageSDK({
54
+ config
55
+ }).toJSON();
56
+ }
57
+ };
58
+ export default ModuleFactory;
@@ -1,36 +1,34 @@
1
- import ModuleFactory from './ModuleFactory';
1
+ import { ModuleNames } from "../../core/constants";
2
+ import ModuleFactory from "./ModuleFactory";
2
3
  export default class ModuleManager {
3
4
  constructor() {
4
5
  this._modules = new Map();
6
+ this.supportedModules = [ModuleNames.CHANNELS, ModuleNames.SESSIONS, ModuleNames.BOTS, ModuleNames.MESSAGES, ModuleNames.AGENTS, ModuleNames.CONTACTS];
5
7
  }
6
8
 
7
9
  initialize(_ref) {
8
10
  let {
9
- config,
10
- httpClient
11
+ apiConfig
11
12
  } = _ref;
12
- Object.entries(config).forEach(_ref2 => {
13
- let [moduleName, moduleConfig] = _ref2;
13
+ this.supportedModules.forEach(moduleName => {
14
+ const moduleConfig = apiConfig ? apiConfig[moduleName] || {} : {};
14
15
  this.initializeModule({
15
16
  moduleName,
16
- config: moduleConfig,
17
- httpClient
17
+ config: moduleConfig
18
18
  });
19
19
  });
20
20
  }
21
21
 
22
- initializeModule(_ref3) {
22
+ initializeModule(_ref2) {
23
23
  let {
24
24
  moduleName,
25
- config,
26
- httpClient
27
- } = _ref3;
25
+ config
26
+ } = _ref2;
28
27
  const createModule = ModuleFactory[moduleName];
29
28
 
30
29
  if (createModule) {
31
30
  this._modules.set(moduleName, createModule({
32
- config,
33
- httpClient
31
+ config
34
32
  }));
35
33
  }
36
34
  }
@@ -0,0 +1,2 @@
1
+ import ModuleManager from "./ModuleManager";
2
+ export { ModuleManager };
@@ -0,0 +1,62 @@
1
+ import { ModuleNames } from "../../core/constants";
2
+ import configRegistry from "../../infrastructure/config/configRegistry";
3
+ import { ModuleManager } from "../managers";
4
+ export default class IMSDK {
5
+ constructor(_ref) {
6
+ let {
7
+ baseURL,
8
+ apiConfig = {},
9
+ httpClient
10
+ } = _ref;
11
+ configRegistry.setConfig({
12
+ baseURL,
13
+ httpClient
14
+ });
15
+ this._moduleManager = new ModuleManager();
16
+
17
+ this._moduleManager.initialize({
18
+ apiConfig
19
+ });
20
+ }
21
+
22
+ get channels() {
23
+ return this._moduleManager.getModule(ModuleNames.CHANNELS);
24
+ }
25
+
26
+ get sessions() {
27
+ return this._moduleManager.getModule(ModuleNames.SESSIONS);
28
+ }
29
+
30
+ get bots() {
31
+ return this._moduleManager.getModule(ModuleNames.BOTS);
32
+ }
33
+
34
+ get messages() {
35
+ return this._moduleManager.getModule(ModuleNames.MESSAGES);
36
+ }
37
+
38
+ get agents() {
39
+ return this._moduleManager.getModule(ModuleNames.AGENTS);
40
+ }
41
+
42
+ get contacts() {
43
+ return this._moduleManager.getModule(ModuleNames.CONTACTS);
44
+ }
45
+
46
+ hasModule(moduleName) {
47
+ return this._moduleManager.hasModule(moduleName);
48
+ }
49
+
50
+ toJSON() {
51
+ return {
52
+ channels: this.channels,
53
+ sessions: this.sessions,
54
+ bots: this.bots,
55
+ messages: this.messages,
56
+ agents: this.agents,
57
+ contacts: this.contacts,
58
+ hasModule: this.hasModule.bind(this)
59
+ };
60
+ }
61
+
62
+ }
@@ -0,0 +1,30 @@
1
+ import { AgentService } from "../../../application/services";
2
+ import { AgentRepository } from "../../../infrastructure/repositories";
3
+
4
+ class AgentSDK {
5
+ constructor(_ref) {
6
+ const {
7
+ config
8
+ } = _ref;
9
+ const {
10
+ agentAPI,
11
+ agentAdapter
12
+ } = config;
13
+ const agentRepository = new AgentRepository({
14
+ agentAPI,
15
+ agentAdapter
16
+ }).toJSON();
17
+ const agentService = new AgentService({
18
+ agentRepository
19
+ }).toJSON();
20
+ this.services = { ...agentService
21
+ };
22
+ }
23
+
24
+ toJSON() {
25
+ return this.services;
26
+ }
27
+
28
+ }
29
+
30
+ export default AgentSDK;
@@ -0,0 +1,2 @@
1
+ import AgentSDK from "./AgentSDK";
2
+ export { AgentSDK };
@@ -0,0 +1,30 @@
1
+ import { BotService } from "../../../application/services";
2
+ import { BotRepository } from "../../../infrastructure/repositories";
3
+
4
+ class BotSDK {
5
+ constructor(_ref) {
6
+ let {
7
+ config
8
+ } = _ref;
9
+ const {
10
+ botAPI,
11
+ botAdapter
12
+ } = config;
13
+ const botRepository = new BotRepository({
14
+ botAPI,
15
+ botAdapter
16
+ }).toJSON();
17
+ const botService = new BotService({
18
+ botRepository
19
+ }).toJSON();
20
+ this.services = { ...botService
21
+ };
22
+ }
23
+
24
+ toJSON() {
25
+ return this.services;
26
+ }
27
+
28
+ }
29
+
30
+ export default BotSDK;
@@ -0,0 +1,2 @@
1
+ import BotSDK from "./BotSDK";
2
+ export { BotSDK };
@@ -0,0 +1,37 @@
1
+ import { ChannelAgentService, ChannelService } from "../../../application/services";
2
+ import { ChannelAgentRepository, ChannelRepository } from "../../../infrastructure/repositories";
3
+ export default class ChannelSDK {
4
+ constructor(_ref) {
5
+ let {
6
+ config
7
+ } = _ref;
8
+ const {
9
+ channelAPI,
10
+ channelAdapter,
11
+ channelAgentAPI,
12
+ channelAgentAdapter
13
+ } = config;
14
+ const channelAgentRepository = new ChannelAgentRepository({
15
+ channelAgentAPI,
16
+ channelAgentAdapter
17
+ }).toJSON();
18
+ const channelRepository = new ChannelRepository({
19
+ channelAPI,
20
+ channelAdapter
21
+ }).toJSON();
22
+ const channelService = new ChannelService({
23
+ channelRepository
24
+ }).toJSON();
25
+ const channelAgentService = new ChannelAgentService({
26
+ channelAgentRepository
27
+ }).toJSON();
28
+ this.services = { ...channelService,
29
+ agents: channelAgentService
30
+ };
31
+ }
32
+
33
+ toJSON() {
34
+ return this.services;
35
+ }
36
+
37
+ }
@@ -0,0 +1,2 @@
1
+ import ChannelSDK from "./ChannelSDK";
2
+ export { ChannelSDK };
@@ -0,0 +1,30 @@
1
+ import { ContactService } from "../../../application/services";
2
+ import { ContactRepository } from "../../../infrastructure/repositories";
3
+
4
+ class ContactSDK {
5
+ constructor(_ref) {
6
+ const {
7
+ config
8
+ } = _ref;
9
+ const {
10
+ contactAPI,
11
+ contactAdapter
12
+ } = config;
13
+ const contactRepository = new ContactRepository({
14
+ contactAPI,
15
+ contactAdapter
16
+ }).toJSON();
17
+ const contactService = new ContactService({
18
+ contactRepository
19
+ }).toJSON();
20
+ this.services = { ...contactService
21
+ };
22
+ }
23
+
24
+ toJSON() {
25
+ return this.services;
26
+ }
27
+
28
+ }
29
+
30
+ export default ContactSDK;
@@ -0,0 +1,2 @@
1
+ import ContactSDK from "./ContactSDK";
2
+ export { ContactSDK };
@@ -0,0 +1,2 @@
1
+ import IMSDK from "./IMSDK";
2
+ export { IMSDK };
@@ -0,0 +1,32 @@
1
+ import { MessageService } from "../../../application/services";
2
+ import { MessageRepository } from "../../../infrastructure/repositories";
3
+
4
+ class MessageSDK {
5
+ constructor(_ref) {
6
+ let {
7
+ config
8
+ } = _ref;
9
+ const {
10
+ messageAPI,
11
+ messageAdapter,
12
+ messageWithSessionAdapter
13
+ } = config;
14
+ const messageRepository = new MessageRepository({
15
+ messageAPI,
16
+ messageAdapter,
17
+ messageWithSessionAdapter
18
+ }).toJSON();
19
+ const messageService = new MessageService({
20
+ messageRepository
21
+ }).toJSON();
22
+ this.services = { ...messageService
23
+ };
24
+ }
25
+
26
+ toJSON() {
27
+ return this.services;
28
+ }
29
+
30
+ }
31
+
32
+ export default MessageSDK;
@@ -0,0 +1,2 @@
1
+ import MessageSDK from "./MessageSDK";
2
+ export { MessageSDK };
@@ -0,0 +1,34 @@
1
+ import { SessionService } from "../../../application/services";
2
+ import { SessionRepository } from "../../../infrastructure/repositories";
3
+
4
+ class SessionSDK {
5
+ constructor(_ref) {
6
+ let {
7
+ config
8
+ } = _ref;
9
+ const {
10
+ sessionAPI,
11
+ sessionAdapter,
12
+ attachmentAdapter,
13
+ messageAdapter
14
+ } = config;
15
+ const sessionRepository = new SessionRepository({
16
+ sessionAPI,
17
+ sessionAdapter,
18
+ attachmentAdapter,
19
+ messageAdapter
20
+ }).toJSON();
21
+ const sessionService = new SessionService({
22
+ sessionRepository
23
+ }).toJSON();
24
+ this.services = { ...sessionService
25
+ };
26
+ }
27
+
28
+ toJSON() {
29
+ return this.services;
30
+ }
31
+
32
+ }
33
+
34
+ export default SessionSDK;
@@ -0,0 +1,2 @@
1
+ import SessionSDK from "./SessionSDK";
2
+ export { SessionSDK };
package/es/index.js CHANGED
@@ -1,7 +1,12 @@
1
- export * from './domain/entities';
2
- export * from './domain/interfaces';
3
- export * from './domain/services';
4
- export * from './infrastructure/sdk';
5
- export * from './infrastructure/adapters';
6
- export * from './infrastructure/api';
7
- export * from './infrastructure/interfaces/api';
1
+ // domain
2
+ export * from "./domain/dto";
3
+ export * from "./domain/entities";
4
+ export * from "./domain/enum";
5
+ export * from "./domain/interfaces"; // infrastructure
6
+
7
+ export * from "./infrastructure/api"; // frameworks
8
+
9
+ export * from "./frameworks/sdk"; // core
10
+
11
+ export * from "./core/constants";
12
+ export { ResponseUtils } from "./core/utils";
@@ -0,0 +1,28 @@
1
+ import { AdapterError } from "../../../core/errors";
2
+ import { Agent } from "../../../domain/entities";
3
+ import { ActorType } from "../../../domain/enum";
4
+ import { IAdapter } from "../../../domain/interfaces";
5
+ export default class AgentAdapter extends IAdapter {
6
+ adapt(agentData) {
7
+ if (!agentData) {
8
+ throw new AdapterError('Agent data is required');
9
+ }
10
+
11
+ try {
12
+ return new Agent({
13
+ id: agentData.id,
14
+ firstName: agentData.firstName,
15
+ lastName: agentData.lastName,
16
+ email: agentData.email,
17
+ zuid: agentData.zuid,
18
+ status: agentData.status,
19
+ role: agentData.role,
20
+ photoURL: agentData.photoURL,
21
+ type: [ActorType.AGENT]
22
+ }).toJSON();
23
+ } catch (error) {
24
+ throw new AdapterError(`Failed to adapt Agent: ${error.message}`);
25
+ }
26
+ }
27
+
28
+ }
@@ -0,0 +1,2 @@
1
+ import AgentAdapter from "./AgentAdapter";
2
+ export { AgentAdapter };
@@ -0,0 +1,25 @@
1
+ import { AdapterError } from "../../../core/errors";
2
+ import { Attachment } from "../../../domain/entities";
3
+ import { IAdapter } from "../../../domain/interfaces";
4
+ export default class AttachmentAdapter extends IAdapter {
5
+ adapt(attachmentData) {
6
+ if (!attachmentData) {
7
+ throw new AdapterError('Attachment data is required');
8
+ }
9
+
10
+ try {
11
+ return new Attachment({
12
+ id: attachmentData.id,
13
+ name: attachmentData.name,
14
+ type: attachmentData.type,
15
+ createdTime: attachmentData.createdTime,
16
+ size: attachmentData.size,
17
+ url: attachmentData.url,
18
+ status: attachmentData.status
19
+ }).toJSON();
20
+ } catch (error) {
21
+ throw new AdapterError(`Failed to adapt attachment: ${error.message}`);
22
+ }
23
+ }
24
+
25
+ }
@@ -0,0 +1,2 @@
1
+ import AttachmentAdapter from "./AttachmentAdapter";
2
+ export { AttachmentAdapter };
@@ -0,0 +1,25 @@
1
+ import { AdapterError } from "../../../core/errors";
2
+ import { Bot } from "../../../domain/entities";
3
+ import { IAdapter } from "../../../domain/interfaces";
4
+ export default class BotAdapter extends IAdapter {
5
+ adapt(botData) {
6
+ if (!botData) {
7
+ throw new AdapterError('Bot data is required');
8
+ }
9
+
10
+ try {
11
+ return new Bot({
12
+ id: botData.id,
13
+ botServiceType: botData.botService.id,
14
+ name: botData.name,
15
+ isActive: botData.isActive,
16
+ createdTime: botData.createdTime,
17
+ photoURL: botData.logoURL,
18
+ createdBy: botData.createdBy
19
+ }).toJSON();
20
+ } catch (error) {
21
+ throw new AdapterError(`Failed to adapt bot: ${error.message}`);
22
+ }
23
+ }
24
+
25
+ }
@@ -0,0 +1,2 @@
1
+ import BotAdapter from "./BotAdapter";
2
+ export { BotAdapter };
@@ -0,0 +1,29 @@
1
+ import { AdapterError } from "../../../core/errors";
2
+ import { Channel } from "../../../domain/entities";
3
+ import { IAdapter } from "../../../domain/interfaces";
4
+ export default class ChannelAdapter extends IAdapter {
5
+ adapt(rawChannel) {
6
+ if (!rawChannel) {
7
+ throw new AdapterError('Channel data is required');
8
+ }
9
+
10
+ try {
11
+ return new Channel({
12
+ id: rawChannel.id,
13
+ integrationService: rawChannel.integrationService,
14
+ name: rawChannel.name,
15
+ defaultBotId: rawChannel.defaultBotId,
16
+ isActive: rawChannel.isActive,
17
+ createdTime: rawChannel.createdTime,
18
+ accountName: rawChannel.accountName,
19
+ isSubscribed: rawChannel.isSubscribed,
20
+ createdBy: rawChannel.createdBy,
21
+ isOwner: rawChannel.isOwner,
22
+ photoURL: rawChannel.logoURL
23
+ }).toJSON();
24
+ } catch (error) {
25
+ throw new AdapterError(`Failed to adapt channel: ${error.message}`);
26
+ }
27
+ }
28
+
29
+ }
@@ -1,32 +1,46 @@
1
- import BaseAdapter from '../BaseAdapter';
2
- import { AdapterError } from '../../../core/errors';
3
- import { Agent } from '../../../domain/entities';
4
- /**
5
- * Adapter for Channel Agent data
6
- * @extends BaseAdapter
7
- */
8
-
9
- export default class ChannelAgentAdapter extends BaseAdapter {
1
+ import { AdapterError } from "../../../core/errors";
2
+ import { Agent } from "../../../domain/entities";
3
+ import { IAdapter } from "../../../domain/interfaces";
4
+ export default class ChannelAgentAdapter extends IAdapter {
10
5
  /**
11
6
  * Adapts channel agent data to Agent entity
12
7
  * @param {Object} channelAgent - Channel agent data to adapt
13
8
  * @returns {Object} Adapted agent data
14
9
  * @throws {AdapterError} When adaptation fails
15
10
  */
16
- static adapt(channelAgent) {
11
+ adapt(channelAgent) {
17
12
  if (!channelAgent) {
18
13
  throw new AdapterError('Channel agent data is required');
19
14
  }
20
15
 
21
16
  try {
22
- return new Agent({
17
+ const {
18
+ id,
19
+ name,
20
+ email,
21
+ photoURL,
22
+ zuid,
23
+ type
24
+ } = new Agent({
23
25
  id: channelAgent.id,
24
26
  name: channelAgent.name,
25
27
  email: channelAgent.email,
26
- photoURL: channelAgent.photoURL || '',
28
+ photoURL: channelAgent.photoURL,
27
29
  zuid: channelAgent.zuid,
28
- type: channelAgent.type
30
+ type: channelAgent.type,
31
+ firstName: null,
32
+ lastName: null,
33
+ status: null,
34
+ role: null
29
35
  }).toJSON();
36
+ return {
37
+ id,
38
+ name,
39
+ email,
40
+ photoURL,
41
+ zuid,
42
+ type
43
+ };
30
44
  } catch (error) {
31
45
  throw new AdapterError(`Failed to adapt channel agent: ${error.message}`);
32
46
  }
@@ -1,2 +1,3 @@
1
- import ChannelAgentAdapter from './ChannelAgentAdapter';
2
- export { ChannelAgentAdapter };
1
+ import ChannelAdapter from "./ChannelAdapter";
2
+ import ChannelAgentAdapter from "./ChannelAgentAdapter";
3
+ export { ChannelAgentAdapter, ChannelAdapter };
@@ -0,0 +1,24 @@
1
+ import { AdapterError } from "../../../core/errors";
2
+ import { Contact } from "../../../domain/entities";
3
+ import { IAdapter } from "../../../domain/interfaces";
4
+ export default class ContactAdapter extends IAdapter {
5
+ adapt(contactData) {
6
+ if (!contactData) {
7
+ throw new AdapterError('Contact data is required');
8
+ }
9
+
10
+ try {
11
+ return new Contact({
12
+ id: contactData.id,
13
+ name: contactData.name,
14
+ photoURL: contactData.photoURL,
15
+ email: contactData.email,
16
+ mobile: contactData.mobile,
17
+ phone: contactData.phone
18
+ }).toJSON();
19
+ } catch (error) {
20
+ throw new AdapterError(`Failed to adapt Contact: ${error.message}`);
21
+ }
22
+ }
23
+
24
+ }
@@ -0,0 +1,2 @@
1
+ import ContactAdapter from "./ContactAdapter";
2
+ export { ContactAdapter };
@@ -1 +1,7 @@
1
- export * from './channels';
1
+ export * from "./channels";
2
+ export * from "./sessions";
3
+ export * from "./bots";
4
+ export * from "./attachments";
5
+ export * from "./messages";
6
+ export * from "./agents";
7
+ export * from "./contacts";