@zohoim/client-sdk 1.0.0-poc3 → 1.0.0-poc31

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 (100) hide show
  1. package/es/config/urls/base/index.js +11 -0
  2. package/es/config/urls/bots/bots-api-url.js +8 -0
  3. package/es/config/urls/bots/index.js +2 -0
  4. package/es/config/urls/channels/channel-agents-api-url.js +8 -0
  5. package/es/config/urls/channels/index.js +2 -0
  6. package/es/config/urls/index.js +16 -0
  7. package/es/config/urls/sessions/index.js +2 -0
  8. package/es/config/urls/sessions/sessions-api-url.js +9 -0
  9. package/es/core/constants/HttpMethods.js +8 -0
  10. package/es/core/constants/ModuleNames.js +6 -0
  11. package/es/core/constants/index.js +4 -0
  12. package/es/core/errors/AdapterError.js +7 -0
  13. package/es/core/errors/index.js +3 -0
  14. package/es/core/utils/index.js +2 -0
  15. package/es/core/utils/validateSchema.js +68 -0
  16. package/es/domain/entities/Actor/Actor.js +23 -0
  17. package/es/domain/entities/Actor/index.js +2 -2
  18. package/es/domain/entities/Agent/Agent.js +13 -102
  19. package/es/domain/entities/Agent/index.js +1 -1
  20. package/es/domain/entities/Bot/Bot.js +23 -0
  21. package/es/domain/entities/Bot/index.js +2 -0
  22. package/es/domain/entities/Session/Session.js +36 -0
  23. package/es/domain/entities/Session/index.js +2 -0
  24. package/es/domain/entities/index.js +4 -2
  25. package/es/domain/enum/actor/index.js +2 -0
  26. package/es/domain/enum/bot/BotServiceType.js +5 -0
  27. package/es/domain/enum/bot/index.js +2 -0
  28. package/es/domain/enum/index.js +4 -0
  29. package/es/domain/enum/integrationServices/IntegrationServices.js +11 -0
  30. package/es/domain/enum/integrationServices/index.js +2 -0
  31. package/es/domain/enum/session/SessionReplyStatus.js +20 -0
  32. package/es/domain/enum/session/SessionStatus.js +9 -0
  33. package/es/domain/enum/session/index.js +3 -0
  34. package/es/domain/interfaces/BaseAPI.js +74 -0
  35. package/es/domain/interfaces/IAdapter.js +6 -0
  36. package/es/domain/interfaces/bots/IBot.js +10 -0
  37. package/es/domain/interfaces/bots/index.js +2 -0
  38. package/es/domain/interfaces/channels/IChannelAgent.js +6 -2
  39. package/es/domain/interfaces/channels/index.js +1 -1
  40. package/es/domain/interfaces/index.js +3 -1
  41. package/es/domain/interfaces/sessions/ISession.js +10 -0
  42. package/es/domain/interfaces/sessions/index.js +2 -0
  43. package/es/domain/schema/actor/ActorSchema.js +33 -0
  44. package/es/domain/schema/actor/AgentSchema.js +29 -0
  45. package/es/domain/schema/actor/index.js +3 -0
  46. package/es/domain/schema/bot/BotSchema.js +33 -0
  47. package/es/domain/schema/bot/index.js +2 -0
  48. package/es/domain/schema/index.js +3 -0
  49. package/es/domain/schema/session/SessionSchema.js +86 -0
  50. package/es/domain/schema/session/index.js +2 -0
  51. package/es/domain/services/bots/BotService.js +33 -0
  52. package/es/domain/services/bots/index.js +2 -0
  53. package/es/domain/services/channels/ChannelAgentService.js +25 -6
  54. package/es/domain/services/channels/index.js +1 -1
  55. package/es/domain/services/index.js +3 -1
  56. package/es/domain/services/sessions/SessionService.js +33 -0
  57. package/es/domain/services/sessions/index.js +2 -0
  58. package/es/index.js +10 -1
  59. package/es/infrastructure/adapters/bots/BotAdapter.js +25 -0
  60. package/es/infrastructure/adapters/bots/index.js +2 -0
  61. package/es/infrastructure/adapters/channels/ChannelAgentAdapter.js +30 -0
  62. package/es/infrastructure/adapters/channels/index.js +2 -0
  63. package/es/infrastructure/adapters/index.js +3 -0
  64. package/es/infrastructure/adapters/sessions/SessionAdapter.js +37 -0
  65. package/es/infrastructure/adapters/sessions/index.js +2 -0
  66. package/es/infrastructure/api/bots/BotAPI.js +22 -0
  67. package/es/infrastructure/api/bots/index.js +2 -0
  68. package/es/infrastructure/api/channels/ChannelAgentAPI.js +22 -0
  69. package/es/infrastructure/api/channels/index.js +2 -0
  70. package/es/infrastructure/api/index.js +3 -0
  71. package/es/infrastructure/api/sessions/SessionAPI.js +22 -0
  72. package/es/infrastructure/api/sessions/index.js +2 -0
  73. package/es/infrastructure/interfaces/api/base/RequestBuilder.js +42 -0
  74. package/es/infrastructure/interfaces/api/base/index.js +2 -0
  75. package/es/infrastructure/interfaces/api/bots/getBotsRequest.js +18 -0
  76. package/es/infrastructure/interfaces/api/bots/index.js +2 -0
  77. package/es/infrastructure/interfaces/api/channels/agents/getChannelAgentsRequest.js +19 -0
  78. package/es/infrastructure/interfaces/api/channels/agents/index.js +2 -0
  79. package/es/infrastructure/interfaces/api/channels/index.js +1 -0
  80. package/es/infrastructure/interfaces/api/index.js +3 -0
  81. package/es/infrastructure/interfaces/api/sessions/index.js +2 -0
  82. package/es/infrastructure/interfaces/api/sessions/updateSessionAssigneeRequest.js +18 -0
  83. package/es/infrastructure/interfaces/index.js +1 -0
  84. package/es/infrastructure/managers/ModuleFactory.js +31 -0
  85. package/es/infrastructure/managers/ModuleManager.js +44 -0
  86. package/es/infrastructure/managers/index.js +2 -0
  87. package/es/infrastructure/sdk/IMSDK.js +47 -0
  88. package/es/infrastructure/sdk/bots/BotSDK.js +20 -0
  89. package/es/infrastructure/sdk/bots/index.js +2 -0
  90. package/es/infrastructure/sdk/channels/ChannelSDK.js +23 -0
  91. package/es/infrastructure/sdk/channels/index.js +2 -0
  92. package/es/infrastructure/sdk/config/configRegistry.js +27 -0
  93. package/es/infrastructure/sdk/config/index.js +2 -0
  94. package/es/infrastructure/sdk/index.js +2 -0
  95. package/es/infrastructure/sdk/sessions/SessionSDK.js +20 -0
  96. package/es/infrastructure/sdk/sessions/index.js +2 -0
  97. package/package.json +1 -7
  98. package/es/domain/index.js +0 -3
  99. /package/es/{domain → core}/errors/ValidationError.js +0 -0
  100. /package/es/domain/{entities/Actor → enum/actor}/ActorType.js +0 -0
