@zohoim/client-sdk 1.0.0-poc7 → 1.0.0-poc71

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 (243) 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 +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/index.js +3 -0
  20. package/es/core/utils/ResponseUtils.js +24 -0
  21. package/es/core/utils/index.js +3 -0
  22. package/es/core/utils/validateSchema.js +74 -0
  23. package/es/domain/dto/RequestBuilder.js +44 -0
  24. package/es/domain/dto/agents/getAgentsRequest.js +12 -0
  25. package/es/domain/dto/agents/index.js +1 -0
  26. package/es/domain/dto/bots/getBotRequest.js +9 -0
  27. package/es/domain/dto/bots/getBotsRequest.js +15 -0
  28. package/es/domain/dto/bots/index.js +2 -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 -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 +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/IntegrationService/IntegrationService.js +33 -0
  66. package/es/domain/entities/IntegrationService/index.js +2 -0
  67. package/es/domain/entities/Message/Action.js +19 -0
  68. package/es/domain/entities/Message/ExternalInfo.js +17 -0
  69. package/es/domain/entities/Message/Info.js +21 -0
  70. package/es/domain/entities/Message/Location.js +18 -0
  71. package/es/domain/entities/Message/Message.js +66 -0
  72. package/es/domain/entities/Message/MessageWithSession.js +21 -0
  73. package/es/domain/entities/Message/index.js +6 -0
  74. package/es/domain/entities/Session/Session.js +48 -0
  75. package/es/domain/entities/Session/index.js +2 -0
  76. package/es/domain/entities/index.js +9 -2
  77. package/es/domain/enum/actor/ActorType.js +7 -0
  78. package/es/domain/enum/actor/index.js +2 -0
  79. package/es/domain/enum/bot/BotServiceType.js +7 -0
  80. package/es/domain/enum/bot/index.js +2 -0
  81. package/es/domain/enum/index.js +5 -0
  82. package/es/domain/enum/integrationServices/IntegrationServices.js +11 -0
  83. package/es/domain/enum/integrationServices/index.js +2 -0
  84. package/es/domain/enum/message/ActionSubType.js +6 -0
  85. package/es/domain/enum/message/ActionType.js +6 -0
  86. package/es/domain/enum/message/ExternalInfoAction.js +9 -0
  87. package/es/domain/enum/message/InfoAction.js +17 -0
  88. package/es/domain/enum/message/InfoSessionStatus.js +10 -0
  89. package/es/domain/enum/message/MessageContentType.js +6 -0
  90. package/es/domain/enum/message/MessageDirection.js +6 -0
  91. package/es/domain/enum/message/MessageStatus.js +11 -0
  92. package/es/domain/enum/message/MessageType.js +11 -0
  93. package/es/domain/enum/message/index.js +10 -0
  94. package/es/domain/enum/session/SessionReplyStatus.js +20 -0
  95. package/es/domain/enum/session/SessionStatus.js +10 -0
  96. package/es/domain/enum/session/index.js +3 -0
  97. package/es/domain/interfaces/IAdapter.js +6 -0
  98. package/es/domain/interfaces/index.js +3 -1
  99. package/es/domain/interfaces/repositories/agents/IAgentRepository.js +17 -0
  100. package/es/domain/interfaces/repositories/agents/index.js +2 -0
  101. package/es/domain/interfaces/repositories/bots/IBotRepository.js +23 -0
  102. package/es/domain/interfaces/repositories/bots/index.js +2 -0
  103. package/es/domain/interfaces/repositories/channels/IChannelAgentRepository.js +17 -0
  104. package/es/domain/interfaces/repositories/channels/IChannelRepository.js +17 -0
  105. package/es/domain/interfaces/repositories/channels/index.js +3 -0
  106. package/es/domain/interfaces/repositories/contacts/IContactRepository.js +17 -0
  107. package/es/domain/interfaces/repositories/contacts/index.js +2 -0
  108. package/es/domain/interfaces/repositories/index.js +6 -0
  109. package/es/domain/interfaces/repositories/messages/IMessageRepository.js +52 -0
  110. package/es/domain/interfaces/repositories/messages/index.js +2 -0
  111. package/es/domain/interfaces/repositories/sessions/ISessionRepository.js +47 -0
  112. package/es/domain/interfaces/repositories/sessions/index.js +2 -0
  113. package/es/domain/schema/actor/ActorSchema.js +33 -0
  114. package/es/domain/schema/actor/AgentSchema.js +45 -0
  115. package/es/domain/schema/actor/index.js +3 -0
  116. package/es/domain/schema/attachment/AttachmentSchema.js +27 -0
  117. package/es/domain/schema/attachment/index.js +2 -0
  118. package/es/domain/schema/bot/BotSchema.js +33 -0
  119. package/es/domain/schema/bot/index.js +2 -0
  120. package/es/domain/schema/channel/ChannelSchema.js +49 -0
  121. package/es/domain/schema/channel/index.js +2 -0
  122. package/es/domain/schema/contact/ContactSchema.js +27 -0
  123. package/es/domain/schema/contact/index.js +2 -0
  124. package/es/domain/schema/index.js +8 -0
  125. package/es/domain/schema/integrationService/IntegrationServiceSchema.js +31 -0
  126. package/es/domain/schema/integrationService/index.js +2 -0
  127. package/es/domain/schema/message/ActionSchema.js +18 -0
  128. package/es/domain/schema/message/ExternalInfoSchema.js +9 -0
  129. package/es/domain/schema/message/InfoSchema.js +24 -0
  130. package/es/domain/schema/message/LocationSchema.js +11 -0
  131. package/es/domain/schema/message/MessageSchema.js +112 -0
  132. package/es/domain/schema/message/MessageWithSessionSchema.js +10 -0
  133. package/es/domain/schema/message/index.js +7 -0
  134. package/es/domain/schema/session/SessionSchema.js +82 -0
  135. package/es/domain/schema/session/index.js +2 -0
  136. package/es/frameworks/managers/ModuleFactory.js +58 -0
  137. package/es/frameworks/managers/ModuleManager.js +44 -0
  138. package/es/frameworks/managers/index.js +2 -0
  139. package/es/frameworks/sdk/IMSDK.js +62 -0
  140. package/es/frameworks/sdk/agents/AgentSDK.js +30 -0
  141. package/es/frameworks/sdk/agents/index.js +2 -0
  142. package/es/frameworks/sdk/bots/BotSDK.js +30 -0
  143. package/es/frameworks/sdk/bots/index.js +2 -0
  144. package/es/frameworks/sdk/channels/ChannelSDK.js +37 -0
  145. package/es/frameworks/sdk/channels/index.js +2 -0
  146. package/es/frameworks/sdk/contacts/ContactSDK.js +30 -0
  147. package/es/frameworks/sdk/contacts/index.js +2 -0
  148. package/es/frameworks/sdk/index.js +2 -0
  149. package/es/frameworks/sdk/messages/MessageSDK.js +32 -0
  150. package/es/frameworks/sdk/messages/index.js +2 -0
  151. package/es/frameworks/sdk/sessions/SessionSDK.js +34 -0
  152. package/es/frameworks/sdk/sessions/index.js +2 -0
  153. package/es/index.js +12 -4
  154. package/es/infrastructure/adapters/agents/AgentAdapter.js +28 -0
  155. package/es/infrastructure/adapters/agents/index.js +2 -0
  156. package/es/infrastructure/adapters/attachments/AttachmentAdapter.js +24 -0
  157. package/es/infrastructure/adapters/attachments/index.js +2 -0
  158. package/es/infrastructure/adapters/bots/BotAdapter.js +25 -0
  159. package/es/infrastructure/adapters/bots/index.js +2 -0
  160. package/es/infrastructure/adapters/channels/ChannelAdapter.js +29 -0
  161. package/es/infrastructure/adapters/channels/ChannelAgentAdapter.js +49 -0
  162. package/es/infrastructure/adapters/channels/index.js +3 -0
  163. package/es/infrastructure/adapters/contacts/ContactAdapter.js +24 -0
  164. package/es/infrastructure/adapters/contacts/index.js +2 -0
  165. package/es/infrastructure/adapters/index.js +7 -0
  166. package/es/infrastructure/adapters/messages/MessageAdapter.js +41 -0
  167. package/es/infrastructure/adapters/messages/MessageWithSessionAdapter.js +23 -0
  168. package/es/infrastructure/adapters/messages/index.js +2 -0
  169. package/es/infrastructure/adapters/sessions/SessionAdapter.js +36 -0
  170. package/es/infrastructure/adapters/sessions/index.js +2 -0
  171. package/es/infrastructure/api/BaseAPI.js +147 -0
  172. package/es/infrastructure/api/agents/AgentAPI.js +14 -0
  173. package/es/infrastructure/api/agents/index.js +2 -0
  174. package/es/infrastructure/api/bots/BotAPI.js +24 -0
  175. package/es/infrastructure/api/bots/index.js +2 -0
  176. package/es/infrastructure/api/channels/ChannelAPI.js +14 -0
  177. package/es/infrastructure/api/channels/ChannelAgentAPI.js +22 -0
  178. package/es/infrastructure/api/channels/index.js +3 -0
  179. package/es/infrastructure/api/contacts/ContactAPI.js +14 -0
  180. package/es/infrastructure/api/contacts/index.js +2 -0
  181. package/es/infrastructure/api/index.js +6 -0
  182. package/es/infrastructure/api/messages/MessageAPI.js +84 -0
  183. package/es/infrastructure/api/messages/index.js +2 -0
  184. package/es/infrastructure/api/registry/agents/agentAPIRegistry.js +12 -0
  185. package/es/infrastructure/api/registry/agents/constructAgentEndPoint.js +10 -0
  186. package/es/infrastructure/api/registry/agents/index.js +2 -0
  187. package/es/infrastructure/api/registry/bots/botAPIRegistry.js +17 -0
  188. package/es/infrastructure/api/registry/bots/constructBotEndPoint.js +10 -0
  189. package/es/infrastructure/api/registry/bots/index.js +2 -0
  190. package/es/infrastructure/api/registry/channels/channelAPIRegistry.js +16 -0
  191. package/es/infrastructure/api/registry/channels/channelAgentAPIRegistry.js +12 -0
  192. package/es/infrastructure/api/registry/channels/constructChannelEndPoint.js +10 -0
  193. package/es/infrastructure/api/registry/channels/index.js +2 -0
  194. package/es/infrastructure/api/registry/contacts/constructContactEndPoint.js +10 -0
  195. package/es/infrastructure/api/registry/contacts/contactAPIRegistry.js +12 -0
  196. package/es/infrastructure/api/registry/contacts/index.js +2 -0
  197. package/es/infrastructure/api/registry/createAPIRegistry.js +7 -0
  198. package/es/infrastructure/api/registry/createBaseUrl.js +3 -0
  199. package/es/infrastructure/api/registry/getRegistryConfig.js +26 -0
  200. package/es/infrastructure/api/registry/index.js +2 -0
  201. package/es/infrastructure/api/registry/messages/constructMessageEndPoint.js +4 -0
  202. package/es/infrastructure/api/registry/messages/index.js +2 -0
  203. package/es/infrastructure/api/registry/messages/messageAPIRegistry.js +57 -0
  204. package/es/infrastructure/api/registry/sessions/constructSessionEndPoint.js +10 -0
  205. package/es/infrastructure/api/registry/sessions/index.js +2 -0
  206. package/es/infrastructure/api/registry/sessions/sessionAPIRegistry.js +46 -0
  207. package/es/infrastructure/api/sessions/SessionAPI.js +74 -0
  208. package/es/infrastructure/api/sessions/index.js +2 -0
  209. package/es/infrastructure/config/configRegistry.js +27 -0
  210. package/es/infrastructure/config/index.js +2 -0
  211. package/es/infrastructure/repositories/agents/AgentRepository.js +49 -0
  212. package/es/infrastructure/repositories/agents/index.js +2 -0
  213. package/es/infrastructure/repositories/bots/BotRepository.js +58 -0
  214. package/es/infrastructure/repositories/bots/index.js +2 -0
  215. package/es/infrastructure/repositories/channels/ChannelAgentRepository.js +49 -0
  216. package/es/infrastructure/repositories/channels/ChannelRepository.js +49 -0
  217. package/es/infrastructure/repositories/channels/index.js +3 -0
  218. package/es/infrastructure/repositories/contacts/ContactRepository.js +49 -0
  219. package/es/infrastructure/repositories/contacts/index.js +2 -0
  220. package/es/infrastructure/repositories/index.js +6 -0
  221. package/es/infrastructure/repositories/messages/MessageRepository.js +111 -0
  222. package/es/infrastructure/repositories/messages/index.js +2 -0
  223. package/es/infrastructure/repositories/sessions/SessionRepository.js +105 -0
  224. package/es/infrastructure/repositories/sessions/index.js +2 -0
  225. package/package.json +4 -1
  226. package/es/domain/entities/Actor/ActorType.js +0 -6
  227. package/es/domain/errors/index.js +0 -2
  228. package/es/domain/interfaces/channels/IChannelAgent.js +0 -9
  229. package/es/domain/interfaces/channels/index.js +0 -2
  230. package/es/domain/services/channels/ChannelAgentService.js +0 -16
  231. package/es/domain/services/channels/index.js +0 -2
  232. package/es/domain/services/index.js +0 -1
  233. package/es/domain/types/channels/GetChannelAgentsRequest.js +0 -7
  234. package/es/domain/types/channels/index.js +0 -2
  235. package/es/domain/types/index.js +0 -1
  236. package/es/modules/channels/index.js +0 -1
  237. package/es/modules/channels/sdk/ChannelAgentsSDK.js +0 -13
  238. package/es/modules/channels/sdk/ChannelSDK.js +0 -7
  239. package/es/modules/channels/sdk/index.js +0 -2
  240. package/es/modules/index.js +0 -1
  241. package/es/sdk/IMSDK.js +0 -7
  242. package/es/sdk/index.js +0 -2
  243. /package/es/{domain → core}/errors/ValidationError.js +0 -0
