@zohoim/client-sdk 0.0.3 → 0.0.5

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 (211) hide show
  1. package/es/application/services/agents/AgentService.js +1 -1
  2. package/es/application/services/agents/index.js +1 -1
  3. package/es/application/services/bots/BotService.js +1 -1
  4. package/es/application/services/bots/index.js +1 -1
  5. package/es/application/services/channels/ChannelAgentService.js +1 -1
  6. package/es/application/services/channels/ChannelService.js +1 -1
  7. package/es/application/services/channels/index.js +2 -2
  8. package/es/application/services/contacts/ContactService.js +1 -1
  9. package/es/application/services/contacts/index.js +1 -1
  10. package/es/application/services/index.js +6 -6
  11. package/es/application/services/messages/MessageService.js +6 -1
  12. package/es/application/services/messages/index.js +1 -1
  13. package/es/application/services/sessions/SessionService.js +6 -1
  14. package/es/application/services/sessions/index.js +1 -1
  15. package/es/core/constants/index.js +2 -2
  16. package/es/core/errors/index.js +2 -2
  17. package/es/core/utils/index.js +2 -2
  18. package/es/core/utils/validateSchema.js +1 -1
  19. package/es/domain/dto/agents/getAgentsRequest.js +1 -1
  20. package/es/domain/dto/agents/index.js +1 -1
  21. package/es/domain/dto/bots/getBotRequest.js +1 -1
  22. package/es/domain/dto/bots/getBotsRequest.js +1 -1
  23. package/es/domain/dto/bots/index.js +2 -2
  24. package/es/domain/dto/channels/agents/getChannelAgentsRequest.js +1 -1
  25. package/es/domain/dto/channels/agents/index.js +1 -1
  26. package/es/domain/dto/channels/getChannelsRequest.js +1 -1
  27. package/es/domain/dto/channels/index.js +2 -2
  28. package/es/domain/dto/contacts/getContactsRequest.js +1 -1
  29. package/es/domain/dto/contacts/index.js +1 -1
  30. package/es/domain/dto/index.js +6 -6
  31. package/es/domain/dto/messages/deleteMessageRequest.js +1 -1
  32. package/es/domain/dto/messages/getFullContentRequest.js +1 -1
  33. package/es/domain/dto/messages/getMessageRequest.js +14 -0
  34. package/es/domain/dto/messages/getMessagesRequest.js +1 -1
  35. package/es/domain/dto/messages/index.js +9 -8
  36. package/es/domain/dto/messages/initiateSessionRequest.js +2 -1
  37. package/es/domain/dto/messages/resendMessageRequest.js +1 -1
  38. package/es/domain/dto/messages/searchMessagesRequest.js +1 -1
  39. package/es/domain/dto/messages/sendAttachmentRequest.js +1 -2
  40. package/es/domain/dto/messages/sendMessageRequest.js +3 -1
  41. package/es/domain/dto/sessions/getSessionAttachmentsRequest.js +1 -1
  42. package/es/domain/dto/sessions/getSessionLastMessagesRequest.js +1 -1
  43. package/es/domain/dto/sessions/getSessionRequest.js +1 -1
  44. package/es/domain/dto/sessions/getSessionsRequest.js +1 -1
  45. package/es/domain/dto/sessions/index.js +8 -7
  46. package/es/domain/dto/sessions/markSessionAsReadRequest.js +6 -2
  47. package/es/domain/dto/sessions/pickupSessionRequest.js +9 -0
  48. package/es/domain/dto/sessions/updateSessionAssigneeRequest.js +1 -1
  49. package/es/domain/dto/sessions/updateSessionStatusRequest.js +2 -1
  50. package/es/domain/entities/Actor/Actor.js +11 -3
  51. package/es/domain/entities/Actor/index.js +1 -1
  52. package/es/domain/entities/Agent/Agent.js +2 -2
  53. package/es/domain/entities/Agent/index.js +1 -1
  54. package/es/domain/entities/Attachment/Attachment.js +2 -2
  55. package/es/domain/entities/Attachment/index.js +1 -1
  56. package/es/domain/entities/Bot/Bot.js +2 -2
  57. package/es/domain/entities/Bot/index.js +1 -1
  58. package/es/domain/entities/Channel/Channel.js +2 -2
  59. package/es/domain/entities/Channel/index.js +1 -1
  60. package/es/domain/entities/Contact/Contact.js +2 -2
  61. package/es/domain/entities/Contact/index.js +1 -1
  62. package/es/domain/entities/IntegrationService/IntegrationService.js +3 -3
  63. package/es/domain/entities/IntegrationService/index.js +1 -1
  64. package/es/domain/entities/Message/Action.js +8 -2
  65. package/es/domain/entities/Message/ExternalInfo.js +11 -2
  66. package/es/domain/entities/Message/Info.js +27 -4
  67. package/es/domain/entities/Message/InfoTarget.js +22 -0
  68. package/es/domain/entities/Message/Location.js +2 -2
  69. package/es/domain/entities/Message/Message.js +77 -10
  70. package/es/domain/entities/Message/MessageWithSession.js +4 -4
  71. package/es/domain/entities/Message/index.js +7 -6
  72. package/es/domain/entities/Session/Session.js +32 -4
  73. package/es/domain/entities/Session/index.js +1 -1
  74. package/es/domain/entities/index.js +9 -9
  75. package/es/domain/enum/actor/ActorType.js +1 -1
  76. package/es/domain/enum/actor/index.js +1 -1
  77. package/es/domain/enum/attachment/index.js +1 -1
  78. package/es/domain/enum/bot/index.js +1 -1
  79. package/es/domain/enum/index.js +6 -6
  80. package/es/domain/enum/integrationServices/index.js +1 -1
  81. package/es/domain/enum/message/InfoTargetType.js +11 -0
  82. package/es/domain/enum/message/MessageDirection.js +2 -2
  83. package/es/domain/enum/message/MessageMeta.js +4 -0
  84. package/es/domain/enum/message/MetaSystemMessageType.js +8 -0
  85. package/es/domain/enum/message/index.js +13 -10
  86. package/es/domain/enum/session/index.js +2 -2
  87. package/es/domain/interfaces/index.js +2 -2
  88. package/es/domain/interfaces/repositories/agents/IAgentRepository.js +3 -3
  89. package/es/domain/interfaces/repositories/agents/index.js +1 -1
  90. package/es/domain/interfaces/repositories/bots/IBotRepository.js +3 -3
  91. package/es/domain/interfaces/repositories/bots/index.js +1 -1
  92. package/es/domain/interfaces/repositories/channels/IChannelAgentRepository.js +3 -3
  93. package/es/domain/interfaces/repositories/channels/IChannelRepository.js +3 -3
  94. package/es/domain/interfaces/repositories/channels/index.js +2 -2
  95. package/es/domain/interfaces/repositories/contacts/IContactRepository.js +3 -3
  96. package/es/domain/interfaces/repositories/contacts/index.js +1 -1
  97. package/es/domain/interfaces/repositories/index.js +6 -6
  98. package/es/domain/interfaces/repositories/messages/IMessageRepository.js +8 -3
  99. package/es/domain/interfaces/repositories/messages/index.js +1 -1
  100. package/es/domain/interfaces/repositories/sessions/ISessionRepository.js +8 -3
  101. package/es/domain/interfaces/repositories/sessions/index.js +1 -1
  102. package/es/domain/schema/actor/ActorSchema.js +1 -1
  103. package/es/domain/schema/actor/AgentSchema.js +1 -1
  104. package/es/domain/schema/actor/index.js +2 -2
  105. package/es/domain/schema/attachment/AttachmentSchema.js +1 -1
  106. package/es/domain/schema/attachment/index.js +1 -1
  107. package/es/domain/schema/bot/BotSchema.js +1 -1
  108. package/es/domain/schema/bot/index.js +1 -1
  109. package/es/domain/schema/channel/ChannelSchema.js +1 -1
  110. package/es/domain/schema/channel/index.js +1 -1
  111. package/es/domain/schema/contact/index.js +1 -1
  112. package/es/domain/schema/index.js +8 -8
  113. package/es/domain/schema/integrationService/IntegrationServiceSchema.js +1 -1
  114. package/es/domain/schema/integrationService/index.js +1 -1
  115. package/es/domain/schema/message/ActionSchema.js +1 -1
  116. package/es/domain/schema/message/ExternalInfoSchema.js +1 -1
  117. package/es/domain/schema/message/InfoSchema.js +2 -2
  118. package/es/domain/schema/message/InfoTargetSchema.js +35 -0
  119. package/es/domain/schema/message/MessageSchema.js +11 -7
  120. package/es/domain/schema/message/MessageWithSessionSchema.js +2 -2
  121. package/es/domain/schema/message/index.js +8 -7
  122. package/es/domain/schema/session/SessionSchema.js +2 -2
  123. package/es/domain/schema/session/index.js +1 -1
  124. package/es/frameworks/managers/ModuleFactory.js +7 -7
  125. package/es/frameworks/managers/ModuleManager.js +2 -2
  126. package/es/frameworks/managers/index.js +1 -1
  127. package/es/frameworks/sdk/IMSDK.js +3 -3
  128. package/es/frameworks/sdk/agents/AgentSDK.js +2 -2
  129. package/es/frameworks/sdk/agents/index.js +1 -1
  130. package/es/frameworks/sdk/bots/BotSDK.js +2 -2
  131. package/es/frameworks/sdk/bots/index.js +1 -1
  132. package/es/frameworks/sdk/channels/ChannelSDK.js +2 -2
  133. package/es/frameworks/sdk/channels/index.js +1 -1
  134. package/es/frameworks/sdk/contacts/ContactSDK.js +2 -2
  135. package/es/frameworks/sdk/contacts/index.js +1 -1
  136. package/es/frameworks/sdk/index.js +1 -1
  137. package/es/frameworks/sdk/messages/MessageSDK.js +2 -2
  138. package/es/frameworks/sdk/messages/index.js +1 -1
  139. package/es/frameworks/sdk/sessions/SessionSDK.js +2 -2
  140. package/es/frameworks/sdk/sessions/index.js +1 -1
  141. package/es/index.js +8 -8
  142. package/es/infrastructure/adapters/agents/AgentAdapter.js +4 -4
  143. package/es/infrastructure/adapters/agents/index.js +1 -1
  144. package/es/infrastructure/adapters/attachments/AttachmentAdapter.js +3 -3
  145. package/es/infrastructure/adapters/attachments/index.js +1 -1
  146. package/es/infrastructure/adapters/bots/BotAdapter.js +3 -3
  147. package/es/infrastructure/adapters/bots/index.js +1 -1
  148. package/es/infrastructure/adapters/channels/ChannelAdapter.js +3 -3
  149. package/es/infrastructure/adapters/channels/ChannelAgentAdapter.js +3 -3
  150. package/es/infrastructure/adapters/channels/index.js +2 -2
  151. package/es/infrastructure/adapters/contacts/ContactAdapter.js +3 -3
  152. package/es/infrastructure/adapters/contacts/index.js +1 -1
  153. package/es/infrastructure/adapters/index.js +7 -7
  154. package/es/infrastructure/adapters/messages/MessageAdapter.js +3 -3
  155. package/es/infrastructure/adapters/messages/MessageWithSessionAdapter.js +4 -4
  156. package/es/infrastructure/adapters/messages/index.js +1 -1
  157. package/es/infrastructure/adapters/sessions/SessionAdapter.js +3 -3
  158. package/es/infrastructure/adapters/sessions/index.js +1 -1
  159. package/es/infrastructure/api/BaseAPI.js +17 -60
  160. package/es/infrastructure/api/UrlBuilder.js +53 -0
  161. package/es/infrastructure/api/agents/AgentAPI.js +2 -2
  162. package/es/infrastructure/api/agents/index.js +1 -1
  163. package/es/infrastructure/api/bots/BotAPI.js +2 -2
  164. package/es/infrastructure/api/bots/index.js +1 -1
  165. package/es/infrastructure/api/channels/ChannelAPI.js +2 -2
  166. package/es/infrastructure/api/channels/ChannelAgentAPI.js +2 -2
  167. package/es/infrastructure/api/channels/index.js +2 -2
  168. package/es/infrastructure/api/contacts/ContactAPI.js +2 -2
  169. package/es/infrastructure/api/contacts/index.js +1 -1
  170. package/es/infrastructure/api/index.js +6 -6
  171. package/es/infrastructure/api/messages/MessageAPI.js +12 -2
  172. package/es/infrastructure/api/messages/index.js +1 -1
  173. package/es/infrastructure/api/registry/agents/agentAPIRegistry.js +4 -4
  174. package/es/infrastructure/api/registry/agents/constructAgentEndPoint.js +1 -1
  175. package/es/infrastructure/api/registry/agents/index.js +1 -1
  176. package/es/infrastructure/api/registry/bots/botAPIRegistry.js +4 -4
  177. package/es/infrastructure/api/registry/bots/constructBotEndPoint.js +1 -1
  178. package/es/infrastructure/api/registry/bots/index.js +1 -1
  179. package/es/infrastructure/api/registry/channels/channelAPIRegistry.js +5 -5
  180. package/es/infrastructure/api/registry/channels/channelAgentAPIRegistry.js +4 -4
  181. package/es/infrastructure/api/registry/channels/constructChannelEndPoint.js +1 -1
  182. package/es/infrastructure/api/registry/channels/index.js +1 -1
  183. package/es/infrastructure/api/registry/contacts/constructContactEndPoint.js +1 -1
  184. package/es/infrastructure/api/registry/contacts/contactAPIRegistry.js +4 -4
  185. package/es/infrastructure/api/registry/contacts/index.js +1 -1
  186. package/es/infrastructure/api/registry/getRegistryConfig.js +7 -7
  187. package/es/infrastructure/api/registry/index.js +1 -1
  188. package/es/infrastructure/api/registry/messages/constructMessageEndPoint.js +1 -1
  189. package/es/infrastructure/api/registry/messages/index.js +1 -1
  190. package/es/infrastructure/api/registry/messages/messageAPIRegistry.js +11 -6
  191. package/es/infrastructure/api/registry/sessions/constructSessionEndPoint.js +1 -1
  192. package/es/infrastructure/api/registry/sessions/index.js +1 -1
  193. package/es/infrastructure/api/registry/sessions/sessionAPIRegistry.js +12 -6
  194. package/es/infrastructure/api/sessions/SessionAPI.js +12 -2
  195. package/es/infrastructure/api/sessions/index.js +1 -1
  196. package/es/infrastructure/config/index.js +1 -1
  197. package/es/infrastructure/repositories/agents/AgentRepository.js +4 -4
  198. package/es/infrastructure/repositories/agents/index.js +1 -1
  199. package/es/infrastructure/repositories/bots/BotRepository.js +4 -4
  200. package/es/infrastructure/repositories/bots/index.js +1 -1
  201. package/es/infrastructure/repositories/channels/ChannelAgentRepository.js +4 -4
  202. package/es/infrastructure/repositories/channels/ChannelRepository.js +4 -4
  203. package/es/infrastructure/repositories/channels/index.js +2 -2
  204. package/es/infrastructure/repositories/contacts/ContactRepository.js +4 -4
  205. package/es/infrastructure/repositories/contacts/index.js +1 -1
  206. package/es/infrastructure/repositories/index.js +6 -6
  207. package/es/infrastructure/repositories/messages/MessageRepository.js +13 -5
  208. package/es/infrastructure/repositories/messages/index.js +1 -1
  209. package/es/infrastructure/repositories/sessions/SessionRepository.js +12 -4
  210. package/es/infrastructure/repositories/sessions/index.js +1 -1
  211. package/package.json +7 -8
