@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,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,8 @@
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";
8
+ export { default as pickupSessionRequest } from "./pickupSessionRequest";
@@ -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,9 @@
1
+ import RequestBuilder from "../RequestBuilder";
2
+
3
+ function pickupSessionRequest() {
4
+ return new RequestBuilder().withParams({
5
+ sessionId: null
6
+ }).build();
7
+ }
8
+
9
+ export default pickupSessionRequest;
@@ -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,18 @@
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
+ agentId: null,
14
+ ...body
15
+ }).build();
16
+ }
17
+
18
+ export default updateSessionStatusRequest;
@@ -0,0 +1,33 @@
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
+ service: validatedData.service
17
+ };
18
+ }
19
+
20
+ static isBot(type) {
21
+ return type === ActorType.BOT;
22
+ }
23
+
24
+ static isEndUser(type) {
25
+ return type === ActorType.ENDUSER;
26
+ }
27
+
28
+ toJSON() {
29
+ return { ...this.data
30
+ };
31
+ }
32
+
33
+ }
@@ -1,2 +1,2 @@
1
- import ActorType from './ActorType';
2
- export { ActorType };
1
+ import Actor from "./Actor";
2
+ export { Actor };
@@ -1,110 +1,25 @@
1
- import { ValidationError } from '../../../core/errors';
2
- import ActorType from '../Actor/ActorType';
1
+ import { validateSchema } from "../../../core/utils";
2
+ import { AgentSchema } from "../../schema";
3
3
  export default class Agent {
4
4
  constructor() {
5
- let {
6
- id = '',
7
- name = '',
8
- email = '',
9
- photoURL = '',
10
- zuid = '',
11
- type = ''
12
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
13
- Agent.validateFields({
14
- id,
15
- email,
16
- name,
17
- zuid
18
- });
19
- this._id = id;
20
- this._name = name;
21
- this._email = email;
22
- this._photoURL = photoURL;
23
- this._zuid = zuid;
24
- this.setType(type);
25
- }
26
-
27
- static validateFields(_ref) {
28
- let {
29
- id,
30
- email,
31
- name,
32
- zuid
33
- } = _ref;
34
- Agent.validateId(id);
35
- Agent.validateEmail(email);
36
- Agent.validateName(name);
37
- Agent.validateZuid(zuid);
38
- }
39
-
40
- static validateId(id) {
41
- if (!id) {
42
- throw new ValidationError('Agent ID is required');
43
- }
44
- }
45
-
46
- static validateEmail(email) {
47
- if (!email) {
48
- throw new ValidationError('Agent email is required');
49
- }
50
- }
51
-
52
- static validateName(name) {
53
- if (!name) {
54
- throw new ValidationError('Agent name is required');
55
- }
56
- }
57
-
58
- static validateZuid(zuid) {
59
- if (!zuid) {
60
- throw new ValidationError('Agent zuid is required');
61
- }
62
- }
63
-
64
- static validateType(type) {
65
- return type === ActorType.AGENT;
66
- }
67
-
68
- setType(type) {
69
- if (!Agent.validateType(type)) {
70
- throw new Error('Invalid actor type. Must be AGENT');
71
- }
72
-
73
- this._type = type;
74
- }
75
-
76
- get id() {
77
- return this._id;
78
- }
79
-
80
- get name() {
81
- return this._name;
82
- }
83
-
84
- get email() {
85
- return this._email;
86
- }
87
-
88
- get photoURL() {
89
- return this._photoURL;
90
- }
91
-
92
- get zuid() {
93
- return this._zuid;
94
- }
95
-
96
- get type() {
97
- return this._type;
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
+ };
98
19
  }
99
20
 
100
21
  toJSON() {
101
- return {
102
- id: this._id,
103
- name: this._name,
104
- email: this._email,
105
- photoURL: this._photoURL,
106
- zuid: this._zuid,
107
- type: this._type
22
+ return { ...this.data
108
23
  };
109
24
  }
110
25
 
@@ -1,2 +1,2 @@
1
- import Agent from './Agent';
1
+ import Agent from "./Agent";
2
2
  export { Agent };
@@ -0,0 +1,23 @@
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
+ status: validatedData.status
15
+ };
16
+ }
17
+
18
+ toJSON() {
19
+ return { ...this.data
20
+ };
21
+ }
22
+
23
+ }
@@ -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,33 @@
1
+ import { validateSchema } from "../../../core/utils";
2
+ import { IntegrationServices } from "../../enum";
3
+ import { IntegrationServiceSchema } from "../../schema";
4
+ export default class IntegrationService {
5
+ constructor() {
6
+ let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7
+ const validatedData = validateSchema(IntegrationServiceSchema, data);
8
+ this.data = {
9
+ label: validatedData.label || '',
10
+ id: validatedData.id || '',
11
+ provider: validatedData.provider || {},
12
+ logoURL: validatedData.logoURL || null
13
+ };
14
+ }
15
+
16
+ static isWhatsApp(integrationServiceId) {
17
+ return integrationServiceId === IntegrationServices.WHATSAPP;
18
+ }
19
+
20
+ static isTwilio(integrationServiceId) {
21
+ return integrationServiceId === IntegrationServices.TWILIO;
22
+ }
23
+
24
+ static isBusinessMessaging(integrationServiceId) {
25
+ return integrationServiceId === IntegrationServices.IM_TALK;
26
+ }
27
+
28
+ toJSON() {
29
+ return { ...this.data
30
+ };
31
+ }
32
+
33
+ }
@@ -0,0 +1,2 @@
1
+ import IntegrationService from "./IntegrationService";
2
+ export { IntegrationService };
@@ -0,0 +1,25 @@
1
+ import { validateSchema } from "../../../core/utils";
2
+ import { ActionType } from "../../enum";
3
+ import { ActionSchema } from "../../schema";
4
+ export default class Action {
5
+ constructor() {
6
+ let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7
+ const validatedData = validateSchema(ActionSchema, data);
8
+ this.data = {
9
+ type: validatedData.type,
10
+ subType: validatedData.subType,
11
+ value: validatedData.value
12
+ };
13
+ }
14
+
15
+ static isTransferAction() {
16
+ let action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
17
+ return action && action.type === ActionType.TRANSFER;
18
+ }
19
+
20
+ toJSON() {
21
+ return { ...this.data
22
+ };
23
+ }
24
+
25
+ }
@@ -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,39 @@
1
+ import { validateSchema } from "../../../core/utils";
2
+ import { Actor } from "../Actor";
3
+ import { InfoSchema } from "../../schema/message";
4
+ import { InfoAction } from "../../enum";
5
+ import InfoTarget from "./InfoTarget";
6
+
7
+ function adaptTargets() {
8
+ let targets = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
9
+ return targets.map(target => new InfoTarget(target).toJSON());
10
+ }
11
+
12
+ export default class Info {
13
+ constructor() {
14
+ let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
15
+ const validatedData = validateSchema(InfoSchema, data);
16
+ this.data = {
17
+ actor: new Actor(validatedData.actor).toJSON(),
18
+ action: validatedData.action,
19
+ sessionStatus: validatedData.sessionStatus,
20
+ targets: adaptTargets(validatedData.targets)
21
+ };
22
+ }
23
+
24
+ static isAutoAssignMessage() {
25
+ let info = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
26
+ return info && info.action === InfoAction.CHAT_AUTO_ASSIGN;
27
+ }
28
+
29
+ static isTransferMessage() {
30
+ let info = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
31
+ return info && info.action === InfoAction.CHAT_TRANSFER;
32
+ }
33
+
34
+ toJSON() {
35
+ return { ...this.data
36
+ };
37
+ }
38
+
39
+ }
@@ -0,0 +1,22 @@
1
+ import { validateSchema } from "../../../core/utils";
2
+ import { InfoTargetSchema } from "../../schema/message";
3
+ export default class InfoTarget {
4
+ constructor() {
5
+ let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6
+ const validatedData = validateSchema(InfoTargetSchema, data);
7
+ this.data = {
8
+ id: validatedData.id,
9
+ name: validatedData.name || null,
10
+ photoURL: validatedData.photoURL || null,
11
+ email: validatedData.email || null,
12
+ isReplyAllowed: validatedData.isReplyAllowed,
13
+ type: validatedData.type
14
+ };
15
+ }
16
+
17
+ toJSON() {
18
+ return { ...this.data
19
+ };
20
+ }
21
+
22
+ }
@@ -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
+ }