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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (243) hide show
  1. package/es/application/services/agents/AgentService.js +21 -0
  2. package/es/application/services/agents/index.js +2 -0
  3. package/es/application/services/bots/BotService.js +26 -0
  4. package/es/application/services/bots/index.js +2 -0
  5. package/es/application/services/channels/ChannelAgentService.js +21 -0
  6. package/es/application/services/channels/ChannelService.js +21 -0
  7. package/es/application/services/channels/index.js +3 -0
  8. package/es/application/services/contacts/ContactService.js +21 -0
  9. package/es/application/services/contacts/index.js +2 -0
  10. package/es/application/services/index.js +6 -0
  11. package/es/application/services/messages/MessageService.js +56 -0
  12. package/es/application/services/messages/index.js +2 -0
  13. package/es/application/services/sessions/SessionService.js +51 -0
  14. package/es/application/services/sessions/index.js +2 -0
  15. package/es/core/constants/ModuleNames.js +9 -0
  16. package/es/core/constants/ResponseTypes.js +6 -0
  17. package/es/core/constants/index.js +6 -0
  18. package/es/core/errors/AdapterError.js +7 -0
  19. package/es/core/errors/index.js +3 -0
  20. package/es/core/utils/ResponseUtils.js +24 -0
  21. package/es/core/utils/index.js +3 -0
  22. package/es/core/utils/validateSchema.js +74 -0
  23. package/es/domain/dto/RequestBuilder.js +44 -0
  24. package/es/domain/dto/agents/getAgentsRequest.js +12 -0
  25. package/es/domain/dto/agents/index.js +1 -0
  26. package/es/domain/dto/bots/getBotRequest.js +9 -0
  27. package/es/domain/dto/bots/getBotsRequest.js +15 -0
  28. package/es/domain/dto/bots/index.js +2 -0
  29. package/es/domain/dto/channels/agents/getChannelAgentsRequest.js +13 -0
  30. package/es/domain/dto/channels/agents/index.js +1 -0
  31. package/es/domain/dto/channels/getChannelsRequest.js +23 -0
  32. package/es/domain/dto/channels/index.js +3 -0
  33. package/es/domain/dto/contacts/getContactsRequest.js +11 -0
  34. package/es/domain/dto/contacts/index.js +1 -0
  35. package/es/domain/dto/index.js +6 -0
  36. package/es/domain/dto/messages/deleteMessageRequest.js +14 -0
  37. package/es/domain/dto/messages/getFullContentRequest.js +14 -0
  38. package/es/domain/dto/messages/getMessagesRequest.js +20 -0
  39. package/es/domain/dto/messages/index.js +8 -0
  40. package/es/domain/dto/messages/initiateSessionRequest.js +21 -0
  41. package/es/domain/dto/messages/resendMessageRequest.js +14 -0
  42. package/es/domain/dto/messages/searchMessagesRequest.js +22 -0
  43. package/es/domain/dto/messages/sendAttachmentRequest.js +20 -0
  44. package/es/domain/dto/messages/sendMessageRequest.js +17 -0
  45. package/es/domain/dto/sessions/getSessionAttachmentsRequest.js +13 -0
  46. package/es/domain/dto/sessions/getSessionLastMessagesRequest.js +13 -0
  47. package/es/domain/dto/sessions/getSessionRequest.js +13 -0
  48. package/es/domain/dto/sessions/getSessionsRequest.js +26 -0
  49. package/es/domain/dto/sessions/index.js +7 -0
  50. package/es/domain/dto/sessions/markSessionAsReadRequest.js +13 -0
  51. package/es/domain/dto/sessions/updateSessionAssigneeRequest.js +12 -0
  52. package/es/domain/dto/sessions/updateSessionStatusRequest.js +17 -0
  53. package/es/domain/entities/Actor/Actor.js +28 -0
  54. package/es/domain/entities/Actor/index.js +2 -2
  55. package/es/domain/entities/Agent/Agent.js +17 -102
  56. package/es/domain/entities/Agent/index.js +1 -1
  57. package/es/domain/entities/Attachment/Attachment.js +22 -0
  58. package/es/domain/entities/Attachment/index.js +2 -0
  59. package/es/domain/entities/Bot/Bot.js +23 -0
  60. package/es/domain/entities/Bot/index.js +2 -0
  61. package/es/domain/entities/Channel/Channel.js +38 -0
  62. package/es/domain/entities/Channel/index.js +2 -0
  63. package/es/domain/entities/Contact/Contact.js +22 -0
  64. package/es/domain/entities/Contact/index.js +2 -0
  65. package/es/domain/entities/IntegrationService/IntegrationService.js +33 -0
  66. package/es/domain/entities/IntegrationService/index.js +2 -0
  67. package/es/domain/entities/Message/Action.js +19 -0
  68. package/es/domain/entities/Message/ExternalInfo.js +17 -0
  69. package/es/domain/entities/Message/Info.js +21 -0
  70. package/es/domain/entities/Message/Location.js +18 -0
  71. package/es/domain/entities/Message/Message.js +66 -0
  72. package/es/domain/entities/Message/MessageWithSession.js +21 -0
  73. package/es/domain/entities/Message/index.js +6 -0
  74. package/es/domain/entities/Session/Session.js +48 -0
  75. package/es/domain/entities/Session/index.js +2 -0
  76. package/es/domain/entities/index.js +9 -2
  77. package/es/domain/enum/actor/ActorType.js +7 -0
  78. package/es/domain/enum/actor/index.js +2 -0
  79. package/es/domain/enum/bot/BotServiceType.js +7 -0
  80. package/es/domain/enum/bot/index.js +2 -0
  81. package/es/domain/enum/index.js +5 -0
  82. package/es/domain/enum/integrationServices/IntegrationServices.js +11 -0
  83. package/es/domain/enum/integrationServices/index.js +2 -0
  84. package/es/domain/enum/message/ActionSubType.js +6 -0
  85. package/es/domain/enum/message/ActionType.js +6 -0
  86. package/es/domain/enum/message/ExternalInfoAction.js +9 -0
  87. package/es/domain/enum/message/InfoAction.js +17 -0
  88. package/es/domain/enum/message/InfoSessionStatus.js +10 -0
  89. package/es/domain/enum/message/MessageContentType.js +6 -0
  90. package/es/domain/enum/message/MessageDirection.js +6 -0
  91. package/es/domain/enum/message/MessageStatus.js +11 -0
  92. package/es/domain/enum/message/MessageType.js +11 -0
  93. package/es/domain/enum/message/index.js +10 -0
  94. package/es/domain/enum/session/SessionReplyStatus.js +20 -0
  95. package/es/domain/enum/session/SessionStatus.js +10 -0
  96. package/es/domain/enum/session/index.js +3 -0
  97. package/es/domain/interfaces/IAdapter.js +6 -0
  98. package/es/domain/interfaces/index.js +3 -1
  99. package/es/domain/interfaces/repositories/agents/IAgentRepository.js +17 -0
  100. package/es/domain/interfaces/repositories/agents/index.js +2 -0
  101. package/es/domain/interfaces/repositories/bots/IBotRepository.js +23 -0
  102. package/es/domain/interfaces/repositories/bots/index.js +2 -0
  103. package/es/domain/interfaces/repositories/channels/IChannelAgentRepository.js +17 -0
  104. package/es/domain/interfaces/repositories/channels/IChannelRepository.js +17 -0
  105. package/es/domain/interfaces/repositories/channels/index.js +3 -0
  106. package/es/domain/interfaces/repositories/contacts/IContactRepository.js +17 -0
  107. package/es/domain/interfaces/repositories/contacts/index.js +2 -0
  108. package/es/domain/interfaces/repositories/index.js +6 -0
  109. package/es/domain/interfaces/repositories/messages/IMessageRepository.js +52 -0
  110. package/es/domain/interfaces/repositories/messages/index.js +2 -0
  111. package/es/domain/interfaces/repositories/sessions/ISessionRepository.js +47 -0
  112. package/es/domain/interfaces/repositories/sessions/index.js +2 -0
  113. package/es/domain/schema/actor/ActorSchema.js +33 -0
  114. package/es/domain/schema/actor/AgentSchema.js +45 -0
  115. package/es/domain/schema/actor/index.js +3 -0
  116. package/es/domain/schema/attachment/AttachmentSchema.js +27 -0
  117. package/es/domain/schema/attachment/index.js +2 -0
  118. package/es/domain/schema/bot/BotSchema.js +33 -0
  119. package/es/domain/schema/bot/index.js +2 -0
  120. package/es/domain/schema/channel/ChannelSchema.js +49 -0
  121. package/es/domain/schema/channel/index.js +2 -0
  122. package/es/domain/schema/contact/ContactSchema.js +27 -0
  123. package/es/domain/schema/contact/index.js +2 -0
  124. package/es/domain/schema/index.js +8 -0
  125. package/es/domain/schema/integrationService/IntegrationServiceSchema.js +31 -0
  126. package/es/domain/schema/integrationService/index.js +2 -0
  127. package/es/domain/schema/message/ActionSchema.js +18 -0
  128. package/es/domain/schema/message/ExternalInfoSchema.js +9 -0
  129. package/es/domain/schema/message/InfoSchema.js +24 -0
  130. package/es/domain/schema/message/LocationSchema.js +11 -0
  131. package/es/domain/schema/message/MessageSchema.js +112 -0
  132. package/es/domain/schema/message/MessageWithSessionSchema.js +10 -0
  133. package/es/domain/schema/message/index.js +7 -0
  134. package/es/domain/schema/session/SessionSchema.js +82 -0
  135. package/es/domain/schema/session/index.js +2 -0
  136. package/es/frameworks/managers/ModuleFactory.js +58 -0
  137. package/es/frameworks/managers/ModuleManager.js +44 -0
  138. package/es/frameworks/managers/index.js +2 -0
  139. package/es/frameworks/sdk/IMSDK.js +62 -0
  140. package/es/frameworks/sdk/agents/AgentSDK.js +30 -0
  141. package/es/frameworks/sdk/agents/index.js +2 -0
  142. package/es/frameworks/sdk/bots/BotSDK.js +30 -0
  143. package/es/frameworks/sdk/bots/index.js +2 -0
  144. package/es/frameworks/sdk/channels/ChannelSDK.js +37 -0
  145. package/es/frameworks/sdk/channels/index.js +2 -0
  146. package/es/frameworks/sdk/contacts/ContactSDK.js +30 -0
  147. package/es/frameworks/sdk/contacts/index.js +2 -0
  148. package/es/frameworks/sdk/index.js +2 -0
  149. package/es/frameworks/sdk/messages/MessageSDK.js +32 -0
  150. package/es/frameworks/sdk/messages/index.js +2 -0
  151. package/es/frameworks/sdk/sessions/SessionSDK.js +34 -0
  152. package/es/frameworks/sdk/sessions/index.js +2 -0
  153. package/es/index.js +12 -4
  154. package/es/infrastructure/adapters/agents/AgentAdapter.js +28 -0
  155. package/es/infrastructure/adapters/agents/index.js +2 -0
  156. package/es/infrastructure/adapters/attachments/AttachmentAdapter.js +24 -0
  157. package/es/infrastructure/adapters/attachments/index.js +2 -0
  158. package/es/infrastructure/adapters/bots/BotAdapter.js +25 -0
  159. package/es/infrastructure/adapters/bots/index.js +2 -0
  160. package/es/infrastructure/adapters/channels/ChannelAdapter.js +29 -0
  161. package/es/infrastructure/adapters/channels/ChannelAgentAdapter.js +49 -0
  162. package/es/infrastructure/adapters/channels/index.js +3 -0
  163. package/es/infrastructure/adapters/contacts/ContactAdapter.js +24 -0
  164. package/es/infrastructure/adapters/contacts/index.js +2 -0
  165. package/es/infrastructure/adapters/index.js +7 -0
  166. package/es/infrastructure/adapters/messages/MessageAdapter.js +41 -0
  167. package/es/infrastructure/adapters/messages/MessageWithSessionAdapter.js +23 -0
  168. package/es/infrastructure/adapters/messages/index.js +2 -0
  169. package/es/infrastructure/adapters/sessions/SessionAdapter.js +36 -0
  170. package/es/infrastructure/adapters/sessions/index.js +2 -0
  171. package/es/infrastructure/api/BaseAPI.js +147 -0
  172. package/es/infrastructure/api/agents/AgentAPI.js +14 -0
  173. package/es/infrastructure/api/agents/index.js +2 -0
  174. package/es/infrastructure/api/bots/BotAPI.js +24 -0
  175. package/es/infrastructure/api/bots/index.js +2 -0
  176. package/es/infrastructure/api/channels/ChannelAPI.js +14 -0
  177. package/es/infrastructure/api/channels/ChannelAgentAPI.js +22 -0
  178. package/es/infrastructure/api/channels/index.js +3 -0
  179. package/es/infrastructure/api/contacts/ContactAPI.js +14 -0
  180. package/es/infrastructure/api/contacts/index.js +2 -0
  181. package/es/infrastructure/api/index.js +6 -0
  182. package/es/infrastructure/api/messages/MessageAPI.js +84 -0
  183. package/es/infrastructure/api/messages/index.js +2 -0
  184. package/es/infrastructure/api/registry/agents/agentAPIRegistry.js +12 -0
  185. package/es/infrastructure/api/registry/agents/constructAgentEndPoint.js +10 -0
  186. package/es/infrastructure/api/registry/agents/index.js +2 -0
  187. package/es/infrastructure/api/registry/bots/botAPIRegistry.js +17 -0
  188. package/es/infrastructure/api/registry/bots/constructBotEndPoint.js +10 -0
  189. package/es/infrastructure/api/registry/bots/index.js +2 -0
  190. package/es/infrastructure/api/registry/channels/channelAPIRegistry.js +16 -0
  191. package/es/infrastructure/api/registry/channels/channelAgentAPIRegistry.js +12 -0
  192. package/es/infrastructure/api/registry/channels/constructChannelEndPoint.js +10 -0
  193. package/es/infrastructure/api/registry/channels/index.js +2 -0
  194. package/es/infrastructure/api/registry/contacts/constructContactEndPoint.js +10 -0
  195. package/es/infrastructure/api/registry/contacts/contactAPIRegistry.js +12 -0
  196. package/es/infrastructure/api/registry/contacts/index.js +2 -0
  197. package/es/infrastructure/api/registry/createAPIRegistry.js +7 -0
  198. package/es/infrastructure/api/registry/createBaseUrl.js +3 -0
  199. package/es/infrastructure/api/registry/getRegistryConfig.js +26 -0
  200. package/es/infrastructure/api/registry/index.js +2 -0
  201. package/es/infrastructure/api/registry/messages/constructMessageEndPoint.js +4 -0
  202. package/es/infrastructure/api/registry/messages/index.js +2 -0
  203. package/es/infrastructure/api/registry/messages/messageAPIRegistry.js +57 -0
  204. package/es/infrastructure/api/registry/sessions/constructSessionEndPoint.js +10 -0
  205. package/es/infrastructure/api/registry/sessions/index.js +2 -0
  206. package/es/infrastructure/api/registry/sessions/sessionAPIRegistry.js +46 -0
  207. package/es/infrastructure/api/sessions/SessionAPI.js +74 -0
  208. package/es/infrastructure/api/sessions/index.js +2 -0
  209. package/es/infrastructure/config/configRegistry.js +27 -0
  210. package/es/infrastructure/config/index.js +2 -0
  211. package/es/infrastructure/repositories/agents/AgentRepository.js +49 -0
  212. package/es/infrastructure/repositories/agents/index.js +2 -0
  213. package/es/infrastructure/repositories/bots/BotRepository.js +58 -0
  214. package/es/infrastructure/repositories/bots/index.js +2 -0
  215. package/es/infrastructure/repositories/channels/ChannelAgentRepository.js +49 -0
  216. package/es/infrastructure/repositories/channels/ChannelRepository.js +49 -0
  217. package/es/infrastructure/repositories/channels/index.js +3 -0
  218. package/es/infrastructure/repositories/contacts/ContactRepository.js +49 -0
  219. package/es/infrastructure/repositories/contacts/index.js +2 -0
  220. package/es/infrastructure/repositories/index.js +6 -0
  221. package/es/infrastructure/repositories/messages/MessageRepository.js +111 -0
  222. package/es/infrastructure/repositories/messages/index.js +2 -0
  223. package/es/infrastructure/repositories/sessions/SessionRepository.js +105 -0
  224. package/es/infrastructure/repositories/sessions/index.js +2 -0
  225. package/package.json +4 -1
  226. package/es/domain/entities/Actor/ActorType.js +0 -6
  227. package/es/domain/errors/index.js +0 -2
  228. package/es/domain/interfaces/channels/IChannelAgent.js +0 -9
  229. package/es/domain/interfaces/channels/index.js +0 -2
  230. package/es/domain/services/channels/ChannelAgentService.js +0 -16
  231. package/es/domain/services/channels/index.js +0 -2
  232. package/es/domain/services/index.js +0 -1
  233. package/es/domain/types/channels/GetChannelAgentsRequest.js +0 -7
  234. package/es/domain/types/channels/index.js +0 -2
  235. package/es/domain/types/index.js +0 -1
  236. package/es/modules/channels/index.js +0 -1
  237. package/es/modules/channels/sdk/ChannelAgentsSDK.js +0 -13
  238. package/es/modules/channels/sdk/ChannelSDK.js +0 -7
  239. package/es/modules/channels/sdk/index.js +0 -2
  240. package/es/modules/index.js +0 -1
  241. package/es/sdk/IMSDK.js +0 -7
  242. package/es/sdk/index.js +0 -2
  243. /package/es/{domain → core}/errors/ValidationError.js +0 -0
