@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,22 @@
1
+ import RequestBuilder from "../RequestBuilder";
2
+
3
+ function searchMessagesRequest() {
4
+ let {
5
+ query = {}
6
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7
+ return new RequestBuilder().withQuery({
8
+ from: 0,
9
+ limit: 50,
10
+ searchStr: null,
11
+ channelId: null,
12
+ agentId: null,
13
+ botId: null,
14
+ contactId: null,
15
+ sessionId: null,
16
+ sortBy: null,
17
+ workSpaceId: null,
18
+ ...query
19
+ }).build();
20
+ }
21
+
22
+ export default searchMessagesRequest;
@@ -0,0 +1,20 @@
1
+ import RequestBuilder from "../RequestBuilder";
2
+
3
+ function sendAttachmentRequest() {
4
+ let {
5
+ params = {},
6
+ body = {}
7
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
8
+ return new RequestBuilder().withParams({
9
+ sessionId: null,
10
+ messageId: null,
11
+ ...params
12
+ }).withBody({
13
+ message: null,
14
+ file: null,
15
+ replyToMessageId: null,
16
+ ...body
17
+ }).build();
18
+ }
19
+
20
+ export default sendAttachmentRequest;
@@ -0,0 +1,17 @@
1
+ import RequestBuilder from "../RequestBuilder";
2
+
3
+ function sendMessageRequest() {
4
+ let {
5
+ params = {},
6
+ body = {}
7
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
8
+ return new RequestBuilder().withParams({
9
+ sessionId: null,
10
+ ...params
11
+ }).withBody({
12
+ message: null,
13
+ ...body
14
+ }).build();
15
+ }
16
+
17
+ export default sendMessageRequest;
@@ -0,0 +1,13 @@
1
+ import RequestBuilder from "../RequestBuilder";
2
+
3
+ function getSessionAttachmentsRequest() {
4
+ let {
5
+ params = {}
6
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7
+ return new RequestBuilder().withParams({
8
+ sessionId: null,
9
+ ...params
10
+ }).build();
11
+ }
12
+
13
+ export default getSessionAttachmentsRequest;
@@ -0,0 +1,13 @@
1
+ import RequestBuilder from "../RequestBuilder";
2
+
3
+ function getSessionLastMessagesRequest() {
4
+ let {
5
+ body = {}
6
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7
+ return new RequestBuilder().withBody({
8
+ data: null,
9
+ ...body
10
+ }).build();
11
+ }
12
+
13
+ export default getSessionLastMessagesRequest;
@@ -0,0 +1,13 @@
1
+ import RequestBuilder from "../RequestBuilder";
2
+
3
+ function getSessionRequest() {
4
+ let {
5
+ params = {}
6
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7
+ return new RequestBuilder().withParams({
8
+ sessionId: null,
9
+ ...params
10
+ }).build();
11
+ }
12
+
13
+ export default getSessionRequest;
@@ -0,0 +1,26 @@
1
+ import RequestBuilder from "../RequestBuilder";
2
+
3
+ function getSessionsRequest() {
4
+ let {
5
+ query = {}
6
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7
+ return new RequestBuilder().withQuery({
8
+ from: 0,
9
+ limit: 50,
10
+ channelIds: null,
11
+ channelId: null,
12
+ agentId: null,
13
+ contactId: null,
14
+ profileId: null,
15
+ modifiedAfter: null,
16
+ createdBefore: null,
17
+ createdAfter: null,
18
+ status: null,
19
+ assigneeFilter: null,
20
+ workspaceId: null,
21
+ botIds: null,
22
+ ...query
23
+ }).build();
24
+ }
25
+
26
+ export default getSessionsRequest;
@@ -0,0 +1,7 @@
1
+ export { default as updateSessionAssigneeRequest } from "./updateSessionAssigneeRequest";
2
+ export { default as getSessionsRequest } from "./getSessionsRequest";
3
+ export { default as getSessionRequest } from "./getSessionRequest";
4
+ export { default as getSessionAttachmentsRequest } from "./getSessionAttachmentsRequest";
5
+ export { default as getSessionLastMessagesRequest } from "./getSessionLastMessagesRequest";
6
+ export { default as markSessionAsReadRequest } from "./markSessionAsReadRequest";
7
+ export { default as updateSessionStatusRequest } from "./updateSessionStatusRequest";
@@ -0,0 +1,13 @@
1
+ import RequestBuilder from "../RequestBuilder";
2
+
3
+ function markSessionAsReadRequest() {
4
+ let {
5
+ body = {}
6
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7
+ return new RequestBuilder().withBody({
8
+ lastSeenMessageId: null,
9
+ ...body
10
+ }).build();
11
+ }
12
+
13
+ export default markSessionAsReadRequest;
@@ -0,0 +1,12 @@
1
+ import RequestBuilder from "../RequestBuilder";
2
+
3
+ function updateSessionAssigneeRequest() {
4
+ return new RequestBuilder().withParams({
5
+ sessionId: null
6
+ }).withBody({
7
+ agentId: null,
8
+ botId: null
9
+ }).build();
10
+ }
11
+
12
+ export default updateSessionAssigneeRequest;
@@ -0,0 +1,17 @@
1
+ import RequestBuilder from "../RequestBuilder";
2
+
3
+ function updateSessionStatusRequest() {
4
+ let {
5
+ params = {},
6
+ body = {}
7
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
8
+ return new RequestBuilder().withParams({
9
+ sessionId: null,
10
+ ...params
11
+ }).withBody({
12
+ status: null,
13
+ ...body
14
+ }).build();
15
+ }
16
+
17
+ export default updateSessionStatusRequest;
@@ -0,0 +1,28 @@
1
+ import { validateSchema } from "../../../core/utils";
2
+ import { ActorType } from "../../enum";
3
+ import { ActorSchema } from "../../schema";
4
+ export default class Actor {
5
+ constructor() {
6
+ let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7
+ const validatedData = validateSchema(ActorSchema, data);
8
+ this.data = {
9
+ name: validatedData.name,
10
+ type: validatedData.type,
11
+ photoURL: validatedData.photoURL,
12
+ extId: validatedData.extId,
13
+ id: validatedData.id,
14
+ email: validatedData.email,
15
+ botType: validatedData.botType
16
+ };
17
+ }
18
+
19
+ static isBot(type) {
20
+ return type === ActorType.BOT;
21
+ }
22
+
23
+ toJSON() {
24
+ return { ...this.data
25
+ };
26
+ }
27
+
28
+ }
@@ -0,0 +1,2 @@
1
+ import Actor from "./Actor";
2
+ export { Actor };
@@ -0,0 +1,26 @@
1
+ import { validateSchema } from "../../../core/utils";
2
+ import { AgentSchema } from "../../schema";
3
+ export default class Agent {
4
+ constructor() {
5
+ let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6
+ const validatedData = validateSchema(AgentSchema, data);
7
+ this.data = {
8
+ id: validatedData.id,
9
+ firstName: validatedData.firstName,
10
+ lastName: validatedData.lastName,
11
+ email: validatedData.email,
12
+ photoURL: validatedData.photoURL || null,
13
+ zuid: validatedData.zuid,
14
+ role: validatedData.role,
15
+ status: validatedData.status,
16
+ type: validatedData.type,
17
+ name: validatedData.name
18
+ };
19
+ }
20
+
21
+ toJSON() {
22
+ return { ...this.data
23
+ };
24
+ }
25
+
26
+ }
@@ -0,0 +1,2 @@
1
+ import Agent from "./Agent";
2
+ export { Agent };
@@ -0,0 +1,22 @@
1
+ import { validateSchema } from "../../../core/utils";
2
+ import { AttachmentSchema } from "../../schema";
3
+ export default class Attachment {
4
+ constructor() {
5
+ let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6
+ const validatedData = validateSchema(AttachmentSchema, data);
7
+ this.data = {
8
+ id: validatedData.id,
9
+ name: validatedData.name,
10
+ type: validatedData.type,
11
+ createdTime: validatedData.createdTime,
12
+ size: validatedData.size,
13
+ url: validatedData.url
14
+ };
15
+ }
16
+
17
+ toJSON() {
18
+ return { ...this.data
19
+ };
20
+ }
21
+
22
+ }
@@ -0,0 +1,2 @@
1
+ import Attachment from "./Attachment";
2
+ export { Attachment };
@@ -0,0 +1,23 @@
1
+ import { validateSchema } from "../../../core/utils";
2
+ import { BotSchema } from "../../schema";
3
+ export default class Bot {
4
+ constructor() {
5
+ let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6
+ const validatedData = validateSchema(BotSchema, data);
7
+ this.data = {
8
+ id: validatedData.id,
9
+ botServiceType: validatedData.botServiceType,
10
+ name: validatedData.name,
11
+ isActive: validatedData.isActive,
12
+ createdTime: validatedData.createdTime,
13
+ photoURL: validatedData.photoURL || null,
14
+ createdBy: validatedData.createdBy
15
+ };
16
+ }
17
+
18
+ toJSON() {
19
+ return { ...this.data
20
+ };
21
+ }
22
+
23
+ }
@@ -0,0 +1,2 @@
1
+ import Bot from "./Bot";
2
+ export { Bot };
@@ -0,0 +1,38 @@
1
+ import { validateSchema } from "../../../core/utils";
2
+ import { ChannelSchema } from "../../schema";
3
+ export default class Channel {
4
+ constructor() {
5
+ let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6
+ const validatedData = validateSchema(ChannelSchema, data); // Set required properties from schema
7
+
8
+ this.id = validatedData.id;
9
+ this.integrationService = validatedData.integrationService;
10
+ this.name = validatedData.name;
11
+ this.isActive = validatedData.isActive;
12
+ this.createdTime = validatedData.createdTime; // Set optional properties from schema
13
+
14
+ this.defaultBotId = validatedData.defaultBotId || null;
15
+ this.accountName = validatedData.accountName || null;
16
+ this.isSubscribed = validatedData.isSubscribed || false;
17
+ this.createdBy = validatedData.createdBy || null;
18
+ this.isOwner = validatedData.isOwner || false;
19
+ this.photoURL = validatedData.photoURL || null;
20
+ }
21
+
22
+ toJSON() {
23
+ return {
24
+ id: this.id,
25
+ integrationService: this.integrationService,
26
+ name: this.name,
27
+ defaultBotId: this.defaultBotId,
28
+ isActive: this.isActive,
29
+ createdTime: this.createdTime,
30
+ accountName: this.accountName,
31
+ isSubscribed: this.isSubscribed,
32
+ createdBy: this.createdBy,
33
+ isOwner: this.isOwner,
34
+ photoURL: this.photoURL
35
+ };
36
+ }
37
+
38
+ }
@@ -0,0 +1,2 @@
1
+ import Channel from "./Channel";
2
+ export { Channel };
@@ -0,0 +1,22 @@
1
+ import { validateSchema } from "../../../core/utils";
2
+ import { ContactSchema } from "../../schema";
3
+ export default class Contact {
4
+ constructor() {
5
+ let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6
+ const validatedData = validateSchema(ContactSchema, data);
7
+ this.data = {
8
+ id: validatedData.id,
9
+ name: validatedData.name,
10
+ email: validatedData.email,
11
+ photoURL: validatedData.photoURL || null,
12
+ mobile: validatedData.mobile,
13
+ phone: validatedData.phone
14
+ };
15
+ }
16
+
17
+ toJSON() {
18
+ return { ...this.data
19
+ };
20
+ }
21
+
22
+ }
@@ -0,0 +1,2 @@
1
+ import Contact from "./Contact";
2
+ export { Contact };
@@ -0,0 +1,19 @@
1
+ import { validateSchema } from "../../../core/utils";
2
+ import { ActionSchema } from "../../schema";
3
+ export default class Action {
4
+ constructor() {
5
+ let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6
+ const validatedData = validateSchema(ActionSchema, data);
7
+ this.data = {
8
+ type: validatedData.type,
9
+ subType: validatedData.subType,
10
+ value: validatedData.value
11
+ };
12
+ }
13
+
14
+ toJSON() {
15
+ return { ...this.data
16
+ };
17
+ }
18
+
19
+ }
@@ -0,0 +1,17 @@
1
+ import { validateSchema } from "../../../core/utils";
2
+ import { ExternalInfoSchema } from "../../schema";
3
+ export default class ExternalInfo {
4
+ constructor() {
5
+ let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6
+ const validatedData = validateSchema(ExternalInfoSchema, data);
7
+ this.data = {
8
+ action: validatedData.action
9
+ };
10
+ }
11
+
12
+ toJSON() {
13
+ return { ...this.data
14
+ };
15
+ }
16
+
17
+ }
@@ -0,0 +1,21 @@
1
+ import { validateSchema } from "../../../core/utils";
2
+ import { Actor } from "../Actor";
3
+ import { InfoSchema } from "../../schema/message";
4
+ export default class Info {
5
+ constructor() {
6
+ let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7
+ const validatedData = validateSchema(InfoSchema, data);
8
+ this.data = {
9
+ actor: new Actor(validatedData.actor).toJSON(),
10
+ action: validatedData.action,
11
+ sessionStatus: validatedData.sessionStatus,
12
+ targets: validatedData.targets
13
+ };
14
+ }
15
+
16
+ toJSON() {
17
+ return { ...this.data
18
+ };
19
+ }
20
+
21
+ }
@@ -0,0 +1,18 @@
1
+ import { validateSchema } from "../../../core/utils";
2
+ import { LocationSchema } from "../../schema";
3
+ export default class Location {
4
+ constructor() {
5
+ let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6
+ const validatedData = validateSchema(LocationSchema, data);
7
+ this.data = {
8
+ latitude: validatedData.latitude,
9
+ longitude: validatedData.longitude
10
+ };
11
+ }
12
+
13
+ toJSON() {
14
+ return { ...this.data
15
+ };
16
+ }
17
+
18
+ }
@@ -0,0 +1,45 @@
1
+ import { validateSchema } from "../../../core/utils";
2
+ import { MessageSchema } from "../../schema";
3
+ import { Actor } from "../Actor";
4
+ import { Attachment } from "../Attachment";
5
+ import Action from "./Action";
6
+ import ExternalInfo from "./ExternalInfo";
7
+ import Info from "./Info";
8
+ import Location from "./Location";
9
+ export default class Message {
10
+ constructor() {
11
+ let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
12
+ const validatedData = validateSchema(MessageSchema, data);
13
+ this.data = {
14
+ id: validatedData.id,
15
+ sessionId: validatedData.sessionId,
16
+ displayMessage: validatedData.displayMessage,
17
+ statusUpdatedTime: validatedData.statusUpdatedTime,
18
+ actor: new Actor(validatedData.actor).toJSON(),
19
+ direction: validatedData.direction,
20
+ createdTime: validatedData.createdTime,
21
+ index: validatedData.index,
22
+ replyToMessage: validatedData.replyToMessage ? new Message(validatedData.replyToMessage).toJSON() : null,
23
+ status: validatedData.status,
24
+ info: validatedData.info ? new Info(validatedData.info).toJSON() : null,
25
+ location: validatedData.location ? new Location(validatedData.location).toJSON() : null,
26
+ externalInfo: validatedData.externalInfo ? new ExternalInfo(validatedData.externalInfo).toJSON() : null,
27
+ layout: validatedData.layout,
28
+ action: validatedData.action ? new Action(validatedData.action).toJSON() : null,
29
+ meta: validatedData.meta,
30
+ contentType: validatedData.contentType,
31
+ fullContentURL: validatedData.fullContentURL,
32
+ attachment: validatedData.attachment ? new Attachment(validatedData.attachment).toJSON() : null,
33
+ template: validatedData.template,
34
+ type: validatedData.type,
35
+ isRead: validatedData.isRead,
36
+ article: validatedData.article
37
+ };
38
+ }
39
+
40
+ toJSON() {
41
+ return { ...this.data
42
+ };
43
+ }
44
+
45
+ }
@@ -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,6 @@
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";
@@ -0,0 +1,35 @@
1
+ import { validateSchema } from "../../../core/utils";
2
+ import { SessionSchema } from "../../schema";
3
+ import { Actor } from "../Actor";
4
+ export default class Session {
5
+ constructor() {
6
+ let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7
+ const validatedData = validateSchema(SessionSchema, data);
8
+ this.data = {
9
+ channelId: validatedData.channelId,
10
+ status: validatedData.status,
11
+ createdTime: validatedData.createdTime,
12
+ agentId: validatedData.agentId,
13
+ botId: validatedData.botId,
14
+ actor: new Actor(validatedData.actor).toJSON(),
15
+ subject: validatedData.subject,
16
+ messagesCount: validatedData.messagesCount,
17
+ agentLastActiveTime: validatedData.agentLastActiveTime,
18
+ contactLastActiveTime: validatedData.contactLastActiveTime,
19
+ lastActiveTime: validatedData.lastActiveTime,
20
+ unreadMessagesCount: validatedData.unreadMessagesCount,
21
+ integrationServiceId: validatedData.integrationServiceId,
22
+ replyStatus: validatedData.replyStatus,
23
+ id: validatedData.id,
24
+ contactId: validatedData.contactId,
25
+ meta: validatedData.meta,
26
+ assignee: validatedData.assignee ? new Actor(validatedData.assignee).toJSON() : null
27
+ };
28
+ }
29
+
30
+ toJSON() {
31
+ return { ...this.data
32
+ };
33
+ }
34
+
35
+ }
@@ -0,0 +1,2 @@
1
+ import Session from "./Session";
2
+ export { Session };
@@ -0,0 +1,8 @@
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";
@@ -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 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,5 @@
1
+ export * from "./integrationServices";
2
+ export * from "./session";
3
+ export * from "./actor";
4
+ export * from "./bot";
5
+ export * from "./message";
@@ -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;