@@ -0,0 +1,18 @@
1
+ import { RequestBuilder } from "../base";
2
+
3
+ function updateSessionAssigneeRequest() {
4
+ let {
5
+ params = {},
6
+ body = {}
7
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
8
+ return new RequestBuilder().withParams({
9
+ channelId: null,
10
+ ...params
11
+ }).withBody({
12
+ agentId: null,
13
+ botId: null,
14
+ ...body
15
+ }).build();
16
+ }
17
+
18
+ export default updateSessionAssigneeRequest;
@@ -0,0 +1 @@
1
+ export * from "./api";
@@ -0,0 +1,31 @@
1
+ import { ModuleNames } from "../../core/constants";
2
+ import { BotSDK } from "../sdk/bots";
3
+ import { ChannelSDK } from "../sdk/channels";
4
+ import { SessionSDK } from "../sdk/sessions";
5
+ const ModuleFactory = {
6
+ [ModuleNames.CHANNELS]: _ref => {
7
+ let {
8
+ config
9
+ } = _ref;
10
+ return new ChannelSDK({
11
+ config
12
+ }).toJSON();
13
+ },
14
+ [ModuleNames.SESSIONS]: _ref2 => {
15
+ let {
16
+ config
17
+ } = _ref2;
18
+ return new SessionSDK({
19
+ config
20
+ }).toJSON();
21
+ },
22
+ [ModuleNames.BOTS]: _ref3 => {
23
+ let {
24
+ config
25
+ } = _ref3;
26
+ return new BotSDK({
27
+ config
28
+ }).toJSON();
29
+ }
30
+ };
31
+ export default ModuleFactory;
@@ -0,0 +1,44 @@
1
+ import { ModuleNames } from "../../core/constants";
2
+ import ModuleFactory from "./ModuleFactory";
3
+ export default class ModuleManager {
4
+ constructor() {
5
+ this._modules = new Map();
6
+ this.supportedModules = [ModuleNames.CHANNELS, ModuleNames.SESSIONS, ModuleNames.BOTS];
7
+ }
8
+
9
+ initialize(_ref) {
10
+ let {
11
+ apiConfig
12
+ } = _ref;
13
+ this.supportedModules.forEach(moduleName => {
14
+ const moduleConfig = apiConfig ? apiConfig[moduleName] || {} : {};
15
+ this.initializeModule({
16
+ moduleName,
17
+ config: moduleConfig
18
+ });
19
+ });
20
+ }
21
+
22
+ initializeModule(_ref2) {
23
+ let {
24
+ moduleName,
25
+ config
26
+ } = _ref2;
27
+ const createModule = ModuleFactory[moduleName];
28
+
29
+ if (createModule) {
30
+ this._modules.set(moduleName, createModule({
31
+ config
32
+ }));
33
+ }
34
+ }
35
+
36
+ getModule(moduleName) {
37
+ return this._modules.get(moduleName);
38
+ }
39
+
40
+ hasModule(moduleName) {
41
+ return this._modules.has(moduleName);
42
+ }
43
+
44
+ }
@@ -0,0 +1,2 @@
1
+ import ModuleManager from "./ModuleManager";
2
+ export { ModuleManager };
@@ -0,0 +1,47 @@
1
+ import { ModuleNames } from "../../core/constants";
2
+ import { ModuleManager } from "../managers";
3
+ import { configRegistry } from "./config";
4
+ export default class IMSDK {
5
+ constructor(_ref) {
6
+ let {
7
+ baseURL,
8
+ apiConfig = {},
9
+ httpClient
10
+ } = _ref;
11
+ configRegistry.setConfig({
12
+ baseURL,
13
+ httpClient
14
+ });
15
+ this._moduleManager = new ModuleManager();
16
+
17
+ this._moduleManager.initialize({
18
+ apiConfig
19
+ });
20
+ }
21
+
22
+ get channels() {
23
+ return this._moduleManager.getModule(ModuleNames.CHANNELS);
24
+ }
25
+
26
+ get sessions() {
27
+ return this._moduleManager.getModule(ModuleNames.SESSIONS);
28
+ }
29
+
30
+ get bots() {
31
+ return this._moduleManager.getModule(ModuleNames.BOTS);
32
+ }
33
+
34
+ hasModule(moduleName) {
35
+ return this._moduleManager.hasModule(moduleName);
36
+ }
37
+
38
+ toJSON() {
39
+ return {
40
+ channels: this.channels,
41
+ sessions: this.sessions,
42
+ bots: this.bots,
43
+ hasModule: this.hasModule.bind(this)
44
+ };
45
+ }
46
+
47
+ }
@@ -0,0 +1,20 @@
1
+ import { BotService } from "../../../domain/services";
2
+
3
+ class BotSDK extends BotService {
4
+ constructor(_ref) {
5
+ let {
6
+ config
7
+ } = _ref;
8
+ const {
9
+ botAPI,
10
+ botAdapter
11
+ } = config;
12
+ super({
13
+ botAPI,
14
+ botAdapter
15
+ });
16
+ }
17
+
18
+ }
19
+
20
+ export default BotSDK;
@@ -0,0 +1,2 @@
1
+ import BotSDK from "./BotSDK";
2
+ export { BotSDK };
@@ -0,0 +1,23 @@
1
+ import { ChannelAgentService } from "../../../domain/services";
2
+ export default class ChannelSDK {
3
+ constructor(_ref) {
4
+ let {
5
+ config
6
+ } = _ref;
7
+ const {
8
+ channelAgentAPI,
9
+ channelAgentAdapter
10
+ } = config;
11
+ this.agents = new ChannelAgentService({
12
+ channelAgentAPI,
13
+ channelAgentAdapter
14
+ }).toJSON();
15
+ }
16
+
17
+ toJSON() {
18
+ return {
19
+ agents: this.agents
20
+ };
21
+ }
22
+
23
+ }
@@ -0,0 +1,2 @@
1
+ import ChannelSDK from "./ChannelSDK";
2
+ export { ChannelSDK };
@@ -0,0 +1,27 @@
1
+ class ConfigRegistry {
2
+ constructor() {
3
+ this.baseURL = null;
4
+ this.httpClient = null;
5
+ }
6
+
7
+ setConfig(_ref) {
8
+ let {
9
+ baseURL,
10
+ httpClient
11
+ } = _ref;
12
+ this.baseURL = baseURL;
13
+ this.httpClient = httpClient;
14
+ }
15
+
16
+ getBaseURL() {
17
+ return this.baseURL;
18
+ }
19
+
20
+ getHttpClient() {
21
+ return this.httpClient;
22
+ }
23
+
24
+ }
25
+
26
+ const configRegistry = new ConfigRegistry();
27
+ export default configRegistry;
@@ -0,0 +1,2 @@
1
+ import configRegistry from "./configRegistry";
2
+ export { configRegistry };
@@ -0,0 +1,2 @@
1
+ import IMSDK from "./IMSDK";
2
+ export { IMSDK };
@@ -0,0 +1,20 @@
1
+ import { SessionService } from "../../../domain/services";
2
+
3
+ class SessionSDK extends SessionService {
4
+ constructor(_ref) {
5
+ let {
6
+ config
7
+ } = _ref;
8
+ const {
9
+ sessionAPI,
10
+ sessionAdapter
11
+ } = config;
12
+ super({
13
+ sessionAPI,
14
+ sessionAdapter
15
+ });
16
+ }
17
+
18
+ }
19
+
20
+ export default SessionSDK;
@@ -0,0 +1,2 @@
1
+ import SessionSDK from "./SessionSDK";
2
+ export { SessionSDK };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zohoim/client-sdk",
3
- "version": "1.0.0-poc3",
3
+ "version": "1.0.0-poc31",
4
4
  "description": "To have the client sdk for the IM",
5
5
  "main": "es/index.js",
6
6
  "module": "es/index.js",
@@ -10,12 +10,6 @@
10
10
  "publishConfig": {
11
11
  "access": "public"
12
12
  },
13
- "exports": {
14
- ".": "./es/index.js",
15
- "./interfaces": "./es/domain/interfaces/index.js",
16
- "./entities": "./es/domain/entities/index.js",
17
- "./services": "./es/domain/services/index.js"
18
- },
19
13
  "files": [
20
14
  "es",
21
15
  "!**/__tests__"
@@ -1,3 +0,0 @@
1
- // export * from './entities';
2
- // export * from './interfaces';
3
- // export * from './services';
File without changes