@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,78 @@
1
+ import { validateSchema } from "../../../core/utils";
2
+ import { MessageDirection, MessageStatus, MessageTypes } from "../../enum";
3
+ import { MessageSchema } from "../../schema";
4
+ import { Actor } from "../Actor";
5
+ import { Attachment } from "../Attachment";
6
+ import Action from "./Action";
7
+ import ExternalInfo from "./ExternalInfo";
8
+ import Info from "./Info";
9
+ import Location from "./Location";
10
+ export default class Message {
11
+ constructor() {
12
+ let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
13
+ const validatedData = validateSchema(MessageSchema, data);
14
+ this.data = {
15
+ id: validatedData.id,
16
+ sessionId: validatedData.sessionId,
17
+ displayMessage: validatedData.displayMessage,
18
+ statusUpdatedTime: validatedData.statusUpdatedTime,
19
+ actor: new Actor(validatedData.actor).toJSON(),
20
+ direction: validatedData.direction,
21
+ createdTime: validatedData.createdTime,
22
+ index: validatedData.index,
23
+ replyToMessage: validatedData.replyToMessage ? new Message(validatedData.replyToMessage).toJSON() : null,
24
+ status: validatedData.status,
25
+ info: validatedData.info ? new Info(validatedData.info).toJSON() : null,
26
+ location: validatedData.location ? new Location(validatedData.location).toJSON() : null,
27
+ externalInfo: validatedData.externalInfo ? new ExternalInfo(validatedData.externalInfo).toJSON() : null,
28
+ layout: validatedData.layout,
29
+ action: validatedData.action ? new Action(validatedData.action).toJSON() : null,
30
+ meta: validatedData.meta,
31
+ contentType: validatedData.contentType,
32
+ fullContentURL: validatedData.fullContentURL,
33
+ attachment: validatedData.attachment ? new Attachment(validatedData.attachment).toJSON() : null,
34
+ template: validatedData.template,
35
+ type: validatedData.type,
36
+ isRead: validatedData.isRead,
37
+ article: validatedData.article
38
+ };
39
+ }
40
+
41
+ static isLocation(type) {
42
+ return type === MessageTypes.LOCATION;
43
+ }
44
+
45
+ static isDeleted(status) {
46
+ return status === MessageStatus.DELETED;
47
+ }
48
+
49
+ static isOutgoing(direction) {
50
+ return direction === MessageDirection.OUT;
51
+ }
52
+
53
+ static isIncoming(direction) {
54
+ return direction === MessageDirection.IN;
55
+ }
56
+
57
+ static isInfo(type) {
58
+ return type === MessageTypes.INFO;
59
+ }
60
+
61
+ static isAttachment(type) {
62
+ return type === MessageTypes.ATTACHMENT;
63
+ }
64
+
65
+ static isActionMessage(type) {
66
+ return type === MessageTypes.ACTION;
67
+ }
68
+
69
+ static isAutoSent(systemMsgType) {
70
+ return !!systemMsgType;
71
+ }
72
+
73
+ toJSON() {
74
+ return { ...this.data
75
+ };
76
+ }
77
+
78
+ }
@@ -0,0 +1,21 @@
1
+ import { validateSchema } from "../../../core/utils";
2
+ import { MessageWithSessionSchema } from "../../schema";
3
+ import { Session } from "../Session";
4
+ import Message from "./Message";
5
+ export default class MessageWithSession {
6
+ constructor() {
7
+ let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
8
+ const validatedData = validateSchema(MessageWithSessionSchema, data);
9
+ const messageData = new Message(validatedData).toJSON();
10
+ const sessionData = new Session(validatedData.session).toJSON();
11
+ this.data = { ...messageData,
12
+ session: sessionData
13
+ };
14
+ }
15
+
16
+ toJSON() {
17
+ return { ...this.data
18
+ };
19
+ }
20
+
21
+ }
@@ -0,0 +1,7 @@
1
+ export { default as Message } from "./Message";
2
+ export { default as Info } from "./Info";
3
+ export { default as Action } from "./Action";
4
+ export { default as ExternalInfo } from "./ExternalInfo";
5
+ export { default as Location } from "./Location";
6
+ export { default as MessageWithSession } from "./MessageWithSession";
7
+ export { default as InfoTarget } from "./InfoTarget";
@@ -0,0 +1,60 @@
1
+ import { validateSchema } from "../../../core/utils";
2
+ import { SessionSchema } from "../../schema";
3
+ import { Actor } from "../Actor";
4
+ import { SessionReplyStatus, SessionStatus } from "../../enum";
5
+ export default class Session {
6
+ constructor() {
7
+ let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
8
+ const validatedData = validateSchema(SessionSchema, data);
9
+ this.data = {
10
+ channelId: validatedData.channelId,
11
+ status: validatedData.status,
12
+ createdTime: validatedData.createdTime,
13
+ agentId: validatedData.agentId,
14
+ botId: validatedData.botId,
15
+ actor: new Actor(validatedData.actor).toJSON(),
16
+ subject: validatedData.subject,
17
+ messagesCount: validatedData.messagesCount,
18
+ agentLastActiveTime: validatedData.agentLastActiveTime,
19
+ contactLastActiveTime: validatedData.contactLastActiveTime,
20
+ lastActiveTime: validatedData.lastActiveTime,
21
+ unreadMessagesCount: validatedData.unreadMessagesCount,
22
+ integrationServiceId: validatedData.integrationServiceId,
23
+ replyStatus: validatedData.replyStatus,
24
+ id: validatedData.id,
25
+ contactId: validatedData.contactId,
26
+ meta: validatedData.meta,
27
+ assignee: validatedData.assignee ? new Actor(validatedData.assignee).toJSON() : null
28
+ };
29
+ }
30
+
31
+ static isEnded(sessionStatus) {
32
+ return sessionStatus === SessionStatus.ENDED;
33
+ }
34
+
35
+ static isBlocked(sessionStatus) {
36
+ return sessionStatus === SessionStatus.BLOCKED;
37
+ }
38
+
39
+ static isInactiveChannel(replyStatus) {
40
+ return replyStatus === SessionReplyStatus.CHANNEL_INACTIVE;
41
+ }
42
+
43
+ static isOpen(sessionStatus) {
44
+ return sessionStatus === SessionStatus.OPEN;
45
+ }
46
+
47
+ static isCreated(sessionStatus) {
48
+ return sessionStatus === SessionStatus.CREATED;
49
+ }
50
+
51
+ static isAssignedToOtherService(replyStatus) {
52
+ return replyStatus === SessionReplyStatus.ASSIGNED_TO_OTHER_SERVICE;
53
+ }
54
+
55
+ toJSON() {
56
+ return { ...this.data
57
+ };
58
+ }
59
+
60
+ }
@@ -0,0 +1,2 @@
1
+ import Session from "./Session";
2
+ export { Session };
@@ -1,2 +1,9 @@
1
- export * from './Actor';
2
- export * from './Agent';
1
+ export * from "./Actor";
2
+ export * from "./Agent";
3
+ export * from "./Session";
4
+ export * from "./Bot";
5
+ export * from "./Attachment";
6
+ export * from "./Message";
7
+ export * from "./Channel";
8
+ export * from "./Contact";
9
+ export * from "./IntegrationService";
@@ -0,0 +1,7 @@
1
+ const ActorType = {
2
+ AGENT: 'AGENT',
3
+ BOT: 'BOT',
4
+ ENDUSER: 'ENDUSER',
5
+ SYSTEM: 'SYSTEM'
6
+ };
7
+ export default ActorType;
@@ -0,0 +1,2 @@
1
+ import ActorType from "./ActorType";
2
+ export { ActorType };
@@ -0,0 +1,7 @@
1
+ const AttachmentStatus = {
2
+ VALID: 'VALID',
3
+ // NO I18N
4
+ INVALID: 'INVALID' // NO I18N
5
+
6
+ };
7
+ export default AttachmentStatus;
@@ -0,0 +1,2 @@
1
+ import AttachmentStatus from "./AttachmentStatus";
2
+ export { AttachmentStatus };
@@ -0,0 +1,7 @@
1
+ const BotServiceType = {
2
+ DESK_GC_BOT: 'DESK_GC_BOT',
3
+ DESK_ZIA_BOT: 'DESK_ZIA_BOT',
4
+ ZOHO_GC_BOT: 'ZOHO_GC_BOT',
5
+ ZOHO_ZIA_BOT: 'ZOHO_ZIA_BOT'
6
+ };
7
+ export default BotServiceType;
@@ -0,0 +1,2 @@
1
+ import BotServiceType from "./BotServiceType";
2
+ export { BotServiceType };
@@ -0,0 +1,6 @@
1
+ export * from "./integrationServices";
2
+ export * from "./session";
3
+ export * from "./actor";
4
+ export * from "./bot";
5
+ export * from "./message";
6
+ export * from "./attachment";
@@ -0,0 +1,11 @@
1
+ const IntegrationServices = {
2
+ TWILIO: 'TWILIO',
3
+ WHATSAPP: 'WHATSAPP',
4
+ TELEGRAM: 'TELEGRAM',
5
+ WECHAT: 'WECHAT',
6
+ LINE: 'LINE',
7
+ IM_TALK: 'IM_TALK',
8
+ FACEBOOKMESSENGER: 'FACEBOOKMESSENGER',
9
+ INSTAGRAM: 'INSTAGRAM'
10
+ };
11
+ export default IntegrationServices;
@@ -0,0 +1,2 @@
1
+ import IntegrationServices from "./IntegrationServices";
2
+ export { IntegrationServices };
@@ -0,0 +1,6 @@
1
+ const ActionSubType = {
2
+ CONNECTION_AUTHENTICATE: 'CONNECTION_AUTHENTICATE',
3
+ AGENT: 'AGENT',
4
+ UN_IDENTIFIED: 'UN_IDENTIFIED'
5
+ };
6
+ export default ActionSubType;
@@ -0,0 +1,6 @@
1
+ const ActionType = {
2
+ TRANSFER: 'TRANSFER',
3
+ REDIRECT_URL: 'REDIRECT_URL',
4
+ UN_INDENTIFIED: 'UN_IDENTIFIED'
5
+ };
6
+ export default ActionType;
@@ -0,0 +1,9 @@
1
+ const ExternalInfoAction = {
2
+ UN_IDENTIFIED: 'UN_IDENTIFIED',
3
+ GC_CONVERSATION_ENDED: 'GC_CONVERSATION_ENDED',
4
+ ZIA_CONVERSATION_ENDED: 'ZIA_CONVERSATION_ENDED',
5
+ NEW_FOLLOWER: 'NEW_FOLLOWER',
6
+ CHAT_BLOCKED: 'CHAT_BLOCKED',
7
+ CHAT_UNBLOCKED: 'CHAT_UNBLOCKED'
8
+ };
9
+ export default ExternalInfoAction;
@@ -0,0 +1,17 @@
1
+ const InfoAction = {
2
+ UN_IDENTIFIED: 'UN_IDENTIFIED',
3
+ END_SESSION: 'END_SESSION',
4
+ BLOCK_SESSION: 'BLOCK_SESSION',
5
+ UNBLOCK_SESSION: 'UNBLOCK_SESSION',
6
+ CHAT_AUTO_ASSIGN: 'CHAT_AUTO_ASSIGN',
7
+ CHAT_ACCEPT: 'CHAT_ACCEPT',
8
+ CHAT_REOPEN: 'CHAT_REOPEN',
9
+ CHAT_TRANSFER: 'CHAT_TRANSFER',
10
+ ADD_PARTICIPANT: 'ADD_PARTICIPANT',
11
+ REMOVE_PARTICIPANT: 'REMOVE_PARTICIPANT',
12
+ CHAT_REOPENED_ON_TRANSFER: 'CHAT_REOPENED_ON_TRANSFER',
13
+ CHAT_INITIATION: 'CHAT_INITIATION',
14
+ USER_LEFT: 'USER_LEFT',
15
+ USER_JOINED: 'USER_JOINED'
16
+ };
17
+ export default InfoAction;
@@ -0,0 +1,10 @@
1
+ const InfoSessionStatus = {
2
+ CREATED: 'CREATED',
3
+ OPEN: 'OPEN',
4
+ ON_PROGRESS: 'ON_PROGRESS',
5
+ ON_HOLD: 'ON_HOLD',
6
+ ENDED: 'ENDED',
7
+ BLOCKED: 'BLOCKED',
8
+ MISSED: 'MISSED'
9
+ };
10
+ export default InfoSessionStatus;
@@ -0,0 +1,7 @@
1
+ const InfoTargetType = {
2
+ AGENT: 'AGENT',
3
+ BOT: 'BOT',
4
+ END_USER: 'END_USER',
5
+ SESSION: 'SESSION'
6
+ };
7
+ export default InfoTargetType;
@@ -0,0 +1,6 @@
1
+ const MessageContentType = {
2
+ HTML_TEXT: 'text/html',
3
+ PLAIN_TEXT: 'text/plain',
4
+ APPLICATION_JSON: 'application/json'
5
+ };
6
+ export default MessageContentType;
@@ -0,0 +1,6 @@
1
+ const MessageDirection = {
2
+ OUT: 'OUT',
3
+ IN: 'IN'
4
+ }; // For im api need to changes this as out and in
5
+
6
+ export default MessageDirection;
@@ -0,0 +1,11 @@
1
+ const MessageStatus = {
2
+ SAVED: 'SAVED',
3
+ FAILED: 'FAILED',
4
+ QUEUED: 'QUEUED',
5
+ SENT: 'SENT',
6
+ DELIVERED: 'DELIVERED',
7
+ READ: 'READ',
8
+ DELETED: 'DELETED',
9
+ MISSED: 'MISSED'
10
+ };
11
+ export default MessageStatus;
@@ -0,0 +1,11 @@
1
+ const MessageTypes = {
2
+ TEXT: 'TEXT',
3
+ INFO: 'INFO',
4
+ ATTACHMENT: 'ATTACHMENT',
5
+ LOCATION: 'LOCATION',
6
+ LAYOUT: 'LAYOUT',
7
+ EXTERNAL_INFO: 'EXTERNAL_INFO',
8
+ TEMPLATE: 'TEMPLATE',
9
+ ACTION: 'ACTION'
10
+ };
11
+ export default MessageTypes;
@@ -0,0 +1,11 @@
1
+ import MessageTypes from "./MessageType";
2
+ import MessageStatus from "./MessageStatus";
3
+ import MessageDirection from "./MessageDirection";
4
+ import MessageContentType from "./MessageContentType";
5
+ import ActionType from "./ActionType";
6
+ import ExternalInfoAction from "./ExternalInfoAction";
7
+ import InfoSessionStatus from "./InfoSessionStatus";
8
+ import InfoAction from "./InfoAction";
9
+ import ActionSubType from "./ActionSubType";
10
+ import InfoTargetType from "./InfoTargetType";
11
+ export { MessageTypes, MessageStatus, MessageDirection, MessageContentType, ActionType, ActionSubType, ExternalInfoAction, InfoSessionStatus, InfoAction, InfoTargetType };
@@ -0,0 +1,21 @@
1
+ const SessionReplyStatus = {
2
+ ACCEPTED: 'ACCEPTED',
3
+ CHANNEL_INACTIVE: 'CHANNEL_INACTIVE',
4
+ CHANNEL_REVOKED: 'CHANNEL_REVOKED',
5
+ SESSION_ENDED: 'SESSION_ENDED',
6
+ SESSION_BLOCKED: 'SESSION_BLOCKED',
7
+ SESSION_EXPIRED: 'SESSION_EXPIRED',
8
+ UNASSIGNED: 'UNASSIGNED',
9
+ NOT_AN_ASSIGNEE: 'NOT_AN_ASSIGNEE',
10
+ CREDIT_EXHAUSTED: 'CREDIT_EXHAUSTED',
11
+ ACCESSTOKEN_EXPIRED: 'ACCESSTOKEN_EXPIRED',
12
+ PERMISSION_REVOKED: 'PERMISSION_REVOKED',
13
+ UNEXPECTED_ERROR: 'UNEXPECTED_ERROR',
14
+ PAGE_REMOVED: 'PAGE_REMOVED',
15
+ SANDBOX_LIMIT_REACHED: 'SANDBOX_LIMIT_REACHED',
16
+ CHANNEL_DELETED: 'CHANNEL_DELETED',
17
+ ENDUSER_OFFLINE: 'ENDUSER_OFFLINE',
18
+ CONFIG_SKIPPED_CHANNEL: 'CONFIG_SKIPPED_CHANNEL',
19
+ ASSIGNED_TO_OTHER_SERVICE: 'ASSIGNED_TO_OTHER_SERVICE'
20
+ };
21
+ export default SessionReplyStatus;
@@ -0,0 +1,10 @@
1
+ const SessionStatus = {
2
+ CREATED: 'CREATED',
3
+ OPEN: 'OPEN',
4
+ ON_PROGRESS: 'ON_PROGRESS',
5
+ ON_HOLD: 'ON_HOLD',
6
+ ENDED: 'ENDED',
7
+ BLOCKED: 'BLOCKED',
8
+ UNASSIGNED: 'UNASSIGNED'
9
+ };
10
+ export default SessionStatus;
@@ -0,0 +1,3 @@
1
+ import SessionReplyStatus from "./SessionReplyStatus";
2
+ import SessionStatus from "./SessionStatus";
3
+ export { SessionStatus, SessionReplyStatus };
@@ -0,0 +1,6 @@
1
+ export default class IAdapter {
2
+ adapt() {
3
+ throw new Error('Method "adapt" must be implemented');
4
+ }
5
+
6
+ }
@@ -1 +1,3 @@
1
- export * from './channels';
1
+ import IAdapter from "./IAdapter";
2
+ export * from "./repositories";
3
+ export { IAdapter };
@@ -0,0 +1,17 @@
1
+ import { ModuleNames } from "../../../../core/constants";
2
+ import BaseAPI from "../../../../infrastructure/api/BaseAPI";
3
+ import { getAgentsRequest } from "../../../dto";
4
+ export default class IAgentRepository extends BaseAPI {
5
+ constructor() {
6
+ super({
7
+ module: ModuleNames.AGENTS
8
+ });
9
+ } // eslint-disable-next-line no-unused-vars
10
+
11
+
12
+ async getAgents() {
13
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getAgentsRequest();
14
+ throw new Error('Method not implemented');
15
+ }
16
+
17
+ }
@@ -0,0 +1,2 @@
1
+ import IAgentRepository from "./IAgentRepository";
2
+ export { IAgentRepository };
@@ -0,0 +1,23 @@
1
+ import { ModuleNames } from "../../../../core/constants";
2
+ import BaseAPI from "../../../../infrastructure/api/BaseAPI";
3
+ import { getBotsRequest, getBotRequest } from "../../../dto";
4
+ export default class IBotRepository extends BaseAPI {
5
+ constructor() {
6
+ super({
7
+ module: ModuleNames.BOTS
8
+ });
9
+ } // eslint-disable-next-line no-unused-vars
10
+
11
+
12
+ async getBots() {
13
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getBotsRequest();
14
+ throw new Error('Method not implemented');
15
+ } // eslint-disable-next-line no-unused-vars
16
+
17
+
18
+ async getBot() {
19
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getBotRequest();
20
+ throw new Error('Method not implemented');
21
+ }
22
+
23
+ }
@@ -0,0 +1,2 @@
1
+ import IBotRepository from "./IBotRepository";
2
+ export { IBotRepository };
@@ -0,0 +1,17 @@
1
+ import { ModuleNames } from "../../../../core/constants";
2
+ import BaseAPI from "../../../../infrastructure/api/BaseAPI";
3
+ import { getChannelAgentsRequest } from "../../../dto";
4
+ export default class IChannelAgentRepository extends BaseAPI {
5
+ constructor() {
6
+ super({
7
+ module: `${ModuleNames.CHANNELS}.${ModuleNames.AGENTS}`
8
+ });
9
+ } // eslint-disable-next-line no-unused-vars
10
+
11
+
12
+ getAgents() {
13
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getChannelAgentsRequest();
14
+ throw new Error('Method not implemented.');
15
+ }
16
+
17
+ }
@@ -0,0 +1,17 @@
1
+ import { ModuleNames } from "../../../../core/constants";
2
+ import BaseAPI from "../../../../infrastructure/api/BaseAPI";
3
+ import { getChannelsRequest } from "../../../dto";
4
+ export default class IChannelRepository extends BaseAPI {
5
+ constructor() {
6
+ super({
7
+ module: ModuleNames.CHANNELS
8
+ });
9
+ } // eslint-disable-next-line no-unused-vars
10
+
11
+
12
+ getChannels() {
13
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getChannelsRequest();
14
+ throw new Error('Method not implemented.');
15
+ }
16
+
17
+ }
@@ -0,0 +1,3 @@
1
+ import IChannelAgentRepository from "./IChannelAgentRepository";
2
+ import IChannelRepository from "./IChannelRepository";
3
+ export { IChannelRepository, IChannelAgentRepository };
@@ -0,0 +1,17 @@
1
+ import { ModuleNames } from "../../../../core/constants";
2
+ import BaseAPI from "../../../../infrastructure/api/BaseAPI";
3
+ import { getContactsRequest } from "../../../dto";
4
+ export default class IContactRepository extends BaseAPI {
5
+ constructor() {
6
+ super({
7
+ module: ModuleNames.CONTACTS
8
+ });
9
+ } // eslint-disable-next-line no-unused-vars
10
+
11
+
12
+ async getContacts() {
13
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getContactsRequest();
14
+ throw new Error('Method not implemented');
15
+ }
16
+
17
+ }
@@ -0,0 +1,2 @@
1
+ import IContactRepository from "./IContactRepository";
2
+ export { IContactRepository };
@@ -0,0 +1,6 @@
1
+ export * from "./channels";
2
+ export * from "./sessions";
3
+ export * from "./bots";
4
+ export * from "./messages";
5
+ export * from "./agents";
6
+ export * from "./contacts";
@@ -0,0 +1,52 @@
1
+ /* eslint-disable no-unused-vars */
2
+ import { ModuleNames } from "../../../../core/constants";
3
+ import BaseAPI from "../../../../infrastructure/api/BaseAPI";
4
+ import { getMessagesRequest, deleteMessageRequest, getFullContentRequest, resendMessageRequest, sendAttachmentRequest, sendMessageRequest, initiateSessionRequest, searchMessagesRequest } from "../../../dto";
5
+ export default class IMessageRepository extends BaseAPI {
6
+ constructor() {
7
+ super({
8
+ module: ModuleNames.MESSAGES
9
+ });
10
+ }
11
+
12
+ getMessages() {
13
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getMessagesRequest();
14
+ throw new Error('Method not implemented.');
15
+ }
16
+
17
+ getFullContent() {
18
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getFullContentRequest();
19
+ throw new Error('Method not implemented.');
20
+ }
21
+
22
+ sendMessage() {
23
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : sendMessageRequest();
24
+ throw new Error('Method not implemented.');
25
+ }
26
+
27
+ sendAttachment() {
28
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : sendAttachmentRequest();
29
+ throw new Error('Method not implemented.');
30
+ }
31
+
32
+ resendMessage() {
33
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : resendMessageRequest();
34
+ throw new Error('Method not implemented.');
35
+ }
36
+
37
+ deleteMessage() {
38
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : deleteMessageRequest();
39
+ throw new Error('Method not implemented.');
40
+ }
41
+
42
+ initiateSession() {
43
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initiateSessionRequest();
44
+ throw new Error('Method not implemented.');
45
+ }
46
+
47
+ searchMessages() {
48
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : searchMessagesRequest();
49
+ throw new Error('Method not implemented.');
50
+ }
51
+
52
+ }
@@ -0,0 +1,2 @@
1
+ import IMessageRepository from "./IMessageRepository";
2
+ export { IMessageRepository };