@@ -0,0 +1,49 @@
1
+ import { IAgentRepository } from "../../../domain/interfaces/repositories";
2
+ import { AgentAdapter } from "../../adapters";
3
+ import { AgentAPI } from "../../api";
4
+ import { ResponseTypes } from "../../../core/constants";
5
+ export default class AgentRepository extends IAgentRepository {
6
+ constructor(_ref) {
7
+ let {
8
+ agentAPI,
9
+ agentAdapter
10
+ } = _ref;
11
+ super();
12
+ this.defaultAPI = new AgentAPI();
13
+ this.customAPI = agentAPI;
14
+ this.agentAPI = this.createAPIProxy(this.customAPI, this.defaultAPI);
15
+ this.agentAdapter = agentAdapter || new AgentAdapter();
16
+ }
17
+
18
+ async invokeAPI(_ref2) {
19
+ let {
20
+ operation,
21
+ request,
22
+ adapter = this.agentAdapter,
23
+ responseType
24
+ } = _ref2;
25
+ return this.executeAPICall({
26
+ operation,
27
+ request,
28
+ apiProxy: this.agentAPI,
29
+ customAPI: this.customAPI,
30
+ adapter,
31
+ responseType
32
+ });
33
+ }
34
+
35
+ async getAgents(request) {
36
+ return this.invokeAPI({
37
+ operation: 'getAgents',
38
+ request,
39
+ responseType: ResponseTypes.LIST
40
+ });
41
+ }
42
+
43
+ toJSON() {
44
+ return {
45
+ getAgents: this.getAgents.bind(this)
46
+ };
47
+ }
48
+
49
+ }
@@ -0,0 +1,2 @@
1
+ import AgentRepository from "./AgentRepository";
2
+ export { AgentRepository };
@@ -0,0 +1,58 @@
1
+ import { IBotRepository } from "../../../domain/interfaces/repositories";
2
+ import { BotAdapter } from "../../adapters";
3
+ import { BotAPI } from "../../api";
4
+ import { ResponseTypes } from "../../../core/constants";
5
+ export default class BotRepository extends IBotRepository {
6
+ constructor(_ref) {
7
+ let {
8
+ botAPI,
9
+ botAdapter
10
+ } = _ref;
11
+ super();
12
+ this.defaultAPI = new BotAPI();
13
+ this.customAPI = botAPI;
14
+ this.botAPI = this.createAPIProxy(this.customAPI, this.defaultAPI);
15
+ this.botAdapter = botAdapter || new BotAdapter();
16
+ }
17
+
18
+ async invokeAPI(_ref2) {
19
+ let {
20
+ operation,
21
+ request,
22
+ adapter = this.botAdapter,
23
+ responseType
24
+ } = _ref2;
25
+ return this.executeAPICall({
26
+ operation,
27
+ request,
28
+ apiProxy: this.botAPI,
29
+ customAPI: this.customAPI,
30
+ adapter,
31
+ responseType
32
+ });
33
+ }
34
+
35
+ async getBots(request) {
36
+ return this.invokeAPI({
37
+ operation: 'getBots',
38
+ request,
39
+ responseType: ResponseTypes.LIST
40
+ });
41
+ }
42
+
43
+ async getBot(request) {
44
+ return this.invokeAPI({
45
+ operation: 'getBot',
46
+ request,
47
+ responseType: ResponseTypes.LIST
48
+ });
49
+ }
50
+
51
+ toJSON() {
52
+ return {
53
+ getBots: this.getBots.bind(this),
54
+ getBot: this.getBot.bind(this)
55
+ };
56
+ }
57
+
58
+ }
@@ -0,0 +1,2 @@
1
+ import BotRepository from "./BotRepository";
2
+ export { BotRepository };
@@ -0,0 +1,49 @@
1
+ import { IChannelAgentRepository } from "../../../domain/interfaces/repositories";
2
+ import { ChannelAgentAdapter } from "../../adapters";
3
+ import { ChannelAgentAPI } from "../../api";
4
+ import { ResponseTypes } from "../../../core/constants";
5
+ export default class ChannelAgentRepository extends IChannelAgentRepository {
6
+ constructor(_ref) {
7
+ let {
8
+ channelAgentAPI,
9
+ channelAgentAdapter
10
+ } = _ref;
11
+ super();
12
+ this.defaultAPI = new ChannelAgentAPI();
13
+ this.customAPI = channelAgentAPI;
14
+ this.channelAgentAPI = this.createAPIProxy(this.customAPI, this.defaultAPI);
15
+ this.channelAgentAdapter = channelAgentAdapter || new ChannelAgentAdapter();
16
+ }
17
+
18
+ async invokeAPI(_ref2) {
19
+ let {
20
+ operation,
21
+ request,
22
+ adapter = this.channelAgentAdapter,
23
+ responseType
24
+ } = _ref2;
25
+ return this.executeAPICall({
26
+ operation,
27
+ request,
28
+ apiProxy: this.channelAgentAPI,
29
+ customAPI: this.customAPI,
30
+ adapter,
31
+ responseType
32
+ });
33
+ }
34
+
35
+ async getAgents(request) {
36
+ return this.invokeAPI({
37
+ operation: 'getAgents',
38
+ request,
39
+ responseType: ResponseTypes.LIST
40
+ });
41
+ }
42
+
43
+ toJSON() {
44
+ return {
45
+ getAgents: this.getAgents.bind(this)
46
+ };
47
+ }
48
+
49
+ }
@@ -0,0 +1,49 @@
1
+ import { IChannelRepository } from "../../../domain/interfaces/repositories";
2
+ import { ChannelAdapter } from "../../adapters";
3
+ import { ChannelAPI } from "../../api";
4
+ import { ResponseTypes } from "../../../core/constants";
5
+ export default class ChannelRepository extends IChannelRepository {
6
+ constructor() {
7
+ let {
8
+ channelAPI,
9
+ channelAdapter
10
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
11
+ super();
12
+ this.defaultAPI = new ChannelAPI();
13
+ this.customAPI = channelAPI;
14
+ this.channelAPI = this.createAPIProxy(this.customAPI, this.defaultAPI);
15
+ this.channelAdapter = channelAdapter || new ChannelAdapter();
16
+ }
17
+
18
+ async invokeAPI(_ref) {
19
+ let {
20
+ operation,
21
+ request,
22
+ adapter = this.channelAdapter,
23
+ responseType
24
+ } = _ref;
25
+ return this.executeAPICall({
26
+ operation,
27
+ request,
28
+ apiProxy: this.channelAPI,
29
+ customAPI: this.customAPI,
30
+ adapter,
31
+ responseType
32
+ });
33
+ }
34
+
35
+ async getChannels(request) {
36
+ return this.invokeAPI({
37
+ operation: 'getChannels',
38
+ request,
39
+ responseType: ResponseTypes.LIST
40
+ });
41
+ }
42
+
43
+ toJSON() {
44
+ return {
45
+ getChannels: this.getChannels.bind(this)
46
+ };
47
+ }
48
+
49
+ }
@@ -0,0 +1,3 @@
1
+ import ChannelAgentRepository from "./ChannelAgentRepository";
2
+ import ChannelRepository from "./ChannelRepository";
3
+ export { ChannelAgentRepository, ChannelRepository };
@@ -0,0 +1,49 @@
1
+ import { IContactRepository } from "../../../domain/interfaces/repositories";
2
+ import { ContactAdapter } from "../../adapters";
3
+ import { ContactAPI } from "../../api";
4
+ import { ResponseTypes } from "../../../core/constants";
5
+ export default class ContactRepository extends IContactRepository {
6
+ constructor(_ref) {
7
+ let {
8
+ contactAPI,
9
+ contactAdapter
10
+ } = _ref;
11
+ super();
12
+ this.defaultAPI = new ContactAPI();
13
+ this.customAPI = contactAPI;
14
+ this.contactAPI = this.createAPIProxy(this.customAPI, this.defaultAPI);
15
+ this.contactAdapter = contactAdapter || new ContactAdapter();
16
+ }
17
+
18
+ async invokeAPI(_ref2) {
19
+ let {
20
+ operation,
21
+ request,
22
+ adapter = this.contactAdapter,
23
+ responseType
24
+ } = _ref2;
25
+ return this.executeAPICall({
26
+ operation,
27
+ request,
28
+ apiProxy: this.contactAPI,
29
+ customAPI: this.customAPI,
30
+ adapter,
31
+ responseType
32
+ });
33
+ }
34
+
35
+ async getContacts(request) {
36
+ return this.invokeAPI({
37
+ operation: 'getContacts',
38
+ request,
39
+ responseType: ResponseTypes.LIST
40
+ });
41
+ }
42
+
43
+ toJSON() {
44
+ return {
45
+ getContacts: this.getContacts.bind(this)
46
+ };
47
+ }
48
+
49
+ }
@@ -0,0 +1,2 @@
1
+ import ContactRepository from "./ContactRepository";
2
+ export { ContactRepository };
@@ -0,0 +1,6 @@
1
+ export * from "./channels";
2
+ export * from "./sessions";
3
+ export * from "./bots";
4
+ export * from "./messages";
5
+ export * from "./agents";
6
+ export * from "./contacts";
@@ -0,0 +1,111 @@
1
+ import { MessageAdapter } from "../../adapters";
2
+ import { MessageAPI } from "../../api";
3
+ import { IMessageRepository } from "../../../domain/interfaces/repositories/messages";
4
+ import MessageWithSessionAdapter from "../../adapters/messages/MessageWithSessionAdapter";
5
+ import { ResponseTypes } from "../../../core/constants";
6
+ export default class MessageRepository extends IMessageRepository {
7
+ constructor(_ref) {
8
+ let {
9
+ messageAPI,
10
+ messageAdapter,
11
+ messageWithSessionAdapter
12
+ } = _ref;
13
+ super();
14
+ this.defaultAPI = new MessageAPI();
15
+ this.customAPI = messageAPI;
16
+ this.messageAPI = this.createAPIProxy(this.customAPI, this.defaultAPI);
17
+ this.messageAdapter = messageAdapter || new MessageAdapter();
18
+ this.messageWithSessionAdapter = messageWithSessionAdapter || new MessageWithSessionAdapter();
19
+ }
20
+
21
+ async invokeAPI(_ref2) {
22
+ let {
23
+ operation,
24
+ request,
25
+ adapter = this.messageAdapter,
26
+ responseType
27
+ } = _ref2;
28
+ return this.executeAPICall({
29
+ operation,
30
+ request,
31
+ apiProxy: this.messageAPI,
32
+ customAPI: this.customAPI,
33
+ adapter,
34
+ responseType
35
+ });
36
+ }
37
+
38
+ async getMessages(request) {
39
+ return this.invokeAPI({
40
+ operation: 'getMessages',
41
+ request,
42
+ responseType: ResponseTypes.LIST
43
+ });
44
+ }
45
+
46
+ async getFullContent(request) {
47
+ return this.invokeAPI({
48
+ operation: 'getFullContent',
49
+ request,
50
+ responseType: ResponseTypes.NONE
51
+ });
52
+ }
53
+
54
+ async sendMessage(request) {
55
+ return this.invokeAPI({
56
+ operation: 'sendMessage',
57
+ request
58
+ });
59
+ }
60
+
61
+ async sendAttachment(request) {
62
+ return this.invokeAPI({
63
+ operation: 'sendAttachment',
64
+ request
65
+ });
66
+ }
67
+
68
+ async resendMessage(request) {
69
+ return this.invokeAPI({
70
+ operation: 'resendMessage',
71
+ request
72
+ });
73
+ }
74
+
75
+ async deleteMessage(request) {
76
+ return this.invokeAPI({
77
+ operation: 'deleteMessage',
78
+ request
79
+ });
80
+ }
81
+
82
+ async initiateSession(request) {
83
+ return this.invokeAPI({
84
+ operation: 'initiateSession',
85
+ request
86
+ });
87
+ }
88
+
89
+ async searchMessages(request) {
90
+ return this.invokeAPI({
91
+ operation: 'searchMessages',
92
+ request,
93
+ adapter: this.messageWithSessionAdapter,
94
+ responseType: ResponseTypes.LIST
95
+ });
96
+ }
97
+
98
+ toJSON() {
99
+ return {
100
+ getMessages: this.getMessages.bind(this),
101
+ getFullContent: this.getFullContent.bind(this),
102
+ sendMessage: this.sendMessage.bind(this),
103
+ sendAttachment: this.sendAttachment.bind(this),
104
+ resendMessage: this.resendMessage.bind(this),
105
+ deleteMessage: this.deleteMessage.bind(this),
106
+ initiateSession: this.initiateSession.bind(this),
107
+ searchMessages: this.searchMessages.bind(this)
108
+ };
109
+ }
110
+
111
+ }
@@ -0,0 +1,2 @@
1
+ import MessageRepository from "./MessageRepository";
2
+ export { MessageRepository };
@@ -0,0 +1,105 @@
1
+ import { AttachmentAdapter, MessageAdapter, SessionAdapter } from "../../adapters/index";
2
+ import { ISessionRepository } from "../../../domain/interfaces/repositories";
3
+ import { SessionAPI } from "../../api";
4
+ import { ResponseTypes } from "../../../core/constants";
5
+ export default class SessionRepository extends ISessionRepository {
6
+ constructor(_ref) {
7
+ let {
8
+ sessionAPI,
9
+ sessionAdapter,
10
+ attachmentAdapter,
11
+ messageAdapter
12
+ } = _ref;
13
+ super();
14
+ this.defaultAPI = new SessionAPI();
15
+ this.customAPI = sessionAPI;
16
+ this.sessionAPI = this.createAPIProxy(this.customAPI, this.defaultAPI);
17
+ this.sessionAdapter = sessionAdapter || new SessionAdapter();
18
+ this.attachmentAdapter = attachmentAdapter || new AttachmentAdapter();
19
+ this.messageAdapter = messageAdapter || new MessageAdapter();
20
+ }
21
+
22
+ async invokeAPI(_ref2) {
23
+ let {
24
+ operation,
25
+ request,
26
+ adapter = this.sessionAdapter,
27
+ responseType
28
+ } = _ref2;
29
+ return this.executeAPICall({
30
+ operation,
31
+ request,
32
+ apiProxy: this.sessionAPI,
33
+ customAPI: this.customAPI,
34
+ adapter,
35
+ responseType
36
+ });
37
+ }
38
+
39
+ async updateAssignee(request) {
40
+ return this.invokeAPI({
41
+ operation: 'updateAssignee',
42
+ request
43
+ });
44
+ }
45
+
46
+ async getSessions(request) {
47
+ return this.invokeAPI({
48
+ operation: 'getSessions',
49
+ request,
50
+ responseType: ResponseTypes.LIST
51
+ });
52
+ }
53
+
54
+ async getSession(request) {
55
+ return this.invokeAPI({
56
+ operation: 'getSession',
57
+ request
58
+ });
59
+ }
60
+
61
+ async getSessionAttachments(request) {
62
+ return this.invokeAPI({
63
+ operation: 'getSessionAttachments',
64
+ request,
65
+ adapter: this.attachmentAdapter,
66
+ responseType: ResponseTypes.LIST
67
+ });
68
+ }
69
+
70
+ async getSessionLastMessages(request) {
71
+ return this.invokeAPI({
72
+ operation: 'getSessionLastMessages',
73
+ request,
74
+ adapter: this.messageAdapter,
75
+ responseType: ResponseTypes.LIST
76
+ });
77
+ }
78
+
79
+ async markSessionAsRead(request) {
80
+ return this.invokeAPI({
81
+ operation: 'markSessionAsRead',
82
+ request
83
+ });
84
+ }
85
+
86
+ async updateSessionStatus(request) {
87
+ return this.invokeAPI({
88
+ operation: 'updateSessionStatus',
89
+ request
90
+ });
91
+ }
92
+
93
+ toJSON() {
94
+ return {
95
+ updateAssignee: this.updateAssignee.bind(this),
96
+ getSessions: this.getSessions.bind(this),
97
+ getSession: this.getSession.bind(this),
98
+ getSessionAttachments: this.getSessionAttachments.bind(this),
99
+ getSessionLastMessages: this.getSessionLastMessages.bind(this),
100
+ markSessionAsRead: this.markSessionAsRead.bind(this),
101
+ updateSessionStatus: this.updateSessionStatus.bind(this)
102
+ };
103
+ }
104
+
105
+ }
@@ -0,0 +1,2 @@
1
+ import SessionRepository from "./SessionRepository";
2
+ export { SessionRepository };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zohoim/client-sdk",
3
- "version": "1.0.0-poc7",
3
+ "version": "1.0.0-poc71",
4
4
  "description": "To have the client sdk for the IM",
5
5
  "main": "es/index.js",
6
6
  "module": "es/index.js",
@@ -24,6 +24,9 @@
24
24
  "test": "react-cli test",
25
25
  "docs": "react-cli docs"
26
26
  },
