@zohoim/client-sdk 1.0.0-replyAreaPoc4 → 1.0.0-replyAreaPoc5

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 (309) 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/cannedMessages/CannedMessageService.js +51 -0
  6. package/es/application/services/cannedMessages/index.js +2 -0
  7. package/es/application/services/channels/ChannelAgentService.js +21 -0
  8. package/es/application/services/channels/ChannelService.js +21 -0
  9. package/es/application/services/channels/index.js +3 -0
  10. package/es/application/services/contacts/ContactService.js +21 -0
  11. package/es/application/services/contacts/index.js +2 -0
  12. package/es/application/services/index.js +8 -0
  13. package/es/application/services/messages/MessageService.js +61 -0
  14. package/es/application/services/messages/index.js +2 -0
  15. package/es/application/services/sessions/SessionService.js +56 -0
  16. package/es/application/services/sessions/index.js +2 -0
  17. package/es/application/services/templateMessages/TemplateMessageService.js +26 -0
  18. package/es/application/services/templateMessages/index.js +2 -0
  19. package/es/core/constants/ModuleNames.js +12 -0
  20. package/es/core/constants/ResponseTypes.js +6 -0
  21. package/es/core/constants/index.js +6 -0
  22. package/es/core/errors/AdapterError.js +7 -0
  23. package/es/core/errors/ValidationError.js +7 -0
  24. package/es/core/errors/index.js +3 -0
  25. package/es/core/utils/ResponseUtils.js +24 -0
  26. package/es/core/utils/index.js +3 -0
  27. package/es/core/utils/validateSchema.js +74 -0
  28. package/es/domain/dto/RequestBuilder.js +44 -0
  29. package/es/domain/dto/agents/getAgentsRequest.js +12 -0
  30. package/es/domain/dto/agents/index.js +1 -0
  31. package/es/domain/dto/bots/getBotRequest.js +9 -0
  32. package/es/domain/dto/bots/getBotsRequest.js +15 -0
  33. package/es/domain/dto/bots/index.js +2 -0
  34. package/es/domain/dto/cannedMessages/createCannedMessageRequest.js +18 -0
  35. package/es/domain/dto/cannedMessages/deleteCannedMessageRequest.js +13 -0
  36. package/es/domain/dto/cannedMessages/disableCannedMessageRequest.js +13 -0
  37. package/es/domain/dto/cannedMessages/enableCannedMessageRequest.js +13 -0
  38. package/es/domain/dto/cannedMessages/getCannedMessageRequest.js +13 -0
  39. package/es/domain/dto/cannedMessages/getCannedMessagesRequest.js +18 -0
  40. package/es/domain/dto/cannedMessages/index.js +7 -0
  41. package/es/domain/dto/cannedMessages/updateCannedMessageRequest.js +20 -0
  42. package/es/domain/dto/channels/agents/getChannelAgentsRequest.js +13 -0
  43. package/es/domain/dto/channels/agents/index.js +1 -0
  44. package/es/domain/dto/channels/getChannelsRequest.js +23 -0
  45. package/es/domain/dto/channels/index.js +3 -0
  46. package/es/domain/dto/contacts/getContactsRequest.js +11 -0
  47. package/es/domain/dto/contacts/index.js +1 -0
  48. package/es/domain/dto/index.js +8 -0
  49. package/es/domain/dto/messages/deleteMessageRequest.js +14 -0
  50. package/es/domain/dto/messages/getFullContentRequest.js +14 -0
  51. package/es/domain/dto/messages/getMessageRequest.js +14 -0
  52. package/es/domain/dto/messages/getMessagesRequest.js +20 -0
  53. package/es/domain/dto/messages/index.js +9 -0
  54. package/es/domain/dto/messages/initiateSessionRequest.js +22 -0
  55. package/es/domain/dto/messages/resendMessageRequest.js +14 -0
  56. package/es/domain/dto/messages/searchMessagesRequest.js +22 -0
  57. package/es/domain/dto/messages/sendAttachmentRequest.js +19 -0
  58. package/es/domain/dto/messages/sendMessageRequest.js +19 -0
  59. package/es/domain/dto/sessions/getSessionAttachmentsRequest.js +13 -0
  60. package/es/domain/dto/sessions/getSessionLastMessagesRequest.js +13 -0
  61. package/es/domain/dto/sessions/getSessionRequest.js +13 -0
  62. package/es/domain/dto/sessions/getSessionsRequest.js +26 -0
  63. package/es/domain/dto/sessions/index.js +8 -0
  64. package/es/domain/dto/sessions/markSessionAsReadRequest.js +17 -0
  65. package/es/domain/dto/sessions/pickupSessionRequest.js +9 -0
  66. package/es/domain/dto/sessions/updateSessionAssigneeRequest.js +12 -0
  67. package/es/domain/dto/sessions/updateSessionStatusRequest.js +18 -0
  68. package/es/domain/dto/templateMessages/getTemplateCreditExhaustStatusRequest.js +16 -0
  69. package/es/domain/dto/templateMessages/getTemplateLanguagesRequest.js +7 -0
  70. package/es/domain/dto/templateMessages/index.js +2 -0
  71. package/es/domain/entities/Actor/Actor.js +37 -0
  72. package/es/domain/entities/Actor/index.js +2 -0
  73. package/es/domain/entities/Agent/Agent.js +26 -0
  74. package/es/domain/entities/Agent/index.js +2 -0
  75. package/es/domain/entities/Attachment/Attachment.js +23 -0
  76. package/es/domain/entities/Attachment/index.js +2 -0
  77. package/es/domain/entities/Bot/Bot.js +23 -0
  78. package/es/domain/entities/Bot/index.js +2 -0
  79. package/es/domain/entities/CannedMessage/CannedMessage.js +46 -0
  80. package/es/domain/entities/CannedMessage/index.js +2 -0
  81. package/es/domain/entities/Channel/Channel.js +38 -0
  82. package/es/domain/entities/Channel/index.js +2 -0
  83. package/es/domain/entities/Contact/Contact.js +22 -0
  84. package/es/domain/entities/Contact/index.js +2 -0
  85. package/es/domain/entities/CustomReplyExtension/CustomReplyExtension.js +22 -0
  86. package/es/domain/entities/CustomReplyExtension/index.js +2 -0
  87. package/es/domain/entities/IntegrationService/IntegrationService.js +33 -0
  88. package/es/domain/entities/IntegrationService/index.js +2 -0
  89. package/es/domain/entities/Message/Action.js +25 -0
  90. package/es/domain/entities/Message/ExternalInfo.js +26 -0
  91. package/es/domain/entities/Message/Info.js +44 -0
  92. package/es/domain/entities/Message/InfoTarget.js +22 -0
  93. package/es/domain/entities/Message/Location.js +18 -0
  94. package/es/domain/entities/Message/Message.js +137 -0
  95. package/es/domain/entities/Message/MessageWithSession.js +21 -0
  96. package/es/domain/entities/Message/index.js +7 -0
  97. package/es/domain/entities/Session/Session.js +80 -0
  98. package/es/domain/entities/Session/index.js +2 -0
  99. package/es/domain/entities/TemplateMessage/TemplateCreditExhaustStatus.js +23 -0
  100. package/es/domain/entities/TemplateMessage/TemplateLanguage.js +18 -0
  101. package/es/domain/entities/TemplateMessage/index.js +3 -0
  102. package/es/domain/entities/index.js +12 -0
  103. package/es/domain/enum/actor/ActorType.js +7 -0
  104. package/es/domain/enum/actor/index.js +2 -0
  105. package/es/domain/enum/attachment/AttachmentStatus.js +7 -0
  106. package/es/domain/enum/attachment/index.js +2 -0
  107. package/es/domain/enum/bot/BotServiceType.js +7 -0
  108. package/es/domain/enum/bot/index.js +2 -0
  109. package/es/domain/enum/cannedMessage/CannedMessageStatus.js +7 -0
  110. package/es/domain/enum/cannedMessage/CannedMessageType.js +5 -0
  111. package/es/domain/enum/cannedMessage/TemplateItemButtonType.js +6 -0
  112. package/es/domain/enum/cannedMessage/TemplateItemFooterType.js +4 -0
  113. package/es/domain/enum/cannedMessage/TemplateItemHeaderType.js +7 -0
  114. package/es/domain/enum/cannedMessage/index.js +6 -0
  115. package/es/domain/enum/index.js +8 -0
  116. package/es/domain/enum/integrationServices/IntegrationServices.js +12 -0
  117. package/es/domain/enum/integrationServices/index.js +2 -0
  118. package/es/domain/enum/message/ActionSubType.js +6 -0
  119. package/es/domain/enum/message/ActionType.js +6 -0
  120. package/es/domain/enum/message/ExternalInfoAction.js +9 -0
  121. package/es/domain/enum/message/InfoAction.js +17 -0
  122. package/es/domain/enum/message/InfoSessionStatus.js +10 -0
  123. package/es/domain/enum/message/InfoTargetType.js +11 -0
  124. package/es/domain/enum/message/MessageContentType.js +6 -0
  125. package/es/domain/enum/message/MessageDirection.js +6 -0
  126. package/es/domain/enum/message/MessageMeta.js +4 -0
  127. package/es/domain/enum/message/MessageStatus.js +11 -0
  128. package/es/domain/enum/message/MessageType.js +11 -0
  129. package/es/domain/enum/message/MetaSystemMessageType.js +8 -0
  130. package/es/domain/enum/message/index.js +13 -0
  131. package/es/domain/enum/session/SessionReplyStatus.js +21 -0
  132. package/es/domain/enum/session/SessionStatus.js +10 -0
  133. package/es/domain/enum/session/index.js +3 -0
  134. package/es/domain/enum/templateMessage/TemplateCreditExhaustStatusCode.js +4 -0
  135. package/es/domain/enum/templateMessage/index.js +2 -0
  136. package/es/domain/interfaces/IAdapter.js +6 -0
  137. package/es/domain/interfaces/index.js +3 -0
  138. package/es/domain/interfaces/repositories/agents/IAgentRepository.js +17 -0
  139. package/es/domain/interfaces/repositories/agents/index.js +2 -0
  140. package/es/domain/interfaces/repositories/bots/IBotRepository.js +23 -0
  141. package/es/domain/interfaces/repositories/bots/index.js +2 -0
  142. package/es/domain/interfaces/repositories/cannedMessages/ICannedMessageRepository.js +47 -0
  143. package/es/domain/interfaces/repositories/cannedMessages/index.js +2 -0
  144. package/es/domain/interfaces/repositories/channels/IChannelAgentRepository.js +17 -0
  145. package/es/domain/interfaces/repositories/channels/IChannelRepository.js +17 -0
  146. package/es/domain/interfaces/repositories/channels/index.js +3 -0
  147. package/es/domain/interfaces/repositories/contacts/IContactRepository.js +17 -0
  148. package/es/domain/interfaces/repositories/contacts/index.js +2 -0
  149. package/es/domain/interfaces/repositories/index.js +8 -0
  150. package/es/domain/interfaces/repositories/messages/IMessageRepository.js +57 -0
  151. package/es/domain/interfaces/repositories/messages/index.js +2 -0
  152. package/es/domain/interfaces/repositories/sessions/ISessionRepository.js +52 -0
  153. package/es/domain/interfaces/repositories/sessions/index.js +2 -0
  154. package/es/domain/interfaces/repositories/templateMessages/ITemplateMessageRepository.js +21 -0
  155. package/es/domain/interfaces/repositories/templateMessages/index.js +2 -0
  156. package/es/domain/schema/actor/ActorSchema.js +37 -0
  157. package/es/domain/schema/actor/AgentSchema.js +45 -0
  158. package/es/domain/schema/actor/index.js +3 -0
  159. package/es/domain/schema/attachment/AttachmentSchema.js +33 -0
  160. package/es/domain/schema/attachment/index.js +2 -0
  161. package/es/domain/schema/bot/BotSchema.js +33 -0
  162. package/es/domain/schema/bot/index.js +2 -0
  163. package/es/domain/schema/cannedMessage/CannedMessageSchema.js +61 -0
  164. package/es/domain/schema/cannedMessage/TemplateItem/TemplateItemButtonsSchema.js +17 -0
  165. package/es/domain/schema/cannedMessage/TemplateItem/TemplateItemFooterSchema.js +13 -0
  166. package/es/domain/schema/cannedMessage/TemplateItem/TemplateItemHeaderSchema.js +19 -0
  167. package/es/domain/schema/cannedMessage/TemplateItem/index.js +4 -0
  168. package/es/domain/schema/cannedMessage/TemplateItemsSchema.js +21 -0
  169. package/es/domain/schema/cannedMessage/TranslationsSchema.js +43 -0
  170. package/es/domain/schema/cannedMessage/index.js +2 -0
  171. package/es/domain/schema/channel/ChannelSchema.js +49 -0
  172. package/es/domain/schema/channel/index.js +2 -0
  173. package/es/domain/schema/contact/ContactSchema.js +27 -0
  174. package/es/domain/schema/contact/index.js +2 -0
  175. package/es/domain/schema/customReplyExtension/CustomReplyExtensionSchema.js +28 -0
  176. package/es/domain/schema/customReplyExtension/index.js +2 -0
  177. package/es/domain/schema/index.js +11 -0
  178. package/es/domain/schema/integrationService/IntegrationServiceSchema.js +31 -0
  179. package/es/domain/schema/integrationService/index.js +2 -0
  180. package/es/domain/schema/message/ActionSchema.js +18 -0
  181. package/es/domain/schema/message/ExternalInfoSchema.js +9 -0
  182. package/es/domain/schema/message/InfoSchema.js +24 -0
  183. package/es/domain/schema/message/InfoTargetSchema.js +35 -0
  184. package/es/domain/schema/message/LocationSchema.js +11 -0
  185. package/es/domain/schema/message/MessageSchema.js +116 -0
  186. package/es/domain/schema/message/MessageWithSessionSchema.js +10 -0
  187. package/es/domain/schema/message/index.js +8 -0
  188. package/es/domain/schema/session/SessionSchema.js +82 -0
  189. package/es/domain/schema/session/index.js +2 -0
  190. package/es/domain/schema/templateMessage/TemplateCreditExhaustStatusSchema.js +11 -0
  191. package/es/domain/schema/templateMessage/TemplateLanguageSchema.js +11 -0
  192. package/es/domain/schema/templateMessage/index.js +3 -0
  193. package/es/frameworks/managers/ModuleFactory.js +76 -0
  194. package/es/frameworks/managers/ModuleManager.js +44 -0
  195. package/es/frameworks/managers/index.js +2 -0
  196. package/es/frameworks/sdk/IMSDK.js +72 -0
  197. package/es/frameworks/sdk/agents/AgentSDK.js +30 -0
  198. package/es/frameworks/sdk/agents/index.js +2 -0
  199. package/es/frameworks/sdk/bots/BotSDK.js +30 -0
  200. package/es/frameworks/sdk/bots/index.js +2 -0
  201. package/es/frameworks/sdk/cannedMessages/CannedMessageSDK.js +30 -0
  202. package/es/frameworks/sdk/cannedMessages/index.js +2 -0
  203. package/es/frameworks/sdk/channels/ChannelSDK.js +37 -0
  204. package/es/frameworks/sdk/channels/index.js +2 -0
  205. package/es/frameworks/sdk/contacts/ContactSDK.js +30 -0
  206. package/es/frameworks/sdk/contacts/index.js +2 -0
  207. package/es/frameworks/sdk/index.js +2 -0
  208. package/es/frameworks/sdk/messages/MessageSDK.js +32 -0
  209. package/es/frameworks/sdk/messages/index.js +2 -0
  210. package/es/frameworks/sdk/sessions/SessionSDK.js +34 -0
  211. package/es/frameworks/sdk/sessions/index.js +2 -0
  212. package/es/frameworks/sdk/templateMessages/TemplateMessageSDK.js +30 -0
  213. package/es/frameworks/sdk/templateMessages/index.js +2 -0
  214. package/es/index.html +25 -0
  215. package/es/index.js +12 -0
  216. package/es/infrastructure/adapters/agents/AgentAdapter.js +28 -0
  217. package/es/infrastructure/adapters/agents/index.js +2 -0
  218. package/es/infrastructure/adapters/attachments/AttachmentAdapter.js +25 -0
  219. package/es/infrastructure/adapters/attachments/index.js +2 -0
  220. package/es/infrastructure/adapters/bots/BotAdapter.js +25 -0
  221. package/es/infrastructure/adapters/bots/index.js +2 -0
  222. package/es/infrastructure/adapters/cannedMessages/CannedMessageAdapter.js +28 -0
  223. package/es/infrastructure/adapters/cannedMessages/index.js +2 -0
  224. package/es/infrastructure/adapters/channels/ChannelAdapter.js +29 -0
  225. package/es/infrastructure/adapters/channels/ChannelAgentAdapter.js +49 -0
  226. package/es/infrastructure/adapters/channels/index.js +3 -0
  227. package/es/infrastructure/adapters/contacts/ContactAdapter.js +24 -0
  228. package/es/infrastructure/adapters/contacts/index.js +2 -0
  229. package/es/infrastructure/adapters/customReplyExtension/CustomReplyExtensionAdapter.js +24 -0
  230. package/es/infrastructure/adapters/customReplyExtension/index.js +2 -0
  231. package/es/infrastructure/adapters/index.js +10 -0
  232. package/es/infrastructure/adapters/messages/MessageAdapter.js +41 -0
  233. package/es/infrastructure/adapters/messages/MessageWithSessionAdapter.js +23 -0
  234. package/es/infrastructure/adapters/messages/index.js +2 -0
  235. package/es/infrastructure/adapters/sessions/SessionAdapter.js +36 -0
  236. package/es/infrastructure/adapters/sessions/index.js +2 -0
  237. package/es/infrastructure/adapters/templateMessages/TemplateCreditExhaustStatusAdapter.js +20 -0
  238. package/es/infrastructure/adapters/templateMessages/TemplateLanguageAdapter.js +20 -0
  239. package/es/infrastructure/adapters/templateMessages/index.js +3 -0
  240. package/es/infrastructure/api/BaseAPI.js +104 -0
  241. package/es/infrastructure/api/UrlBuilder.js +53 -0
  242. package/es/infrastructure/api/agents/AgentAPI.js +14 -0
  243. package/es/infrastructure/api/agents/index.js +2 -0
  244. package/es/infrastructure/api/bots/BotAPI.js +24 -0
  245. package/es/infrastructure/api/bots/index.js +2 -0
  246. package/es/infrastructure/api/cannedMessages/CannedMessageAPI.js +74 -0
  247. package/es/infrastructure/api/cannedMessages/index.js +2 -0
  248. package/es/infrastructure/api/channels/ChannelAPI.js +14 -0
  249. package/es/infrastructure/api/channels/ChannelAgentAPI.js +22 -0
  250. package/es/infrastructure/api/channels/index.js +3 -0
  251. package/es/infrastructure/api/contacts/ContactAPI.js +14 -0
  252. package/es/infrastructure/api/contacts/index.js +2 -0
  253. package/es/infrastructure/api/index.js +8 -0
  254. package/es/infrastructure/api/messages/MessageAPI.js +94 -0
  255. package/es/infrastructure/api/messages/index.js +2 -0
  256. package/es/infrastructure/api/registry/agents/agentAPIRegistry.js +12 -0
  257. package/es/infrastructure/api/registry/agents/constructAgentEndPoint.js +10 -0
  258. package/es/infrastructure/api/registry/agents/index.js +2 -0
  259. package/es/infrastructure/api/registry/bots/botAPIRegistry.js +18 -0
  260. package/es/infrastructure/api/registry/bots/constructBotEndPoint.js +10 -0
  261. package/es/infrastructure/api/registry/bots/index.js +2 -0
  262. package/es/infrastructure/api/registry/cannedMessages/cannedMessageAPIRegistry.js +42 -0
  263. package/es/infrastructure/api/registry/cannedMessages/constructCannedMessageEndPoint.js +10 -0
  264. package/es/infrastructure/api/registry/cannedMessages/index.js +2 -0
  265. package/es/infrastructure/api/registry/channels/channelAPIRegistry.js +16 -0
  266. package/es/infrastructure/api/registry/channels/channelAgentAPIRegistry.js +12 -0
  267. package/es/infrastructure/api/registry/channels/constructChannelEndPoint.js +10 -0
  268. package/es/infrastructure/api/registry/channels/index.js +2 -0
  269. package/es/infrastructure/api/registry/contacts/constructContactEndPoint.js +10 -0
  270. package/es/infrastructure/api/registry/contacts/contactAPIRegistry.js +12 -0
  271. package/es/infrastructure/api/registry/contacts/index.js +2 -0
  272. package/es/infrastructure/api/registry/createAPIRegistry.js +7 -0
  273. package/es/infrastructure/api/registry/createBaseUrl.js +3 -0
  274. package/es/infrastructure/api/registry/getRegistryConfig.js +30 -0
  275. package/es/infrastructure/api/registry/index.js +2 -0
  276. package/es/infrastructure/api/registry/messages/constructMessageEndPoint.js +4 -0
  277. package/es/infrastructure/api/registry/messages/index.js +2 -0
  278. package/es/infrastructure/api/registry/messages/messageAPIRegistry.js +62 -0
  279. package/es/infrastructure/api/registry/sessions/constructSessionEndPoint.js +10 -0
  280. package/es/infrastructure/api/registry/sessions/index.js +2 -0
  281. package/es/infrastructure/api/registry/sessions/sessionAPIRegistry.js +52 -0
  282. package/es/infrastructure/api/registry/templateMessages/constructTemplateMessageEndPoint.js +11 -0
  283. package/es/infrastructure/api/registry/templateMessages/index.js +2 -0
  284. package/es/infrastructure/api/registry/templateMessages/templateMessageAPIRegistry.js +18 -0
  285. package/es/infrastructure/api/sessions/SessionAPI.js +84 -0
  286. package/es/infrastructure/api/sessions/index.js +2 -0
  287. package/es/infrastructure/api/templateMessages/TemplateMessageAPI.js +24 -0
  288. package/es/infrastructure/api/templateMessages/index.js +2 -0
  289. package/es/infrastructure/config/configRegistry.js +27 -0
  290. package/es/infrastructure/config/index.js +2 -0
  291. package/es/infrastructure/repositories/agents/AgentRepository.js +49 -0
  292. package/es/infrastructure/repositories/agents/index.js +2 -0
  293. package/es/infrastructure/repositories/bots/BotRepository.js +58 -0
  294. package/es/infrastructure/repositories/bots/index.js +2 -0
  295. package/es/infrastructure/repositories/cannedMessages/CannedMessageRepository.js +97 -0
  296. package/es/infrastructure/repositories/cannedMessages/index.js +2 -0
  297. package/es/infrastructure/repositories/channels/ChannelAgentRepository.js +49 -0
  298. package/es/infrastructure/repositories/channels/ChannelRepository.js +49 -0
  299. package/es/infrastructure/repositories/channels/index.js +3 -0
  300. package/es/infrastructure/repositories/contacts/ContactRepository.js +49 -0
  301. package/es/infrastructure/repositories/contacts/index.js +2 -0
  302. package/es/infrastructure/repositories/index.js +8 -0
  303. package/es/infrastructure/repositories/messages/MessageRepository.js +119 -0
  304. package/es/infrastructure/repositories/messages/index.js +2 -0
  305. package/es/infrastructure/repositories/sessions/SessionRepository.js +113 -0
  306. package/es/infrastructure/repositories/sessions/index.js +2 -0
  307. package/es/infrastructure/repositories/templateMessages/TemplateMessageRepository.js +77 -0
  308. package/es/infrastructure/repositories/templateMessages/index.js +2 -0
  309. package/package.json +1 -1
