@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,113 @@
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 pickupSession(request) {
40
+ return this.invokeAPI({
41
+ operation: 'pickupSession',
42
+ request
43
+ });
44
+ }
45
+
46
+ async updateAssignee(request) {
47
+ return this.invokeAPI({
48
+ operation: 'updateAssignee',
49
+ request
50
+ });
51
+ }
52
+
53
+ async getSessions(request) {
54
+ return this.invokeAPI({
55
+ operation: 'getSessions',
56
+ request,
57
+ responseType: ResponseTypes.LIST
58
+ });
59
+ }
60
+
61
+ async getSession(request) {
62
+ return this.invokeAPI({
63
+ operation: 'getSession',
64
+ request
65
+ });
66
+ }
67
+
68
+ async getSessionAttachments(request) {
69
+ return this.invokeAPI({
70
+ operation: 'getSessionAttachments',
71
+ request,
72
+ adapter: this.attachmentAdapter,
73
+ responseType: ResponseTypes.LIST
74
+ });
75
+ }
76
+
77
+ async getSessionLastMessages(request) {
78
+ return this.invokeAPI({
79
+ operation: 'getSessionLastMessages',
80
+ request,
81
+ adapter: this.messageAdapter,
82
+ responseType: ResponseTypes.LIST
83
+ });
84
+ }
85
+
86
+ async markSessionAsRead(request) {
87
+ return this.invokeAPI({
88
+ operation: 'markSessionAsRead',
89
+ request
90
+ });
91
+ }
92
+
93
+ async updateSessionStatus(request) {
94
+ return this.invokeAPI({
95
+ operation: 'updateSessionStatus',
96
+ request
97
+ });
98
+ }
99
+
100
+ toJSON() {
101
+ return {
102
+ pickupSession: this.pickupSession.bind(this),
103
+ updateAssignee: this.updateAssignee.bind(this),
104
+ getSessions: this.getSessions.bind(this),
105
+ getSession: this.getSession.bind(this),
106
+ getSessionAttachments: this.getSessionAttachments.bind(this),
107
+ getSessionLastMessages: this.getSessionLastMessages.bind(this),
108
+ markSessionAsRead: this.markSessionAsRead.bind(this),
109
+ updateSessionStatus: this.updateSessionStatus.bind(this)
110
+ };
111
+ }
112
+
113
+ }
@@ -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-poc9",
3
+ "version": "1.0.0-poc90",
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,2 +0,0 @@
1
- import CHANNEL_AGENTS_URLS from './urls-channel-agents';
2
- export { CHANNEL_AGENTS_URLS };
@@ -1,11 +0,0 @@
1
- import { HTTP_METHODS, IM_API_PREFIX } from '../../../core/constants';
2
- import { GetChannelAgentsRequest } from '../../../infrastructure/interfaces/api';
3
- const BASE_URL = `${IM_API_PREFIX}/channels/:channelId/agents`;
4
- const CHANNEL_AGENTS_URLS = {
5
- LIST: {
6
- url: BASE_URL,
7
- method: HTTP_METHODS.GET,
8
- ...GetChannelAgentsRequest
9
- }
10
- };
11
- export default CHANNEL_AGENTS_URLS;
@@ -1 +0,0 @@
1
- export * from './channels';
@@ -1,8 +0,0 @@
1
- const HTTP_METHODS = {
2
- GET: 'GET',
3
- POST: 'POST',
4
- PUT: 'PUT',
5
- PATCH: 'PATCH',
6
- DELETE: 'DELETE'
7
- };
8
- export default HTTP_METHODS;
@@ -1,6 +0,0 @@
1
- const ActorType = {
2
- AGENT: 'AGENT',
3
- BOT: 'BOT',
4
- ENDUSER: 'ENDUSER'
5
- };
6
- export default ActorType;
@@ -1,33 +0,0 @@
1
- export default class BaseAPI {
2
- replacePathParams(url, params) {
3
- let _url = url;
4
- Object.entries(params).forEach(_ref => {
5
- let [key, value] = _ref;
6
- _url = url.replace(`:${key}`, value);
7
- });
8
- return _url;
9
- }
10
-
11
- buildUrl(_ref2) {
12
- let {
13
- url,
14
- params,
15
- query
16
- } = _ref2;
17
-
18
- const _url = this.replacePathParams(url, params);
19
-
20
- const queryString = this.buildQuery(query);
21
-
22
- if (queryString) {
23
- return `${_url}?${queryString}`;
24
- }
25
-
26
- return _url;
27
- }
28
-
29
- buildQuery(object) {
30
- return new URLSearchParams(object).toString();
31
- }
32
-
33
- }
@@ -1,10 +0,0 @@
1
- import { GetChannelAgentsRequest } from '../../../infrastructure/interfaces/api';
2
- import BaseAPI from '../BaseAPI';
3
- export default class IChannelAgent extends BaseAPI {
4
- // eslint-disable-next-line no-unused-vars
5
- getChannelAgents() {
6
- let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : GetChannelAgentsRequest;
7
- throw new Error('Method not implemented.');
8
- }
9
-
10
- }
@@ -1,2 +0,0 @@
1
- import IChannelAgent from './IChannelAgent';
2
- export { IChannelAgent };
@@ -1,27 +0,0 @@
1
- import { ChannelAgentAdapter } from '../../../infrastructure/adapters';
2
- import { ChannelAgentAPI } from '../../../infrastructure/api';
3
- import { GetChannelAgentsRequest } from '../../../infrastructure/interfaces/api';
4
- import IChannelAgent from '../../interfaces/channels/IChannelAgent';
5
- export default class ChannelAgentService extends IChannelAgent {
6
- constructor(_ref) {
7
- let {
8
- channelAgentAPI,
9
- channelAgentAdapter,
10
- httpClient
11
- } = _ref;
12
- super();
13
- const urlConfig = GetChannelAgentsRequest;
14
- this.channelAgentAPI = channelAgentAPI || new ChannelAgentAPI({
15
- httpClient,
16
- urlConfig
17
- });
18
- this.channelAgentAdapter = channelAgentAdapter || new ChannelAgentAdapter();
19
- }
20
-
21
- async getChannelAgents() {
22
- let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : GetChannelAgentsRequest;
23
- const channelAgents = await this.channelAgentAPI.getChannelAgents(request);
24
- return channelAgents.map(this.channelAgentAdapter.adapt);
25
- }
26
-
27
- }
@@ -1,2 +0,0 @@
1
- import ChannelAgentService from './ChannelAgentService';
2
- export { ChannelAgentService };
@@ -1 +0,0 @@
1
- export * from './channels';
@@ -1,23 +0,0 @@
1
- import { AdapterError } from '../../core/errors';
2
- /**
3
- * Base adapter class that defines the contract for all adapters
4
- * @abstract
5
- */
6
-
7
- export default class BaseAdapter {
8
- /**
9
- * Adapts the input data to required format
10
- * @param {*} data - Data to adapt
11
- * @throws {AdapterError} When method is not implemented
12
- */
13
- adapt(data) {
14
- if (this.constructor === BaseAdapter) {
15
- throw new AdapterError(`${this.constructor.name}: adapt() must be implemented by subclass`);
16
- }
17
-
18
- if (!data) {
19
- throw new AdapterError(`${this.constructor.name}: data parameter is required`);
20
- }
21
- }
22
-
23
- }
@@ -1,13 +0,0 @@
1
- const params = {
2
- channelId: ''
3
- };
4
- const query = {
5
- from: 0,
6
- limit: 10,
7
- searchStr: ''
8
- };
9
- const GetChannelAgentsRequest = {
10
- params,
11
- query
12
- };
13
- export default GetChannelAgentsRequest;
@@ -1,2 +0,0 @@
1
- import GetChannelAgentsRequest from './GetChannelAgentsRequest';
2
- export { GetChannelAgentsRequest };
@@ -1 +0,0 @@
1
- export * from './agents';
@@ -1 +0,0 @@
1
- export * from './channels';
@@ -1 +0,0 @@
1
- export * from './api';
@@ -1,15 +0,0 @@
1
- import { ModuleNames } from '../../core/constants';
2
- import { ChannelSDK } from '../sdk/channels';
3
- const ModuleFactory = {
4
- [ModuleNames.CHANNELS]: _ref => {
5
- let {
6
- config,
7
- httpClient
8
- } = _ref;
9
- return new ChannelSDK({
10
- config,
11
- httpClient
12
- });
13
- }
14
- };
15
- export default ModuleFactory;
@@ -1,2 +0,0 @@
1
- import ModuleManager from './ModuleManager';
2
- export { ModuleManager };
@@ -1,25 +0,0 @@
1
- import { ModuleNames } from '../../core/constants';
2
- import { ModuleManager } from '../managers';
3
- export default class IMSDK {
4
- constructor(_ref) {
5
- let {
6
- config = {},
7
- httpClient
8
- } = _ref;
9
- this._moduleManager = new ModuleManager();
10
-
11
- this._moduleManager.initialize({
12
- config,
13
- httpClient
14
- });
15
- }
16
-
17
- get channels() {
18
- return this._moduleManager.getModule(ModuleNames.CHANNELS);
19
- }
20
-
21
- hasModule(moduleName) {
22
- return this._modules.has(moduleName);
23
- }
24
-
25
- }
@@ -1,22 +0,0 @@
1
- import { ChannelAgentService } from '../../../domain/services';
2
- import { GetChannelAgentsRequest } from '../../interfaces/api';
3
- export default class ChannelAgentsSDK {
4
- constructor(_ref) {
5
- let {
6
- channelAgentAPI,
7
- channelAgentAdapter,
8
- httpClient
9
- } = _ref;
10
- this.channelAgentService = new ChannelAgentService({
11
- channelAgentAPI,
12
- channelAgentAdapter,
13
- httpClient
14
- });
15
- }
16
-
17
- async getAgents() {
18
- let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : GetChannelAgentsRequest;
19
- return this.channelAgentService.getChannelAgents(request);
20
- }
21
-
22
- }
@@ -1,19 +0,0 @@
1
- import ChannelAgentsSDK from './ChannelAgentsSDK';
2
- export default class ChannelSDK {
3
- constructor(_ref) {
4
- let {
5
- config,
6
- httpClient
7
- } = _ref;
8
- const {
9
- channelAgentAPI,
10
- channelAgentAdapter
11
- } = config;
12
- this.agents = new ChannelAgentsSDK({
13
- channelAgentAPI,
14
- channelAgentAdapter,
15
- httpClient
16
- });
17
- }
18
-
19
- }
@@ -1,2 +0,0 @@
1
- import ChannelSDK from './ChannelSDK';
2
- export { ChannelSDK };
@@ -1,2 +0,0 @@
1
- import IMSDK from './IMSDK';
2
- export { IMSDK };