@zohoim/client-sdk 1.0.0-poc49 → 1.0.0-poc50

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 (120) 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/contacts/ContactService.js +26 -0
  4. package/es/application/services/contacts/index.js +2 -0
  5. package/es/application/services/index.js +4 -1
  6. package/es/application/services/messages/MessageService.js +56 -0
  7. package/es/application/services/messages/index.js +2 -0
  8. package/es/application/services/sessions/SessionService.js +31 -1
  9. package/es/core/constants/ModuleNames.js +4 -1
  10. package/es/domain/dto/agents/getAgentsRequest.js +12 -0
  11. package/es/domain/dto/agents/index.js +1 -0
  12. package/es/domain/dto/bots/index.js +1 -2
  13. package/es/domain/dto/channels/agents/index.js +1 -2
  14. package/es/domain/dto/contacts/getContactsRequest.js +10 -0
  15. package/es/domain/dto/contacts/index.js +2 -0
  16. package/es/domain/dto/contacts/searchContactsRequest.js +11 -0
  17. package/es/domain/dto/index.js +4 -1
  18. package/es/domain/dto/messages/deleteMessageRequest.js +14 -0
  19. package/es/domain/dto/messages/getFullContentRequest.js +14 -0
  20. package/es/domain/dto/messages/getMessagesRequest.js +20 -0
  21. package/es/domain/dto/messages/getSearchedMessagesRequest.js +22 -0
  22. package/es/domain/dto/messages/index.js +8 -0
  23. package/es/domain/dto/messages/initiateSessionRequest.js +21 -0
  24. package/es/domain/dto/messages/resendMessageRequest.js +14 -0
  25. package/es/domain/dto/messages/sendAttachmentRequest.js +20 -0
  26. package/es/domain/dto/messages/sendMessageRequest.js +17 -0
  27. package/es/domain/dto/sessions/getSessionAttachmentsRequest.js +13 -0
  28. package/es/domain/dto/sessions/getSessionLastMessagesRequest.js +13 -0
  29. package/es/domain/dto/sessions/getSessionRequest.js +13 -0
  30. package/es/domain/dto/sessions/getSessionsRequest.js +26 -0
  31. package/es/domain/dto/sessions/index.js +7 -2
  32. package/es/domain/dto/sessions/markSessionAsReadRequest.js +13 -0
  33. package/es/domain/dto/sessions/updateSessionStatusRequest.js +17 -0
  34. package/es/domain/entities/Attachment/Attachment.js +22 -0
  35. package/es/domain/entities/Attachment/index.js +2 -0
  36. package/es/domain/entities/Contact/Contact.js +22 -0
  37. package/es/domain/entities/Contact/index.js +2 -0
  38. package/es/domain/entities/Message/Action.js +19 -0
  39. package/es/domain/entities/Message/ExternalInfo.js +17 -0
  40. package/es/domain/entities/Message/Info.js +21 -0
  41. package/es/domain/entities/Message/Location.js +18 -0
  42. package/es/domain/entities/Message/Message.js +45 -0
  43. package/es/domain/entities/Message/MessageWithSession.js +21 -0
  44. package/es/domain/entities/Message/index.js +6 -0
  45. package/es/domain/entities/index.js +4 -1
  46. package/es/domain/enum/actor/ActorType.js +2 -1
  47. package/es/domain/enum/index.js +2 -1
  48. package/es/domain/enum/message/MessageContentType.js +6 -0
  49. package/es/domain/enum/message/MessageDirection.js +6 -0
  50. package/es/domain/enum/message/MessageStatus.js +11 -0
  51. package/es/domain/enum/message/MessageType.js +11 -0
  52. package/es/domain/enum/message/index.js +5 -0
  53. package/es/domain/interfaces/repositories/agents/IAgentRepository.js +9 -0
  54. package/es/domain/interfaces/repositories/agents/index.js +2 -0
  55. package/es/domain/interfaces/repositories/contacts/IContactRepository.js +14 -0
  56. package/es/domain/interfaces/repositories/contacts/index.js +2 -0
  57. package/es/domain/interfaces/repositories/index.js +4 -1
  58. package/es/domain/interfaces/repositories/messages/IMessageRepository.js +43 -0
  59. package/es/domain/interfaces/repositories/messages/index.js +2 -0
  60. package/es/domain/interfaces/repositories/sessions/ISessionRepository.js +32 -2
  61. package/es/domain/schema/attachment/AttachmentSchema.js +27 -0
  62. package/es/domain/schema/attachment/index.js +2 -0
  63. package/es/domain/schema/contact/ContactSchema.js +27 -0
  64. package/es/domain/schema/contact/index.js +2 -0
  65. package/es/domain/schema/index.js +4 -1
  66. package/es/domain/schema/message/ActionSchema.js +15 -0
  67. package/es/domain/schema/message/ExternalInfoSchema.js +7 -0
  68. package/es/domain/schema/message/InfoSchema.js +21 -0
  69. package/es/domain/schema/message/LocationSchema.js +11 -0
  70. package/es/domain/schema/message/MessageSchema.js +112 -0
  71. package/es/domain/schema/message/MessageWithSessionSchema.js +10 -0
  72. package/es/domain/schema/message/index.js +7 -0
  73. package/es/frameworks/managers/ModuleFactory.js +27 -0
  74. package/es/frameworks/managers/ModuleManager.js +1 -1
  75. package/es/frameworks/sdk/IMSDK.js +15 -0
  76. package/es/frameworks/sdk/agents/AgentSDK.js +30 -0
  77. package/es/frameworks/sdk/agents/index.js +2 -0
  78. package/es/frameworks/sdk/contacts/ContactSDK.js +30 -0
  79. package/es/frameworks/sdk/contacts/index.js +2 -0
  80. package/es/frameworks/sdk/messages/MessageSDK.js +32 -0
  81. package/es/frameworks/sdk/messages/index.js +2 -0
  82. package/es/frameworks/sdk/sessions/SessionSDK.js +6 -2
  83. package/es/infrastructure/adapters/agents/agentAdapter.js +27 -0
  84. package/es/infrastructure/adapters/agents/index.js +2 -0
  85. package/es/infrastructure/adapters/attachments/AttachmentAdapter.js +24 -0
  86. package/es/infrastructure/adapters/attachments/index.js +2 -0
  87. package/es/infrastructure/adapters/contacts/contactAdapter.js +24 -0
  88. package/es/infrastructure/adapters/contacts/index.js +2 -0
  89. package/es/infrastructure/adapters/index.js +5 -1
  90. package/es/infrastructure/adapters/message/MessageAdapter.js +41 -0
  91. package/es/infrastructure/adapters/message/MessageWithSessionAdapter.js +23 -0
  92. package/es/infrastructure/adapters/message/index.js +2 -0
  93. package/es/infrastructure/api/agents/AgentAPI.js +21 -0
  94. package/es/infrastructure/api/agents/index.js +2 -0
  95. package/es/infrastructure/api/contacts/ContactAPI.js +31 -0
  96. package/es/infrastructure/api/contacts/index.js +2 -0
  97. package/es/infrastructure/api/index.js +4 -1
  98. package/es/infrastructure/api/messages/MessageAPI.js +91 -0
  99. package/es/infrastructure/api/messages/index.js +2 -0
  100. package/es/infrastructure/api/registry/agents/agentAPIRegistry.js +12 -0
  101. package/es/infrastructure/api/registry/agents/constructAgentEndPoint.js +10 -0
  102. package/es/infrastructure/api/registry/agents/index.js +2 -0
  103. package/es/infrastructure/api/registry/contacts/constructContactEndPoint.js +10 -0
  104. package/es/infrastructure/api/registry/contacts/contactAPIRegistry.js +17 -0
  105. package/es/infrastructure/api/registry/contacts/index.js +2 -0
  106. package/es/infrastructure/api/registry/getRegistryConfig.js +7 -1
  107. package/es/infrastructure/api/registry/messages/constructMessageEndPoint.js +10 -0
  108. package/es/infrastructure/api/registry/messages/index.js +2 -0
  109. package/es/infrastructure/api/registry/messages/messageAPIRegistry.js +57 -0
  110. package/es/infrastructure/api/registry/sessions/sessionAPIRegistry.js +37 -3
  111. package/es/infrastructure/api/sessions/SessionAPI.js +61 -1
  112. package/es/infrastructure/repositories/agents/AgentRepository.js +27 -0
  113. package/es/infrastructure/repositories/agents/index.js +2 -0
  114. package/es/infrastructure/repositories/contacts/ContactRepository.js +33 -0
  115. package/es/infrastructure/repositories/contacts/index.js +2 -0
  116. package/es/infrastructure/repositories/index.js +4 -1
  117. package/es/infrastructure/repositories/messages/MessageRepository.js +72 -0
  118. package/es/infrastructure/repositories/messages/index.js +2 -0
  119. package/es/infrastructure/repositories/sessions/SessionRepository.js +43 -3
  120. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import { ModuleNames } from "../../../core/constants";