@@ -1,7 +1,8 @@
1
- import { ResponseTypes } from "../../core/constants";
2
- import { ResponseUtils } from "../../core/utils";
3
- import configRegistry from "../config/configRegistry";
4
- import { getRegistryConfig } from "./registry";
1
+ import { ResponseTypes } from '../../core/constants';
2
+ import { ResponseUtils } from '../../core/utils';
3
+ import configRegistry from '../config/configRegistry';
4
+ import { getRegistryConfig } from './registry';
5
+ import UrlBuilder from './UrlBuilder';
5
6
  export default class BaseAPI {
6
7
  constructor() {
7
8
  let {
@@ -9,78 +10,30 @@ export default class BaseAPI {
9
10
  configProvider = configRegistry,
10
11
  registryProvider = {
11
12
  getRegistryConfig
12
- }
13
+ },
14
+ urlBuilder = new UrlBuilder()
13
15
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
14
16
  this.configProvider = configProvider;
15
17
  this.registryProvider = registryProvider;
16
18
  this.httpClient = this.configProvider.getHttpClient();
17
19
  this.baseURL = this.configProvider.getBaseURL();
18
20
  this.module = module;
21
+ this.urlBuilder = urlBuilder;
19
22
  }
20
23
 
21
- replacePathParams(url, params) {
22
- let _url = url;
23
- Object.entries(params).forEach(_ref => {
24
- let [key, value] = _ref;
25
- _url = url.replace(`:${key}`, value);
26
- });
27
- return _url;
28
- }
29
-
30
- buildUrl(_ref2) {
31
- let {
32
- url,
33
- params,
34
- query
35
- } = _ref2;
36
-
37
- const _params = params || {};
38
-
39
- const _query = query || {};
40
-
41
- let _url = this.replacePathParams(url, _params);
42
-
43
- if (this.baseURL) {
44
- _url = `${this.baseURL}${_url}`;
45
- }
46
-
47
- const queryString = this.buildQuery(_query);
48
-
49
- if (queryString) {
50
- return `${_url}?${queryString}`;
51
- }
52
-
53
- return _url;
54
- }
55
-
56
- buildQuery(query) {
57
- const filteredQuery = Object.entries(query).filter(_ref3 => {
58
- let [, value] = _ref3;
59
- return value !== undefined && value !== null && value !== '';
60
- }).reduce((acc, _ref4) => {
61
- let [key, value] = _ref4;
62
- acc[key] = value;
63
- return acc;
64
- }, {});
65
- return Object.entries(filteredQuery).map(_ref5 => {
66
- let [key, value] = _ref5;
67
- return `${key}=${value}`;
68
- }).join('&');
69
- }
70
-
71
- async request(_ref6) {
24
+ async request(_ref) {
72
25
  let {
73
26
  request,
74
27
  operation,
75
28
  header
76
- } = _ref6;
29
+ } = _ref;
77
30
  const config = this.registryProvider.getRegistryConfig(this.module, operation);
78
31
 
79
32
  if (!config) {
80
33
  throw new Error(`Operation "${operation}" not found in registry for module "${this.module}"`);
81
34
  }
82
35
 
83
- const url = this.buildUrl({
36
+ const url = this.urlBuilder.buildUrl({
84
37
  url: config.endpoint,
85
38
  params: request.params || {},
86
39
  query: request.query || {}
@@ -116,12 +69,16 @@ export default class BaseAPI {
116
69
  }
117
70
 
118
71
  isMethodOverridden(customAPI, methodName) {
72
+ if (!customAPI) {
73
+ return false;
74
+ }
75
+
119
76
  const customPrototype = Object.getPrototypeOf(customAPI);
120
77
  return typeof customAPI[methodName] === 'function' && // Method is defined directly on custom prototype
121
78
  Object.prototype.hasOwnProperty.call(customPrototype, methodName);
122
79
  }
123
80
 
124
- async executeAPICall(_ref7) {
81
+ async executeAPICall(_ref2) {
125
82
  let {
126
83
  operation,
127
84
  request,
@@ -129,7 +86,7 @@ export default class BaseAPI {
129
86
  customAPI,
130
87
  adapter,
131
88
  responseType = ResponseTypes.SINGLE
132
- } = _ref7;
89
+ } = _ref2;
133
90
  const response = await apiProxy[operation](request);
134
91
  const isOverridden = this.isMethodOverridden(customAPI, operation);
135
92
 
@@ -0,0 +1,53 @@
1
+ export default class UrlBuilder {
2
+ constructor(baseURL) {
3
+ this.baseURL = baseURL;
4
+ }
5
+
6
+ replacePathParams(url, params) {
7
+ let processedUrl = url;
8
+ Object.entries(params).forEach(_ref => {
9
+ let [key, value] = _ref;
10
+ processedUrl = processedUrl.replace(`:${key}`, value);
11
+ });
12
+ return processedUrl;
13
+ }
14
+
15
+ buildUrl(_ref2) {
16
+ let {
17
+ url,
18
+ params,
19
+ query
20
+ } = _ref2;
21
+ const paramsObj = params || {};
22
+ const queryObj = query || {};
23
+ let processedUrl = this.replacePathParams(url, paramsObj);
24
+
25
+ if (this.baseURL) {
26
+ processedUrl = `${this.baseURL}${processedUrl}`;
27
+ }
28
+
29
+ const queryString = this.buildQuery(queryObj);
30
+
31
+ if (queryString) {
32
+ return `${processedUrl}?${queryString}`;
33
+ }
34
+
35
+ return processedUrl;
36
+ }
37
+
38
+ buildQuery(query) {
39
+ const filteredQuery = Object.entries(query).filter(_ref3 => {
40
+ let [, value] = _ref3;
41
+ return value !== undefined && value !== null && value !== '';
42
+ }).reduce((acc, _ref4) => {
43
+ let [key, value] = _ref4;
44
+ acc[key] = value;
45
+ return acc;
46
+ }, {});
47
+ return Object.entries(filteredQuery).map(_ref5 => {
48
+ let [key, value] = _ref5;
49
+ return `${key}=${value}`;
50
+ }).join('&');
51
+ }
52
+
53
+ }
@@ -1,5 +1,5 @@
1
- import { getAgentsRequest } from "../../../domain/dto";
2
- import { IAgentRepository } from "../../../domain/interfaces/repositories";
1
+ import { getAgentsRequest } from '../../../domain/dto';
2
+ import { IAgentRepository } from '../../../domain/interfaces/repositories';
3
3
  export default class AgentAPI extends IAgentRepository {
4
4
  async getAgents() {
5
5
  let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getAgentsRequest();
@@ -1,2 +1,2 @@
1
- import AgentAPI from "./AgentAPI";
1
+ import AgentAPI from './AgentAPI';
2
2
  export { AgentAPI };
@@ -1,5 +1,5 @@
1
- import { getBotsRequest, getBotRequest } from "../../../domain/dto";
2
- import { IBotRepository } from "../../../domain/interfaces/repositories";
1
+ import { getBotsRequest, getBotRequest } from '../../../domain/dto';
2
+ import { IBotRepository } from '../../../domain/interfaces/repositories';
3
3
  export default class BotAPI extends IBotRepository {
4
4
  async getBots() {
5
5
  let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getBotsRequest();
@@ -1,2 +1,2 @@
1
- import BotAPI from "./BotAPI";
1
+ import BotAPI from './BotAPI';
2
2
  export { BotAPI };
@@ -1,5 +1,5 @@
1
- import { getChannelsRequest } from "../../../domain/dto";
2
- import { IChannelRepository } from "../../../domain/interfaces/repositories";
1
+ import { getChannelsRequest } from '../../../domain/dto';
2
+ import { IChannelRepository } from '../../../domain/interfaces/repositories';
3
3
  export default class ChannelAPI extends IChannelRepository {
4
4
  async getChannels() {
5
5
  let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getChannelsRequest();
@@ -1,5 +1,5 @@
1
- import { getChannelAgentsRequest } from "../../../domain/dto";
2
- import { IChannelAgentRepository } from "../../../domain/interfaces/repositories";
1
+ import { getChannelAgentsRequest } from '../../../domain/dto';
2
+ import { IChannelAgentRepository } from '../../../domain/interfaces/repositories';
3
3
  export default class ChannelAgentAPI extends IChannelAgentRepository {
4
4
  async getAgents() {
5
5
  let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getChannelAgentsRequest();
@@ -1,3 +1,3 @@
1
- import ChannelAgentAPI from "./ChannelAgentAPI";
2
- import ChannelAPI from "./ChannelAPI";
1
+ import ChannelAgentAPI from './ChannelAgentAPI';
2
+ import ChannelAPI from './ChannelAPI';
3
3
  export { ChannelAgentAPI, ChannelAPI };
@@ -1,5 +1,5 @@
1
- import { getContactsRequest } from "../../../domain/dto";
2
- import { IContactRepository } from "../../../domain/interfaces/repositories";
1
+ import { getContactsRequest } from '../../../domain/dto';
2
+ import { IContactRepository } from '../../../domain/interfaces/repositories';
3
3
  export default class ContactAPI extends IContactRepository {
4
4
  async getContacts() {
5
5
  let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getContactsRequest();
@@ -1,2 +1,2 @@
1
- import ContactAPI from "./ContactAPI";
1
+ import ContactAPI from './ContactAPI';
2
2
  export { ContactAPI };
@@ -1,6 +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";
1
+ export * from './channels';
2
+ export * from './sessions';
3
+ export * from './bots';
4
+ export * from './messages';
5
+ export * from './agents';
6
+ export * from './contacts';
@@ -1,5 +1,5 @@
1
- import { getMessagesRequest, deleteMessageRequest, getFullContentRequest, resendMessageRequest, sendAttachmentRequest, sendMessageRequest, initiateSessionRequest, searchMessagesRequest } from "../../../domain/dto";
2
- import { IMessageRepository } from "../../../domain/interfaces/repositories";
1
+ import { getMessagesRequest, deleteMessageRequest, getFullContentRequest, resendMessageRequest, sendAttachmentRequest, sendMessageRequest, initiateSessionRequest, searchMessagesRequest, getMessageRequest } from '../../../domain/dto';
2
+ import { IMessageRepository } from '../../../domain/interfaces/repositories';
3
3
  export default class MessageAPI extends IMessageRepository {
4
4
  async getMessages() {
5
5
  let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getMessagesRequest();
@@ -11,6 +11,16 @@ export default class MessageAPI extends IMessageRepository {
11
11
  return httpRequest;
12
12
  }
13
13
 
14
+ async getMessage() {
15
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getMessageRequest();
16
+ const operation = 'getMessage';
17
+ const httpRequest = await this.request({
18
+ operation,
19
+ request
20
+ });
21
+ return httpRequest;
22
+ }
23
+
14
24
  async getFullContent() {
15
25
  let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getFullContentRequest();
16
26
  const operation = 'getFullContent';
@@ -1,2 +1,2 @@
1
- import MessageAPI from "./MessageAPI";
1
+ import MessageAPI from './MessageAPI';
2
2
  export { MessageAPI };
@@ -1,7 +1,7 @@
1
- import { HTTP_METHODS } from "../../../../core/constants";
2
- import { getAgentsRequest } from "../../../../domain/dto";
3
- import createAPIRegistry from "../createAPIRegistry";
4
- import constructAgentEndPoint from "./constructAgentEndPoint";
1
+ import { HTTP_METHODS } from '../../../../core/constants';
2
+ import { getAgentsRequest } from '../../../../domain/dto';
3
+ import createAPIRegistry from '../createAPIRegistry';
4
+ import constructAgentEndPoint from './constructAgentEndPoint';
5
5
 
6
6
  function getAgents() {
7
7
  return createAPIRegistry(constructAgentEndPoint(), HTTP_METHODS.GET, getAgentsRequest());
@@ -1,4 +1,4 @@
1
- import createBaseUrl from "../createBaseUrl";
1
+ import createBaseUrl from '../createBaseUrl';
2
2
  export default function constructAgentEndPoint(extra) {
3
3
  const base = '/users';
4
4
 
@@ -1,2 +1,2 @@
1
- import agentAPIRegistry from "./agentAPIRegistry";
1
+ import agentAPIRegistry from './agentAPIRegistry';
2
2
  export { agentAPIRegistry };
@@ -1,7 +1,7 @@
1
- import { HTTP_METHODS } from "../../../../core/constants";
2
- import { getBotsRequest, getBotRequest } from "../../../../domain/dto";
3
- import createAPIRegistry from "../createAPIRegistry";
4
- import constructBotEndPoint from "./constructBotEndPoint";
1
+ import { HTTP_METHODS } from '../../../../core/constants';
2
+ import { getBotsRequest, getBotRequest } from '../../../../domain/dto';
3
+ import createAPIRegistry from '../createAPIRegistry';
4
+ import constructBotEndPoint from './constructBotEndPoint';
5
5
 
6
6
  function getBots() {
7
7
  return createAPIRegistry(constructBotEndPoint(), HTTP_METHODS.GET, getBotsRequest());
@@ -1,4 +1,4 @@
1
- import createBaseUrl from "../createBaseUrl";
1
+ import createBaseUrl from '../createBaseUrl';
2
2
  export default function constructBotEndPoint(extra) {
3
3
  const base = '/bots';
4
4
 
@@ -1,2 +1,2 @@
1
- import botAPIRegistry from "./botAPIRegistry";
1
+ import botAPIRegistry from './botAPIRegistry';
2
2
  export { botAPIRegistry };
@@ -1,8 +1,8 @@
1
- import { HTTP_METHODS } from "../../../../core/constants";
2
- import { getChannelsRequest } from "../../../../domain/dto";
3
- import createAPIRegistry from "../createAPIRegistry";
4
- import channelAgentAPIRegistry from "./channelAgentAPIRegistry";
5
- import constructChannelEndPoint from "./constructChannelEndPoint";
1
+ import { HTTP_METHODS } from '../../../../core/constants';
2
+ import { getChannelsRequest } from '../../../../domain/dto';
3
+ import createAPIRegistry from '../createAPIRegistry';
4
+ import channelAgentAPIRegistry from './channelAgentAPIRegistry';
5
+ import constructChannelEndPoint from './constructChannelEndPoint';
6
6
 
7
7
  function getChannels() {
8
8
  return createAPIRegistry(constructChannelEndPoint(), HTTP_METHODS.GET, getChannelsRequest());
@@ -1,7 +1,7 @@
1
- import { HTTP_METHODS } from "../../../../core/constants";
2
- import { getChannelAgentsRequest } from "../../../../domain/dto";
3
- import createAPIRegistry from "../createAPIRegistry";
4
- import constructChannelEndPoint from "./constructChannelEndPoint";
1
+ import { HTTP_METHODS } from '../../../../core/constants';
2
+ import { getChannelAgentsRequest } from '../../../../domain/dto';
3
+ import createAPIRegistry from '../createAPIRegistry';
4
+ import constructChannelEndPoint from './constructChannelEndPoint';
5
5
 
6
6
  function getAgents() {
7
7
  return createAPIRegistry(constructChannelEndPoint('/:channelId/agents'), HTTP_METHODS.GET, getChannelAgentsRequest());
@@ -1,4 +1,4 @@
1
- import createBaseUrl from "../createBaseUrl";
1
+ import createBaseUrl from '../createBaseUrl';
2
2
  export default function constructChannelEndPoint(extra) {
3
3
  const base = '/channels';
4
4
 
@@ -1,2 +1,2 @@
1
- import channelAPIRegistry from "./channelAPIRegistry";
1
+ import channelAPIRegistry from './channelAPIRegistry';
2
2
  export { channelAPIRegistry };
@@ -1,4 +1,4 @@
1
- import createBaseUrl from "../createBaseUrl";
1
+ import createBaseUrl from '../createBaseUrl';
2
2
  export default function constructContactEndPoint(extra) {
3
3
  const base = '/contacts';
4
4
 
@@ -1,7 +1,7 @@
1
- import { HTTP_METHODS } from "../../../../core/constants";
2
- import { getContactsRequest } from "../../../../domain/dto";
3
- import createAPIRegistry from "../createAPIRegistry";
4
- import constructContactEndPoint from "./constructContactEndPoint";
1
+ import { HTTP_METHODS } from '../../../../core/constants';
2
+ import { getContactsRequest } from '../../../../domain/dto';
3
+ import createAPIRegistry from '../createAPIRegistry';
4
+ import constructContactEndPoint from './constructContactEndPoint';
5
5
 
6
6
  function getContacts() {
7
7
  return createAPIRegistry(constructContactEndPoint(), HTTP_METHODS.GET, getContactsRequest());
@@ -1,2 +1,2 @@
1
- import contactAPIRegistry from "./contactAPIRegistry";
1
+ import contactAPIRegistry from './contactAPIRegistry';
2
2
  export { contactAPIRegistry };
@@ -1,11 +1,11 @@
1
1
  import selectn from 'selectn';
2
- import { channelAPIRegistry } from "./channels";
3
- import { sessionAPIRegistry } from "./sessions";
4
- import { botAPIRegistry } from "./bots";
5
- import { messageAPIRegistry } from "./messages";
6
- import { agentAPIRegistry } from "./agents";
7
- import { contactAPIRegistry } from "./contacts";
8
- import { ModuleNames } from "../../../core/constants";
2
+ import { channelAPIRegistry } from './channels';
3
+ import { sessionAPIRegistry } from './sessions';
4
+ import { botAPIRegistry } from './bots';
5
+ import { messageAPIRegistry } from './messages';
6
+ import { agentAPIRegistry } from './agents';
7
+ import { contactAPIRegistry } from './contacts';
8
+ import { ModuleNames } from '../../../core/constants';
9
9
  const APIRegistry = {
10
10
  [ModuleNames.CHANNELS]: channelAPIRegistry,
11
11
  [ModuleNames.SESSIONS]: sessionAPIRegistry,
@@ -1,2 +1,2 @@
1
- import getRegistryConfig from "./getRegistryConfig";
1
+ import getRegistryConfig from './getRegistryConfig';
2
2
  export { getRegistryConfig };
@@ -1,4 +1,4 @@
1
- import constructSessionEndPoint from "../sessions/constructSessionEndPoint";
1
+ import constructSessionEndPoint from '../sessions/constructSessionEndPoint';
2
2
  export default function constructMessageEndPoint(extra) {
3
3
  return constructSessionEndPoint(extra);
4
4
  }
@@ -1,2 +1,2 @@
1
- import messageAPIRegistry from "./messageAPIRegistry";
1
+ import messageAPIRegistry from './messageAPIRegistry';
2
2
  export { messageAPIRegistry };
@@ -1,9 +1,9 @@
1
- import { HTTP_METHODS } from "../../../../core/constants";
2
- import { deleteMessageRequest, getFullContentRequest, getMessagesRequest, initiateSessionRequest, resendMessageRequest, sendAttachmentRequest, sendMessageRequest, searchMessagesRequest } from "../../../../domain/dto";
3
- import constructChannelEndPoint from "../channels/constructChannelEndPoint";
4
- import constructMessageEndPoint from "./constructMessageEndPoint";
5
- import createAPIRegistry from "../createAPIRegistry";
6
- import createBaseUrl from "../createBaseUrl";
1
+ import { HTTP_METHODS } from '../../../../core/constants';
2
+ import { deleteMessageRequest, getFullContentRequest, getMessagesRequest, initiateSessionRequest, resendMessageRequest, sendAttachmentRequest, sendMessageRequest, searchMessagesRequest, getMessageRequest } from '../../../../domain/dto';
3
+ import constructChannelEndPoint from '../channels/constructChannelEndPoint';
4
+ import constructMessageEndPoint from './constructMessageEndPoint';
5
+ import createAPIRegistry from '../createAPIRegistry';
6
+ import createBaseUrl from '../createBaseUrl';
7
7
  const SINGLE_SESSION_URL = '/:sessionId';
8
8
  const MESSAGES_URL = `${SINGLE_SESSION_URL}/messages`;
9
9
  const SINGLE_MESSAGE_URL = `${MESSAGES_URL}/:messageId`;
@@ -17,6 +17,10 @@ function getMessages() {
17
17
  return createAPIRegistry(constructMessageEndPoint(MESSAGES_URL), HTTP_METHODS.GET, getMessagesRequest());
18
18
  }
19
19
 
20
+ function getMessage() {
21
+ return createAPIRegistry(constructMessageEndPoint(SINGLE_MESSAGE_URL), HTTP_METHODS.GET, getMessageRequest());
22
+ }
23
+
20
24
  function getFullContent() {
21
25
  return createAPIRegistry(constructMessageEndPoint(FULL_CONTENT_URL), HTTP_METHODS.GET, getFullContentRequest());
22
26
  }
@@ -47,6 +51,7 @@ function searchMessages() {
47
51
 
48
52
  export default {
49
53
  getMessages,
54
+ getMessage,
50
55
  getFullContent,
51
56
  sendMessage,
52
57
  sendAttachment,
@@ -1,4 +1,4 @@
1
- import createBaseUrl from "../createBaseUrl";
1
+ import createBaseUrl from '../createBaseUrl';
2
2
  export default function constructSessionEndPoint(extra) {
3
3
  const base = '/sessions';
4
4
 
@@ -1,2 +1,2 @@
1
- import sessionAPIRegistry from "./sessionAPIRegistry";
1
+ import sessionAPIRegistry from './sessionAPIRegistry';
2
2
  export { sessionAPIRegistry };
@@ -1,11 +1,16 @@
1
- import { HTTP_METHODS } from "../../../../core/constants";
2
- import { updateSessionAssigneeRequest, getSessionAttachmentsRequest, getSessionLastMessagesRequest, getSessionRequest, getSessionsRequest, markSessionAsReadRequest, updateSessionStatusRequest } from "../../../../domain/dto";
3
- import createAPIRegistry from "../createAPIRegistry";
4
- import constructSessionEndPoint from "./constructSessionEndPoint";
1
+ import { HTTP_METHODS } from '../../../../core/constants';
2
+ import { updateSessionAssigneeRequest, getSessionAttachmentsRequest, getSessionLastMessagesRequest, getSessionRequest, getSessionsRequest, markSessionAsReadRequest, updateSessionStatusRequest, pickupSessionRequest } from '../../../../domain/dto';
3
+ import createAPIRegistry from '../createAPIRegistry';
4
+ import constructSessionEndPoint from './constructSessionEndPoint';
5
5
  const SINGLE_SESSION_URL = '/:sessionId';
6
6
  const SESSION_ATTACHMENTS_URL = `${SINGLE_SESSION_URL}/attachments`;
7
7
  const SESSION_LAST_MESSAGE = '/lastMessages';
8
8
  const MARK_AS_READ = `${SINGLE_SESSION_URL}/markAsRead`;
9
+ const PICKUP_SESSION = `${SINGLE_SESSION_URL}/pickup`;
10
+
11
+ function pickupSession() {
12
+ return createAPIRegistry(constructSessionEndPoint(PICKUP_SESSION), HTTP_METHODS.POST, pickupSessionRequest());
13
+ }
9
14
 
10
15
  function updateAssignee() {
11
16
  return createAPIRegistry(constructSessionEndPoint(SINGLE_SESSION_URL), HTTP_METHODS.PATCH, updateSessionAssigneeRequest());
@@ -24,7 +29,7 @@ function getSessionAttachments() {
24
29
  }
25
30
 
26
31
  function getSessionLastMessages() {
27
- return createAPIRegistry(constructSessionEndPoint(SESSION_LAST_MESSAGE), HTTP_METHODS.GET, getSessionLastMessagesRequest());
32
+ return createAPIRegistry(constructSessionEndPoint(SESSION_LAST_MESSAGE), HTTP_METHODS.POST, getSessionLastMessagesRequest());
28
33
  }
29
34
 
30
35
  function markSessionAsRead() {
@@ -42,5 +47,6 @@ export default {
42
47
  getSessionAttachments,
43
48
  getSessionLastMessages,
44
49
  markSessionAsRead,
45
- updateSessionStatus
50
+ updateSessionStatus,
51
+ pickupSession
46
52
  };
@@ -1,6 +1,16 @@
1
- import { updateSessionAssigneeRequest, getSessionsRequest, getSessionRequest, getSessionAttachmentsRequest, getSessionLastMessagesRequest, markSessionAsReadRequest, updateSessionStatusRequest } from "../../../domain/dto";
2
- import { ISessionRepository } from "../../../domain/interfaces/repositories";
1
+ import { updateSessionAssigneeRequest, getSessionsRequest, getSessionRequest, getSessionAttachmentsRequest, getSessionLastMessagesRequest, markSessionAsReadRequest, updateSessionStatusRequest, pickupSessionRequest } from '../../../domain/dto';
2
+ import { ISessionRepository } from '../../../domain/interfaces/repositories';
3
3
  export default class SessionAPI extends ISessionRepository {
4
+ async pickupSession() {
5
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : pickupSessionRequest();
6
+ const operation = 'pickupSession';
7
+ const httpRequest = await this.request({
8
+ request,
9
+ operation
10
+ });
11
+ return httpRequest;
12
+ }
13
+
4
14
  async updateAssignee() {
5
15
  let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : updateSessionAssigneeRequest();
6
16
  const operation = 'updateAssignee';
@@ -1,2 +1,2 @@
1
- import SessionAPI from "./SessionAPI";
1
+ import SessionAPI from './SessionAPI';
2
2
  export { SessionAPI };
@@ -1,2 +1,2 @@
1
- import configRegistry from "./configRegistry";
1
+ import configRegistry from './configRegistry';
2
2
  export { configRegistry };
@@ -1,7 +1,7 @@
1
- import { IAgentRepository } from "../../../domain/interfaces/repositories";
2
- import { AgentAdapter } from "../../adapters";
3
- import { AgentAPI } from "../../api";
4
- import { ResponseTypes } from "../../../core/constants";
1
+ import { IAgentRepository } from '../../../domain/interfaces/repositories';
2
+ import { AgentAdapter } from '../../adapters';
3
+ import { AgentAPI } from '../../api';
4
+ import { ResponseTypes } from '../../../core/constants';
5
5
  export default class AgentRepository extends IAgentRepository {
6
6
  constructor(_ref) {
7
7
  let {
@@ -1,2 +1,2 @@
1
- import AgentRepository from "./AgentRepository";
1
+ import AgentRepository from './AgentRepository';
2
2
  export { AgentRepository };
@@ -1,7 +1,7 @@
1
- import { IBotRepository } from "../../../domain/interfaces/repositories";
2
- import { BotAdapter } from "../../adapters";
3
- import { BotAPI } from "../../api";
4
- import { ResponseTypes } from "../../../core/constants";
1
+ import { IBotRepository } from '../../../domain/interfaces/repositories';
2
+ import { BotAdapter } from '../../adapters';
3
+ import { BotAPI } from '../../api';
4
+ import { ResponseTypes } from '../../../core/constants';
5
5
  export default class BotRepository extends IBotRepository {
6
6
  constructor(_ref) {
7
7
  let {
@@ -1,2 +1,2 @@
1
- import BotRepository from "./BotRepository";
1
+ import BotRepository from './BotRepository';
2
2
  export { BotRepository };
@@ -1,7 +1,7 @@
1
- import { IChannelAgentRepository } from "../../../domain/interfaces/repositories";
2
- import { ChannelAgentAdapter } from "../../adapters";
3
- import { ChannelAgentAPI } from "../../api";
4
- import { ResponseTypes } from "../../../core/constants";
1
+ import { IChannelAgentRepository } from '../../../domain/interfaces/repositories';
2
+ import { ChannelAgentAdapter } from '../../adapters';
3
+ import { ChannelAgentAPI } from '../../api';
4
+ import { ResponseTypes } from '../../../core/constants';
5
5
  export default class ChannelAgentRepository extends IChannelAgentRepository {
6
6
  constructor(_ref) {
7
7
  let {