@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,18 @@
1
+ import { ActionType, ActionSubType } from "../../enum";
2
+ const ActionSchema = {
3
+ type: {
4
+ type: 'string',
5
+ required: true,
6
+ enum: Object.values(ActionType)
7
+ },
8
+ subType: {
9
+ type: 'string',
10
+ required: true,
11
+ enum: Object.values(ActionSubType)
12
+ },
13
+ value: {
14
+ type: 'string',
15
+ required: false
16
+ }
17
+ };
18
+ export default ActionSchema;
@@ -0,0 +1,9 @@
1
+ import { ExternalInfoAction } from "../../enum";
2
+ const ExternalInfoSchema = {
3
+ action: {
4
+ type: 'string',
5
+ required: true,
6
+ enum: Object.values(ExternalInfoAction)
7
+ }
8
+ };
9
+ export default ExternalInfoSchema;
@@ -0,0 +1,24 @@
1
+ import { InfoSessionStatus, InfoAction } from "../../enum";
2
+ import { ActorSchema } from "../actor";
3
+ const InfoSchema = {
4
+ actor: {
5
+ type: 'object',
6
+ required: false,
7
+ schema: ActorSchema
8
+ },
9
+ action: {
10
+ type: 'string',
11
+ required: true,
12
+ enum: Object.values(InfoAction)
13
+ },
14
+ sessionStatus: {
15
+ type: 'string',
16
+ required: false,
17
+ enum: Object.values(InfoSessionStatus)
18
+ },
19
+ targets: {
20
+ type: 'array',
21
+ required: false
22
+ }
23
+ };
24
+ export default InfoSchema;
@@ -0,0 +1,11 @@
1
+ const LocationSchema = {
2
+ latitude: {
3
+ type: 'string',
4
+ required: true
5
+ },
6
+ longitude: {
7
+ type: 'string',
8
+ required: true
9
+ }
10
+ };
11
+ export default LocationSchema;
@@ -0,0 +1,112 @@
1
+ import { MessageStatus, MessageTypes, MessageDirection, MessageContentType } from "../../enum/message";
2
+ import { ActorSchema } from "../actor";
3
+ import { AttachmentSchema } from "../attachment";
4
+ import LocationSchema from "./LocationSchema";
5
+ import ActionSchema from "./ActionSchema";
6
+ import ExternalInfoSchema from "./ExternalInfoSchema";
7
+ import InfoSchema from "./InfoSchema";
8
+ const MessageSchema = {
9
+ id: {
10
+ type: 'string',
11
+ required: true
12
+ },
13
+ sessionId: {
14
+ type: 'string',
15
+ required: true
16
+ },
17
+ displayMessage: {
18
+ type: 'string',
19
+ required: false
20
+ },
21
+ statusUpdatedTime: {
22
+ type: 'string',
23
+ required: true
24
+ },
25
+ actor: {
26
+ type: 'object',
27
+ required: true,
28
+ schema: ActorSchema
29
+ },
30
+ direction: {
31
+ type: 'string',
32
+ required: true,
33
+ enum: Object.values(MessageDirection)
34
+ },
35
+ createdTime: {
36
+ type: 'string',
37
+ required: true
38
+ },
39
+ index: {
40
+ type: 'string',
41
+ required: true
42
+ },
43
+ replyToMessage: {
44
+ type: 'object',
45
+ required: false
46
+ },
47
+ status: {
48
+ type: 'string',
49
+ required: true,
50
+ enum: Object.values(MessageStatus)
51
+ },
52
+ info: {
53
+ type: 'object',
54
+ required: false,
55
+ schema: InfoSchema
56
+ },
57
+ location: {
58
+ type: 'object',
59
+ required: false,
60
+ schema: LocationSchema
61
+ },
62
+ externalInfo: {
63
+ type: 'object',
64
+ required: false,
65
+ schema: ExternalInfoSchema
66
+ },
67
+ layout: {
68
+ type: 'object',
69
+ required: false
70
+ },
71
+ action: {
72
+ type: 'object',
73
+ required: false,
74
+ action: ActionSchema
75
+ },
76
+ meta: {
77
+ type: 'array',
78
+ required: false
79
+ },
80
+ contentType: {
81
+ type: 'string',
82
+ required: true,
83
+ enum: Object.values(MessageContentType)
84
+ },
85
+ fullContentURL: {
86
+ type: 'string',
87
+ required: false
88
+ },
89
+ attachment: {
90
+ type: 'object',
91
+ required: false,
92
+ schema: AttachmentSchema
93
+ },
94
+ template: {
95
+ type: 'object',
96
+ required: false
97
+ },
98
+ type: {
99
+ type: 'string',
100
+ required: true,
101
+ enum: Object.values(MessageTypes)
102
+ },
103
+ isRead: {
104
+ type: 'boolean',
105
+ required: true
106
+ },
107
+ article: {
108
+ type: 'object',
109
+ required: false
110
+ }
111
+ };
112
+ export default MessageSchema;
@@ -0,0 +1,10 @@
1
+ import { SessionSchema } from "../session";
2
+ import MessageSchema from "./MessageSchema";
3
+ const MessageWithSessionSchema = { ...MessageSchema,
4
+ session: {
5
+ type: 'object',
6
+ required: true,
7
+ schema: SessionSchema
8
+ }
9
+ };
10
+ export default MessageWithSessionSchema;
@@ -0,0 +1,7 @@
1
+ import MessageSchema from "./MessageSchema";
2
+ import ActionSchema from "./ActionSchema";
3
+ import ExternalInfoSchema from "./ExternalInfoSchema";
4
+ import InfoSchema from "./InfoSchema";
5
+ import LocationSchema from "./LocationSchema";
6
+ import MessageWithSessionSchema from "./MessageWithSessionSchema";
7
+ export { MessageSchema, ActionSchema, ExternalInfoSchema, InfoSchema, LocationSchema, MessageWithSessionSchema };
@@ -0,0 +1,82 @@
1
+ import { IntegrationServices, SessionReplyStatus, SessionStatus } from "../../enum";
2
+ import { ActorSchema } from "../actor";
3
+ const SessionSchema = {
4
+ channelId: {
5
+ type: 'string',
6
+ required: true
7
+ },
8
+ status: {
9
+ type: 'string',
10
+ required: true,
11
+ enum: Object.values(SessionStatus)
12
+ },
13
+ createdTime: {
14
+ type: 'string',
15
+ required: true
16
+ },
17
+ agentId: {
18
+ type: 'string',
19
+ required: false
20
+ },
21
+ botId: {
22
+ type: 'string',
23
+ required: false
24
+ },
25
+ actor: {
26
+ type: 'object',
27
+ required: true,
28
+ schema: ActorSchema
29
+ },
30
+ subject: {
31
+ type: 'string',
32
+ required: false
33
+ },
34
+ messagesCount: {
35
+ type: 'string',
36
+ required: true
37
+ },
38
+ agentLastActiveTime: {
39
+ type: 'string',
40
+ required: true
41
+ },
42
+ contactLastActiveTime: {
43
+ type: 'string',
44
+ required: true
45
+ },
46
+ lastActiveTime: {
47
+ type: 'string',
48
+ required: true
49
+ },
50
+ unreadMessagesCount: {
51
+ type: 'string',
52
+ required: true
53
+ },
54
+ integrationServiceId: {
55
+ type: 'string',
56
+ required: true,
57
+ enum: Object.values(IntegrationServices)
58
+ },
59
+ replyStatus: {
60
+ type: 'string',
61
+ required: true,
62
+ enum: Object.values(SessionReplyStatus)
63
+ },
64
+ id: {
65
+ type: 'string',
66
+ required: true
67
+ },
68
+ contactId: {
69
+ type: 'string',
70
+ required: false
71
+ },
72
+ meta: {
73
+ type: 'array',
74
+ required: false
75
+ },
76
+ assignee: {
77
+ type: 'object',
78
+ required: false,
79
+ schema: ActorSchema
80
+ }
81
+ };
82
+ export default SessionSchema;
@@ -0,0 +1,2 @@
1
+ import SessionSchema from "./SessionSchema";
2
+ export { SessionSchema };
@@ -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;
@@ -0,0 +1,44 @@
1
+ import { ModuleNames } from "../../core/constants";
2
+ import ModuleFactory from "./ModuleFactory";
3
+ export default class ModuleManager {
4
+ constructor() {
5
+ this._modules = new Map();
6
+ this.supportedModules = [ModuleNames.CHANNELS, ModuleNames.SESSIONS, ModuleNames.BOTS, ModuleNames.MESSAGES, ModuleNames.AGENTS, ModuleNames.CONTACTS];
7
+ }
8
+
9
+ initialize(_ref) {
10
+ let {
11
+ apiConfig
12
+ } = _ref;
13
+ this.supportedModules.forEach(moduleName => {
14
+ const moduleConfig = apiConfig ? apiConfig[moduleName] || {} : {};
15
+ this.initializeModule({
16
+ moduleName,
17
+ config: moduleConfig
18
+ });
19
+ });
20
+ }
21
+
22
+ initializeModule(_ref2) {
23
+ let {
24
+ moduleName,
25
+ config
26
+ } = _ref2;
27
+ const createModule = ModuleFactory[moduleName];
28
+
29
+ if (createModule) {
30
+ this._modules.set(moduleName, createModule({
31
+ config
32
+ }));
33
+ }
34
+ }
35
+
36
+ getModule(moduleName) {
37
+ return this._modules.get(moduleName);
38
+ }
39
+
40
+ hasModule(moduleName) {
41
+ return this._modules.has(moduleName);
42
+ }
43
+
44
+ }
@@ -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 };