@@ -0,0 +1,46 @@
1
+ import { validateSchema } from '../../../core/utils';
2
+ import { CannedMessageStatus } from '../../enum';
3
+ import { CannedMessageSchema } from '../../schema';
4
+ import { Actor } from '../Actor';
5
+ export default class CannedMessage {
6
+ constructor() {
7
+ let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
8
+ const validatedData = validateSchema(CannedMessageSchema, data);
9
+ this.data = {
10
+ id: validatedData.id,
11
+ title: validatedData.title,
12
+ message: validatedData.message,
13
+ tags: validatedData.tags,
14
+ status: validatedData.status,
15
+ uuid: validatedData.uuid,
16
+ createdBy: new Actor(validatedData.createdBy),
17
+ displayMessage: validatedData.displayMessage,
18
+ type: validatedData.type,
19
+ kind: validatedData.kind,
20
+ isActive: validatedData.isActive,
21
+ meta: validatedData.meta,
22
+ isPrivate: validatedData.isPrivate,
23
+ rejectionReason: validatedData.rejectionReason,
24
+ modifiedTime: validatedData.modifiedTime,
25
+ translations: validatedData.translations
26
+ };
27
+ }
28
+
29
+ static isApproved(status) {
30
+ return status === CannedMessageStatus.APPROVED;
31
+ }
32
+
33
+ static isRejected(status) {
34
+ return status === CannedMessageStatus.REJECTED;
35
+ }
36
+
37
+ static isPending(status) {
38
+ return status === CannedMessageStatus.PENDING;
39
+ }
40
+
41
+ toJSON() {
42
+ return { ...this.data
43
+ };
44
+ }
45
+
46
+ }
@@ -0,0 +1,2 @@
1
+ import CannedMessage from './CannedMessage';
2
+ export { CannedMessage };
@@ -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,22 @@
1
+ import { validateSchema } from '../../../core/utils';
2
+ import { CustomReplyExtensionSchema } from '../../schema';
3
+ export default class CustomReplyExtension {
4
+ constructor() {
5
+ let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6
+ const validatedData = validateSchema(CustomReplyExtensionSchema, data);
7
+ this.data = {
8
+ id: validatedData.id,
9
+ title: validatedData.title,
10
+ message: validatedData.message,
11
+ displayMessage: validatedData.displayMessage,
12
+ webUrl: validatedData.webUrl || null,
13
+ categoryName: validatedData.categoryName
14
+ };
15
+ }
16
+
17
+ toJSON() {
18
+ return { ...this.data
19
+ };
20
+ }
21
+
22
+ }
@@ -0,0 +1,2 @@
1
+ import CustomReplyExtension from './CustomReplyExtension';
2
+ export { CustomReplyExtension };
@@ -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,26 @@
1
+ import { validateSchema } from '../../../core/utils';
2
+ import { ExternalInfoAction } from '../../enum';
3
+ import { ExternalInfoSchema } from '../../schema';
4
+ export default class ExternalInfo {
5
+ constructor() {
6
+ let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7
+ const validatedData = validateSchema(ExternalInfoSchema, data);
8
+ this.data = {
9
+ action: validatedData.action
10
+ };
11
+ }
12
+
13
+ static isGCConversationEnded(action) {
14
+ return action === ExternalInfoAction.GC_CONVERSATION_ENDED;
15
+ }
16
+
17
+ static isZIAConversationEnded(action) {
18
+ return action === ExternalInfoAction.ZIA_CONVERSATION_ENDED;
19
+ }
20
+
21
+ toJSON() {
22
+ return { ...this.data
23
+ };
24
+ }
25
+
26
+ }
@@ -0,0 +1,44 @@
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 isEndSessionMessage() {
25
+ let info = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
26
+ return info && info.action === InfoAction.END_SESSION;
27
+ }
28
+
29
+ static isAutoAssignMessage() {
30
+ let info = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
31
+ return info && info.action === InfoAction.CHAT_AUTO_ASSIGN;
32
+ }
33
+
34
+ static isTransferMessage() {
35
+ let info = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
36
+ return info && info.action === InfoAction.CHAT_TRANSFER;
37
+ }
38
+
39
+ toJSON() {
40
+ return { ...this.data
41
+ };
42
+ }
43
+
44
+ }
@@ -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
+ }
@@ -0,0 +1,137 @@
1
+ import { validateSchema } from '../../../core/utils';
2
+ import { MessageDirection, MessageStatus, MessageTypes, MessageMeta, MetaSystemMessageType } 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
+ webUrl: validatedData.webUrl
39
+ };
40
+ }
41
+
42
+ static isLocation(type) {
43
+ return type === MessageTypes.LOCATION;
44
+ }
45
+
46
+ static isDeleted(status) {
47
+ return status === MessageStatus.DELETED;
48
+ }
49
+
50
+ static isOutgoing(direction) {
51
+ return direction === MessageDirection.OUT;
52
+ }
53
+
54
+ static isIncoming(direction) {
55
+ return direction === MessageDirection.IN;
56
+ }
57
+
58
+ static isInfo(type) {
59
+ return type === MessageTypes.INFO;
60
+ }
61
+
62
+ static isExternalInfo(type) {
63
+ return type === MessageTypes.EXTERNAL_INFO;
64
+ }
65
+
66
+ static isAttachment(type) {
67
+ return type === MessageTypes.ATTACHMENT;
68
+ }
69
+
70
+ static isTemplate(type) {
71
+ return type === MessageTypes.TEMPLATE;
72
+ }
73
+
74
+ static isActionMessage(type) {
75
+ return type === MessageTypes.ACTION;
76
+ }
77
+
78
+ static getMetaValue() {
79
+ let meta = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
80
+ let key = arguments.length > 1 ? arguments[1] : undefined;
81
+
82
+ if (Array.isArray(meta) && meta.length > 0) {
83
+ const item = meta.find(item => item.name === key);
84
+ return item ? item.value : '';
85
+ }
86
+
87
+ return '';
88
+ }
89
+
90
+ static getSystemMessageValue(meta) {
91
+ return Message.getMetaValue(meta, MessageMeta.SYSTEM_MESSAGE_TYPE);
92
+ }
93
+
94
+ static isSystemMessage(meta) {
95
+ const systemMessageType = Message.getSystemMessageValue(meta);
96
+ return !!systemMessageType;
97
+ }
98
+
99
+ static isHapinessRating(meta) {
100
+ const messageType = Message.getSystemMessageValue(meta);
101
+ return messageType === MetaSystemMessageType.CX_HAPPINESS_SURVEY;
102
+ }
103
+
104
+ static isWelcomeMessage(meta) {
105
+ const messageType = Message.getSystemMessageValue(meta);
106
+ return messageType === MetaSystemMessageType.WELCOMEMSG;
107
+ }
108
+
109
+ static isWorkflowMessage(meta) {
110
+ const messageType = Message.getSystemMessageValue(meta);
111
+ return messageType === MetaSystemMessageType.WORKFLOW_MESSAGE;
112
+ }
113
+
114
+ static isWorkflowNotification(meta) {
115
+ const messageType = Message.getSystemMessageValue(meta);
116
+ return messageType === MetaSystemMessageType.WORKFLOW_NOTIFICATION;
117
+ }
118
+
119
+ static isUnsupportedFile(meta) {
120
+ const messageType = Message.getSystemMessageValue(meta);
121
+ return messageType === MetaSystemMessageType.UN_SUPPORTED_FILE;
122
+ }
123
+
124
+ static isFailed(status) {
125
+ return status === MessageStatus.FAILED;
126
+ }
127
+
128
+ static isAutoSent(systemMsgType) {
129
+ return !!systemMsgType;
130
+ }
131
+
132
+ toJSON() {
133
+ return { ...this.data
134
+ };
135
+ }
136
+
137
+ }
@@ -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,80 @@
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 isOnProgress(sessionStatus) {
40
+ return sessionStatus === SessionStatus.ON_PROGRESS;
41
+ }
42
+
43
+ static isOnHold(sessionStatus) {
44
+ return sessionStatus === SessionStatus.ON_HOLD;
45
+ }
46
+
47
+ static isOpen(sessionStatus) {
48
+ return sessionStatus === SessionStatus.OPEN;
49
+ }
50
+
51
+ static isInactiveChannel(replyStatus) {
52
+ return replyStatus === SessionReplyStatus.CHANNEL_INACTIVE;
53
+ }
54
+
55
+ static isChannelDeleted(replyStatus) {
56
+ return replyStatus === SessionReplyStatus.CHANNEL_DELETED;
57
+ }
58
+
59
+ static isReplyAccepted(replyStatus) {
60
+ return replyStatus === SessionReplyStatus.ACCEPTED;
61
+ }
62
+
63
+ static isEndUserOffline(replyStatus) {
64
+ return replyStatus === SessionReplyStatus.ENDUSER_OFFLINE;
65
+ }
66
+
67
+ static isCreated(sessionStatus) {
68
+ return sessionStatus === SessionStatus.CREATED;
69
+ }
70
+
71
+ static isAssignedToOtherService(replyStatus) {
72
+ return replyStatus === SessionReplyStatus.ASSIGNED_TO_OTHER_SERVICE;
73
+ }
74
+
75
+ toJSON() {
76
+ return { ...this.data
77
+ };
78
+ }
79
+
80
+ }
@@ -0,0 +1,2 @@
1
+ import Session from './Session';
2
+ export { Session };
@@ -0,0 +1,23 @@
1
+ import { validateSchema } from '../../../core/utils';
2
+ import { TemplateCreditExhaustStatusCode } from '../../enum';
3
+ import { TemplateCreditExhaustStatusSchema } from '../../schema';
4
+ export default class TemplateCreditExhaustStatus {
5
+ constructor() {
6
+ let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7
+ const validatedData = validateSchema(TemplateCreditExhaustStatusSchema, data);
8
+ this.data = {
9
+ code: validatedData.code,
10
+ message: validatedData.message
11
+ };
12
+ }
13
+
14
+ static isInSufficientCredits(code) {
15
+ return code === TemplateCreditExhaustStatusCode.INSUFFICIENT_CREDITS;
16
+ }
17
+
18
+ toJSON() {
19
+ return { ...this.data
20
+ };
21
+ }
22
+
23
+ }
@@ -0,0 +1,18 @@
1
+ import { validateSchema } from '../../../core/utils';
2
+ import { TemplateLanguageSchema } from '../../schema';
3
+ export default class TemplateLanguage {
4
+ constructor() {
5
+ let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6
+ const validatedData = validateSchema(TemplateLanguageSchema, data);
7
+ this.data = {
8
+ code: validatedData.code,
9
+ language: validatedData.language
10
+ };
11
+ }
12
+
13
+ toJSON() {
14
+ return { ...this.data
15
+ };
16
+ }
17
+
18
+ }
@@ -0,0 +1,3 @@
1
+ import TemplateLanguage from './TemplateLanguage';
2
+ import TemplateCreditExhaustStatus from './TemplateCreditExhaustStatus';
3
+ export { TemplateLanguage, TemplateCreditExhaustStatus };
@@ -0,0 +1,12 @@
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';
10
+ export * from './CannedMessage';
11
+ export * from './TemplateMessage';
12
+ export * from './CustomReplyExtension';
@@ -0,0 +1,7 @@
1
+ const ActorType = {
2
+ AGENT: 'AGENT',
3
+ BOT: 'BOT',
4
+ ENDUSER: 'END_USER',
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;