@@ -0,0 +1,2 @@
1
+ import AttachmentSchema from "./AttachmentSchema";
2
+ export { AttachmentSchema };
@@ -0,0 +1,33 @@
1
+ import { BotServiceType } from "../../enum";
2
+ const BotSchema = {
3
+ id: {
4
+ type: 'string',
5
+ required: true
6
+ },
7
+ botServiceType: {
8
+ type: 'string',
9
+ required: true,
10
+ enum: [BotServiceType.DESK_GC_BOT, BotServiceType.DESK_ZIA_BOT, BotServiceType.ZOHO_GC_BOT, BotServiceType.ZOHO_ZIA_BOT]
11
+ },
12
+ name: {
13
+ type: 'string',
14
+ required: true
15
+ },
16
+ isActive: {
17
+ type: 'boolean',
18
+ required: true
19
+ },
20
+ createdTime: {
21
+ type: 'string',
22
+ required: true
23
+ },
24
+ photoURL: {
25
+ type: 'string',
26
+ required: false
27
+ },
28
+ createdBy: {
29
+ type: 'string',
30
+ required: true
31
+ }
32
+ };
33
+ export default BotSchema;
@@ -0,0 +1,2 @@
1
+ import BotSchema from "./BotSchema";
2
+ export { BotSchema };
@@ -0,0 +1,49 @@
1
+ import { IntegrationServiceSchema } from "../integrationService";
2
+ const ChannelSchema = {
3
+ id: {
4
+ type: 'string',
5
+ required: true
6
+ },
7
+ integrationService: {
8
+ type: 'object',
9
+ required: true,
10
+ schema: IntegrationServiceSchema
11
+ },
12
+ name: {
13
+ type: 'string',
14
+ required: true
15
+ },
16
+ defaultBotId: {
17
+ type: 'string',
18
+ required: false
19
+ },
20
+ isActive: {
21
+ type: 'boolean',
22
+ required: true
23
+ },
24
+ createdTime: {
25
+ type: 'string',
26
+ required: true
27
+ },
28
+ accountName: {
29
+ type: 'string',
30
+ required: false
31
+ },
32
+ isSubscribed: {
33
+ type: 'boolean',
34
+ required: false
35
+ },
36
+ createdBy: {
37
+ type: 'string',
38
+ required: false
39
+ },
40
+ isOwner: {
41
+ type: 'boolean',
42
+ required: false
43
+ },
44
+ photoURL: {
45
+ type: 'string',
46
+ required: false
47
+ }
48
+ };
49
+ export default ChannelSchema;
@@ -0,0 +1,2 @@
1
+ import ChannelSchema from "./ChannelSchema";
2
+ export { ChannelSchema };
@@ -0,0 +1,27 @@
1
+ const ContactSchema = {
2
+ id: {
3
+ type: 'string',
4
+ required: true
5
+ },
6
+ name: {
7
+ type: 'string',
8
+ required: true
9
+ },
10
+ email: {
11
+ type: 'string',
12
+ required: false
13
+ },
14
+ photoURL: {
15
+ type: 'string',
16
+ required: false
17
+ },
18
+ phone: {
19
+ type: 'string',
20
+ required: false
21
+ },
22
+ mobile: {
23
+ type: 'string',
24
+ required: false
25
+ }
26
+ };
27
+ export default ContactSchema;
@@ -0,0 +1,2 @@
1
+ import ContactSchema from "./ContactSchema";
2
+ export { ContactSchema };
@@ -0,0 +1,8 @@
1
+ export * from "./actor";
2
+ export * from "./session";
3
+ export * from "./bot";
4
+ export * from "./attachment";
5
+ export * from "./message";
6
+ export * from "./channel";
7
+ export * from "./integrationService";
8
+ export * from "./contact";
@@ -0,0 +1,31 @@
1
+ import { IntegrationServices } from "../../enum";
2
+ const IntegrationServiceSchema = {
3
+ label: {
4
+ type: 'string',
5
+ required: true
6
+ },
7
+ id: {
8
+ type: 'string',
9
+ required: true,
10
+ enum: Object.values(IntegrationServices)
11
+ },
12
+ provider: {
13
+ type: 'object',
14
+ required: true,
15
+ schema: {
16
+ name: {
17
+ type: 'string',
18
+ required: true
19
+ },
20
+ domain: {
21
+ type: 'string',
22
+ required: true
23
+ }
24
+ }
25
+ },
26
+ logoURL: {
27
+ type: 'string',
28
+ required: false
29
+ }
30
+ };
31
+ export default IntegrationServiceSchema;
@@ -0,0 +1,2 @@
1
+ import IntegrationServiceSchema from "./IntegrationServiceSchema";
2
+ export { IntegrationServiceSchema };
@@ -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;