27
+ "dependencies": {
28
+ "@zohoim/http-client": "1.0.0"
29
+ },
27
30
  "devDependencies": {
28
31
  "@zohodesk-private/client_dev_cert": "1.0.5",
29
32
  "@zohodesk/client_build_tool": "0.0.6-exp.37",
@@ -1,6 +0,0 @@
1
- const ActorType = {
2
- AGENT: 'AGENT',
3
- BOT: 'BOT',
4
- ENDUSER: 'ENDUSER'
5
- };
6
- export default ActorType;
@@ -1,2 +0,0 @@
1
- import ValidationError from './ValidationError';
2
- export { ValidationError };
@@ -1,9 +0,0 @@
1
- import GetChannelAgentsRequest from '../../types/channels/GetChannelAgentsRequest';
2
- export default class IChannelAgent {
3
- // eslint-disable-next-line no-unused-vars
4
- getChannelAgents() {
5
- let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : GetChannelAgentsRequest;
6
- throw new Error('Method not implemented.');
7
- }
8
-
9
- }
@@ -1,2 +0,0 @@
1
- import IChannelAgent from './IChannelAgent';
2
- export { IChannelAgent };
@@ -1,16 +0,0 @@
1
- import IChannelAgent from '../../interfaces/channels/IChannelAgent';
2
- import GetChannelAgentsRequest from '../../types/channels/GetChannelAgentsRequest';
3
- export default class ChannelAgentService extends IChannelAgent {
4
- constructor(channelAPI, channelAgentAdapter) {
5
- super();
6
- this.channelAPI = channelAPI;
7
- this.channelAgentAdapter = channelAgentAdapter;
8
- }
9
-
10
- async getChannelAgents() {
11
- let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : GetChannelAgentsRequest;
12
- const channelAgents = await this.channelAPI.getChannelAgents(request);
13
- return channelAgents.map(this.channelAgentAdapter.adapt);
14
- }
15
-
16
- }
@@ -1,2 +0,0 @@
1
- import ChannelAgentService from './ChannelAgentService';
2
- export { ChannelAgentService };
@@ -1 +0,0 @@
1
- export * from './channels';
@@ -1,7 +0,0 @@
1
- const GetChannelAgentsRequest = {
2
- channelId: '',
3
- from: 0,
4
- limit: 20,
5
- searchStr: ''
6
- };
7
- export default GetChannelAgentsRequest;
@@ -1,2 +0,0 @@
1
- import GetChannelAgentsRequest from './GetChannelAgentsRequest';
2
- export { GetChannelAgentsRequest };
@@ -1 +0,0 @@
1
- export * from './channels';
@@ -1 +0,0 @@
1
- export * from './sdk';
@@ -1,13 +0,0 @@
1
- import { ChannelAgentService } from '../../../domain/services';
2
- import { GetChannelAgentsRequest } from '../../../domain/types';
3
- export default class ChannelAgentsSDK {
4
- constructor(agentAPI, agentAdapter) {
5
- this.channelAgentService = new ChannelAgentService(agentAPI, agentAdapter);
6
- }
7
-
8
- async getAgents() {
9
- let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : GetChannelAgentsRequest;
10
- return this.channelAgentService.getChannelAgents(request);
11
- }
12
-
13
- }
@@ -1,7 +0,0 @@
1
- import ChannelAgentsSDK from './ChannelAgentsSDK';
2
- export default class ChannelSDK {
3
- constructor(config) {
4
- this.agents = new ChannelAgentsSDK(config.agentAPI, config.agentAdapter);
5
- }
6
-
7
- }
@@ -1,2 +0,0 @@
1
- import ChannelSDK from './ChannelSDK';
2
- export { ChannelSDK };
@@ -1 +0,0 @@
1
- export * from './channels';
package/es/sdk/IMSDK.js DELETED
@@ -1,7 +0,0 @@
1
- import { ChannelSDK } from '../modules';
2
- export default class IMSDK {
3
- constructor(config) {
4
- this.channels = new ChannelSDK(config.channels);
5
- }
6
-
7
- }
package/es/sdk/index.js DELETED
@@ -1,2 +0,0 @@
1
- import IMSDK from './IMSDK';
2
- export { IMSDK };
File without changes