2
- import { updateSessionAssigneeRequest } from "../../../domain/dto";
2
+ import { updateSessionAssigneeRequest, getSessionsRequest, getSessionRequest, getSessionAttachmentsRequest, getSessionLastMessagesRequest, markSessionAsReadRequest, updateSessionStatusRequest } from "../../../domain/dto";
3
3
  import BaseAPI from "../BaseAPI";
4
4
  export default class SessionAPI extends BaseAPI {
5
5
  constructor() {
@@ -18,4 +18,64 @@ export default class SessionAPI extends BaseAPI {
18
18
  return httpRequest;
19
19
  }
20
20
 
21
+ async getSessions() {
22
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getSessionsRequest();
23
+ const operation = 'getSessions';
24
+ const httpRequest = await this.request({
25
+ request,
26
+ operation
27
+ });
28
+ return httpRequest;
29
+ }
30
+
31
+ async getSession() {
32
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getSessionRequest();
33
+ const operation = 'getSession';
34
+ const httpRequest = await this.request({
35
+ request,
36
+ operation
37
+ });
38
+ return httpRequest;
39
+ }
40
+
41
+ async getSessionAttachments() {
42
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getSessionAttachmentsRequest();
43
+ const operation = 'getSessionAttachments';
44
+ const httpRequest = await this.request({
45
+ request,
46
+ operation
47
+ });
48
+ return httpRequest;
49
+ }
50
+
51
+ async getSessionLastMessages() {
52
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getSessionLastMessagesRequest();
53
+ const operation = 'getSessionLastMessages';
54
+ const httpRequest = await this.request({
55
+ request,
56
+ operation
57
+ });
58
+ return httpRequest;
59
+ }
60
+
61
+ async markSessionAsRead() {
62
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : markSessionAsReadRequest();
63
+ const operation = 'markSessionAsRead';
64
+ const httpRequest = await this.request({
65
+ request,
66
+ operation
67
+ });
68
+ return httpRequest;
69
+ }
70
+
71
+ async updateSessionStatus() {
72
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : updateSessionStatusRequest();
73
+ const operation = 'updateSessionStatus';
74
+ const httpRequest = await this.request({
75
+ request,
76
+ operation
77
+ });
78
+ return httpRequest;
79
+ }
80
+
21
81
  }
@@ -0,0 +1,27 @@
1
+ import { ResponseUtils } from "../../../core/utils";
2
+ import { IAgentRepository } from "../../../domain/interfaces/repositories";
3
+ import { AgentAdapter } from "../../adapters";
4
+ import { AgentAPI } from "../../api";
5
+ export default class AgentRepository extends IAgentRepository {
6
+ constructor(_ref) {
7
+ let {
8
+ agentAPI,
9
+ agentAdapter
10
+ } = _ref;
11
+ super();
12
+ this.agentAPI = agentAPI || new AgentAPI();
13
+ this.agentAdapter = agentAdapter || new AgentAdapter();
14
+ }
15
+
16
+ async getAgents(request) {
17
+ const response = await this.agentAPI.getAgents(request);
18
+ return ResponseUtils.adaptListResponse(response, this.agentAdapter.adapt);
19
+ }
20
+
21
+ toJSON() {
22
+ return {
23
+ getAgents: this.getAgents.bind(this)
24
+ };
25
+ }
26
+
27
+ }
@@ -0,0 +1,2 @@
1
+ import AgentRepository from "./AgentRepository";
2
+ export { AgentRepository };
@@ -0,0 +1,33 @@
1
+ import { ResponseUtils } from "../../../core/utils";
2
+ import { IContactRepository } from "../../../domain/interfaces/repositories";
3
+ import { ContactAdapter } from "../../adapters";
4
+ import { ContactAPI } from "../../api";
5
+ export default class ContactRepository extends IContactRepository {
6
+ constructor(_ref) {
7
+ let {
8
+ contactAPI,
9
+ contactAdapter
10
+ } = _ref;
11
+ super();
12
+ this.contactAPI = contactAPI || new ContactAPI();
13
+ this.contactAdapter = contactAdapter || new ContactAdapter();
14
+ }
15
+
16
+ async getContacts(request) {
17
+ const response = await this.contactAPI.getContacts(request);
18
+ return ResponseUtils.adaptListResponse(response, this.contactAdapter.adapt);
19
+ }
20
+
21
+ async searchContacts(request) {
22
+ const response = await this.contactAPI.searchContacts(request);
23
+ return ResponseUtils.adaptListResponse(response, this.contactAdapter.adapt);
24
+ }
25
+
26
+ toJSON() {
27
+ return {
28
+ getContacts: this.getContacts.bind(this),
29
+ searchContacts: this.searchContacts.bind(this)
30
+ };
31
+ }
32
+
33
+ }
@@ -0,0 +1,2 @@
1
+ import ContactRepository from "./ContactRepository";
2
+ export { ContactRepository };
@@ -1,3 +1,6 @@
1
1
  export * from "./channels";
2
2
  export * from "./sessions";
3
- export * from "./bots";
3
+ export * from "./bots";
4
+ export * from "./messages";
5
+ export * from "./agents";
6
+ export * from "./contacts";
@@ -0,0 +1,72 @@
1
+ import { MessageAdapter } from "../../adapters";
2
+ import { ResponseUtils } from "../../../core/utils";
3
+ import { MessageAPI } from "../../api";
4
+ import { IMessageRepository } from "../../../domain/interfaces/repositories/messages";
5
+ import MessageWithSessionAdapter from "../../adapters/message/MessageWithSessionAdapter";
6
+ export default class MessageRepository extends IMessageRepository {
7
+ constructor(_ref) {
8
+ let {
9
+ messageAPI,
10
+ messageAdapter,
11
+ messageWithSessionAdapter
12
+ } = _ref;
13
+ super();
14
+ this.messageAPI = messageAPI || new MessageAPI();
15
+ this.messageAdapter = messageAdapter || new MessageAdapter();
16
+ this.messageWithSessionAdapter = messageWithSessionAdapter || new MessageWithSessionAdapter();
17
+ }
18
+
19
+ async getMessages(request) {
20
+ const response = await this.messageAPI.getMessages(request);
21
+ return ResponseUtils.adaptListResponse(response, this.messageAdapter.adapt);
22
+ }
23
+
24
+ async getFullContent(request) {
25
+ const response = await this.messageAPI.getFullContent(request);
26
+ return response;
27
+ }
28
+
29
+ async sendMessage(request) {
30
+ const response = await this.messageAPI.sendMessage(request);
31
+ return ResponseUtils.adaptSingleResponse(response, this.messageAdapter.adapt);
32
+ }
33
+
34
+ async sendAttachment(request) {
35
+ const response = await this.messageAPI.sendAttachment(request);
36
+ return ResponseUtils.adaptSingleResponse(response, this.messageAdapter.adapt);
37
+ }
38
+
39
+ async resendMessage(request) {
40
+ const response = await this.messageAPI.resendMessage(request);
41
+ return ResponseUtils.adaptSingleResponse(response, this.messageAdapter.adapt);
42
+ }
43
+
44
+ async deleteMessage(request) {
45
+ const response = await this.messageAPI.deleteMessage(request);
46
+ return ResponseUtils.adaptSingleResponse(response, this.messageAdapter.adapt);
47
+ }
48
+
49
+ async initiateSession(request) {
50
+ const response = await this.messageAPI.initiateSession(request);
51
+ return ResponseUtils.adaptSingleResponse(response, this.messageAdapter.adapt);
52
+ }
53
+
54
+ async getSearchedMessages(request) {
55
+ const response = await this.messageAPI.getSearchedMessages(request);
56
+ return ResponseUtils.adaptListResponse(response, this.messageWithSessionAdapter.adapt);
57
+ }
58
+
59
+ toJSON() {
60
+ return {
61
+ getMessages: this.getMessages.bind(this),
62
+ getFullContent: this.getFullContent.bind(this),
63
+ sendMessage: this.sendMessage.bind(this),
64
+ sendAttachment: this.sendAttachment.bind(this),
65
+ resendMessage: this.resendMessage.bind(this),
66
+ deleteMessage: this.deleteMessage.bind(this),
67
+ initiateSession: this.initiateSession.bind(this),
68
+ getSearchedMessages: this.getSearchedMessages.bind(this)
69
+ };
70
+ }
71
+
72
+ }
@@ -0,0 +1,2 @@
1
+ import MessageRepository from "./MessageRepository";
2
+ export { MessageRepository };
@@ -1,16 +1,20 @@
1
+ import { AttachmentAdapter, MessageAdapter, SessionAdapter } from "../../adapters/index";
1
2
  import { ResponseUtils } from "../../../core/utils";
2
3
  import { ISessionRepository } from "../../../domain/interfaces/repositories";
3
- import { SessionAdapter } from "../../adapters";
4
4
  import { SessionAPI } from "../../api";
5
5
  export default class SessionRepository extends ISessionRepository {
6
6
  constructor(_ref) {
7
7
  let {
8
8
  sessionAPI,
9
- sessionAdapter
9
+ sessionAdapter,
10
+ attachmentAdapter,
11
+ messageAdapter
10
12
  } = _ref;
11
13
  super();
12
14
  this.sessionAPI = sessionAPI || new SessionAPI();
13
15
  this.sessionAdapter = sessionAdapter || new SessionAdapter();
16
+ this.attachmentAdapter = attachmentAdapter || new AttachmentAdapter();
17
+ this.messageAdapter = messageAdapter || new MessageAdapter();
14
18
  }
15
19
 
16
20
  async updateAssignee(request) {
@@ -18,9 +22,45 @@ export default class SessionRepository extends ISessionRepository {
18
22
  return ResponseUtils.adaptSingleResponse(response, this.sessionAdapter.adapt);
19
23
  }
20
24
 
25
+ async getSessions(request) {
26
+ const response = await this.sessionAPI.getSessions(request);
27
+ return ResponseUtils.adaptListResponse(response, this.sessionAdapter.adapt);
28
+ }
29
+
30
+ async getSession(request) {
31
+ const response = await this.sessionAPI.getSession(request);
32
+ return ResponseUtils.adaptSingleResponse(response, this.sessionAdapter.adapt);
33
+ }
34
+
35
+ async getSessionAttachments(request) {
36
+ const response = await this.sessionAPI.getSessionAttachments(request);
37
+ return ResponseUtils.adaptListResponse(response, this.attachmentAdapter.adapt);
38
+ }
39
+
40
+ async getSessionLastMessages(request) {
41
+ const response = await this.sessionAPI.getSessionLastMessages(request);
42
+ return ResponseUtils.adaptListResponse(response, this.messageAdapter.adapt);
43
+ }
44
+
45
+ async markSessionAsRead(request) {
46
+ const response = await this.sessionAPI.markSessionAsRead(request);
47
+ return ResponseUtils.adaptSingleResponse(response, this.sessionAdapter.adapt);
48
+ }
49
+
50
+ async updateSessionStatus(request) {
51
+ const response = await this.sessionAPI.updateSessionStatus(request);
52
+ return ResponseUtils.adaptSingleResponse(response, this.sessionAdapter.adapt);
53
+ }
54
+
21
55
  toJSON() {
22
56
  return {
23
- updateAssignee: this.updateAssignee.bind(this)
57
+ updateAssignee: this.updateAssignee.bind(this),
58
+ getSessions: this.getSessions.bind(this),
59
+ getSession: this.getSession.bind(this),
60
+ getSessionAttachments: this.getSessionAttachments.bind(this),
61
+ getSessionLastMessages: this.getSessionLastMessages.bind(this),
62
+ markSessionAsRead: this.markSessionAsRead.bind(this),
63
+ updateSessionStatus: this.updateSessionStatus.bind(this)
24
64
  };
25
65
  }
26
66
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zohoim/client-sdk",
3
- "version": "1.0.0-poc49",
3
+ "version": "1.0.0-poc50",
4
4
  "description": "To have the client sdk for the IM",
5
5
  "main": "es/index.js",
6
6
  "module": "es/index.js",