@zohoim/client-sdk 1.1.0-attachmentsList → 1.1.0-calls1

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 (143) hide show
  1. package/es/application/services/calls/CallService.js +36 -0
  2. package/es/application/services/calls/index.js +1 -0
  3. package/es/application/services/channels/ChannelService.js +6 -1
  4. package/es/application/services/index.js +5 -1
  5. package/es/application/services/integrationServices/IntegrationService.js +21 -0
  6. package/es/application/services/integrationServices/index.js +2 -0
  7. package/es/application/services/sessions/SessionService.js +6 -1
  8. package/es/application/services/userPreferences/UserPreferenceService.js +26 -0
  9. package/es/application/services/userPreferences/index.js +2 -0
  10. package/es/application/services/whatsAppPricing/WhatsAppPricingService.js +21 -0
  11. package/es/application/services/whatsAppPricing/index.js +2 -0
  12. package/es/core/constants/ModuleNames.js +5 -1
  13. package/es/core/constants/ModuleTypes.js +5 -0
  14. package/es/core/constants/index.js +2 -1
  15. package/es/core/utils/validateSchema.js +25 -0
  16. package/es/domain/dto/calls/getCallRequest.js +14 -0
  17. package/es/domain/dto/calls/getCallsRequest.js +20 -0
  18. package/es/domain/dto/calls/index.js +4 -0
  19. package/es/domain/dto/calls/initiateCallRequest.js +15 -0
  20. package/es/domain/dto/calls/updateCallStatusRequest.js +15 -0
  21. package/es/domain/dto/channels/getChannelRequest.js +13 -0
  22. package/es/domain/dto/channels/getChannelsRequest.js +3 -1
  23. package/es/domain/dto/channels/index.js +2 -1
  24. package/es/domain/dto/index.js +5 -1
  25. package/es/domain/dto/integrationServices/getIntegrationsRequest.js +7 -0
  26. package/es/domain/dto/integrationServices/index.js +1 -0
  27. package/es/domain/dto/sessions/getSessionAttachmentsRequest.js +5 -2
  28. package/es/domain/dto/sessions/getSessionMetricsRequest.js +16 -0
  29. package/es/domain/dto/sessions/index.js +2 -1
  30. package/es/domain/dto/userPreferences/getPreferencesRequest.js +7 -0
  31. package/es/domain/dto/userPreferences/index.js +2 -0
  32. package/es/domain/dto/userPreferences/updatePreferencesRequest.js +9 -0
  33. package/es/domain/dto/whatsAppPricing/calculateWhatsAppPricingRequest.js +14 -0
  34. package/es/domain/dto/whatsAppPricing/index.js +1 -0
  35. package/es/domain/entities/Actor/Actor.js +4 -0
  36. package/es/domain/entities/Call/Call.js +47 -0
  37. package/es/domain/entities/Call/index.js +1 -0
  38. package/es/domain/entities/Channel/Channel.js +22 -4
  39. package/es/domain/entities/IntegrationService/IntegrationService.js +8 -1
  40. package/es/domain/entities/Session/SessionMetrics.js +21 -0
  41. package/es/domain/entities/Session/index.js +2 -1
  42. package/es/domain/entities/UserPreference/UserPreference.js +26 -0
  43. package/es/domain/entities/UserPreference/index.js +2 -0
  44. package/es/domain/entities/WhatsAppPricing/WhatsAppPricing.js +25 -0
  45. package/es/domain/entities/WhatsAppPricing/WhatsAppPricingCategory.js +22 -0
  46. package/es/domain/entities/WhatsAppPricing/index.js +3 -0
  47. package/es/domain/entities/index.js +4 -1
  48. package/es/domain/enum/call/CallStatus.js +8 -0
  49. package/es/domain/enum/call/index.js +1 -0
  50. package/es/domain/enum/index.js +3 -1
  51. package/es/domain/enum/session/AssigneeFilter.js +6 -0
  52. package/es/domain/enum/session/SessionStatus.js +2 -1
  53. package/es/domain/enum/session/index.js +2 -1
  54. package/es/domain/enum/userPreference/CollapseSidePanel.js +5 -0
  55. package/es/domain/enum/userPreference/index.js +2 -0
  56. package/es/domain/interfaces/repositories/calls/ICallRepository.js +32 -0
  57. package/es/domain/interfaces/repositories/calls/index.js +1 -0
  58. package/es/domain/interfaces/repositories/channels/IChannelRepository.js +7 -1
  59. package/es/domain/interfaces/repositories/index.js +5 -1
  60. package/es/domain/interfaces/repositories/integrationServices/IIntegrationServiceRepository.js +17 -0
  61. package/es/domain/interfaces/repositories/integrationServices/index.js +2 -0
  62. package/es/domain/interfaces/repositories/sessions/ISessionRepository.js +6 -1
  63. package/es/domain/interfaces/repositories/userPreferences/IUserPreferenceRepository.js +23 -0
  64. package/es/domain/interfaces/repositories/userPreferences/index.js +2 -0
  65. package/es/domain/interfaces/repositories/whatsAppPricing/IWhatsAppPricingRepository.js +18 -0
  66. package/es/domain/interfaces/repositories/whatsAppPricing/index.js +2 -0
  67. package/es/domain/schema/call/CallSchema.js +63 -0
  68. package/es/domain/schema/call/index.js +1 -0
  69. package/es/domain/schema/channel/ChannelSchema.js +39 -5
  70. package/es/domain/schema/index.js +4 -1
  71. package/es/domain/schema/integrationService/IntegrationServiceSchema.js +12 -0
  72. package/es/domain/schema/session/SessionMetrics/AssigneeSchema.js +20 -0
  73. package/es/domain/schema/session/SessionMetrics/SessionMetricsForAssigneeSchema.js +32 -0
  74. package/es/domain/schema/session/SessionMetrics/index.js +2 -0
  75. package/es/domain/schema/session/SessionMetricsSchema.js +9 -0
  76. package/es/domain/schema/session/index.js +2 -1
  77. package/es/domain/schema/userPreference/UserPreferenceSchema.js +9 -0
  78. package/es/domain/schema/userPreference/index.js +2 -0
  79. package/es/domain/schema/whatsAppPricing/WhatsAppPricingCategorySchema.js +11 -0
  80. package/es/domain/schema/whatsAppPricing/WhatsAppPricingSchema.js +21 -0
  81. package/es/domain/schema/whatsAppPricing/index.js +3 -0
  82. package/es/frameworks/managers/ModuleFactory.js +81 -23
  83. package/es/frameworks/managers/ModuleManager.js +25 -2
  84. package/es/frameworks/sdk/IMSDK.js +33 -11
  85. package/es/frameworks/sdk/calls/CallSDK.js +27 -0
  86. package/es/frameworks/sdk/calls/index.js +1 -0
  87. package/es/frameworks/sdk/integrationServices/IntegrationServiceSDK.js +30 -0
  88. package/es/frameworks/sdk/integrationServices/index.js +2 -0
  89. package/es/frameworks/sdk/userPreferences/UserPreferencesSDK.js +30 -0
  90. package/es/frameworks/sdk/userPreferences/index.js +2 -0
  91. package/es/frameworks/sdk/whatsAppPricing/WhatsAppPricingSDK.js +28 -0
  92. package/es/frameworks/sdk/whatsAppPricing/index.js +2 -0
  93. package/es/infrastructure/adapters/calls/CallAdapter.js +31 -0
  94. package/es/infrastructure/adapters/calls/index.js +1 -0
  95. package/es/infrastructure/adapters/channels/ChannelAdapter.js +16 -2
  96. package/es/infrastructure/adapters/index.js +5 -1
  97. package/es/infrastructure/adapters/integrationServices/IntegrationServiceAdapter.js +25 -0
  98. package/es/infrastructure/adapters/integrationServices/index.js +2 -0
  99. package/es/infrastructure/adapters/sessions/SessionMetricsAdapter.js +19 -0
  100. package/es/infrastructure/adapters/sessions/index.js +2 -1
  101. package/es/infrastructure/adapters/userPreferences/UserPreferenceAdapter.js +19 -0
  102. package/es/infrastructure/adapters/userPreferences/index.js +2 -0
  103. package/es/infrastructure/adapters/whatsAppPricing/WhatsAppPricingAdapter.js +22 -0
  104. package/es/infrastructure/adapters/whatsAppPricing/index.js +2 -0
  105. package/es/infrastructure/api/BaseAPI.js +5 -4
  106. package/es/infrastructure/api/calls/CallAPI.js +44 -0
  107. package/es/infrastructure/api/calls/index.js +1 -0
  108. package/es/infrastructure/api/index.js +5 -1
  109. package/es/infrastructure/api/integrationServices/IntegrationServiceAPI.js +14 -0
  110. package/es/infrastructure/api/integrationServices/index.js +2 -0
  111. package/es/infrastructure/api/registry/calls/callAPIRegistry.js +29 -0
  112. package/es/infrastructure/api/registry/calls/constructCallEndPoint.js +10 -0
  113. package/es/infrastructure/api/registry/calls/index.js +1 -0
  114. package/es/infrastructure/api/registry/createPublicBaseUrl.js +4 -0
  115. package/es/infrastructure/api/registry/getRegistryConfig.js +9 -1
  116. package/es/infrastructure/api/registry/integrationServices/constructIntegrationServiceEndPoint.js +10 -0
  117. package/es/infrastructure/api/registry/integrationServices/index.js +2 -0
  118. package/es/infrastructure/api/registry/integrationServices/integrationServiceAPIRegistry.js +12 -0
  119. package/es/infrastructure/api/registry/sessions/sessionAPIRegistry.js +8 -2
  120. package/es/infrastructure/api/registry/userPreferences/constructUserPreferencesEndPoint.js +10 -0
  121. package/es/infrastructure/api/registry/userPreferences/index.js +2 -0
  122. package/es/infrastructure/api/registry/userPreferences/userPreferenceAPIRegistry.js +17 -0
  123. package/es/infrastructure/api/registry/whatsAppPricing/constructWhatsAppPricingEndPoint.js +10 -0
  124. package/es/infrastructure/api/registry/whatsAppPricing/index.js +2 -0
  125. package/es/infrastructure/api/registry/whatsAppPricing/whatsAppPricingAPIRegistry.js +13 -0
  126. package/es/infrastructure/api/sessions/SessionAPI.js +11 -1
  127. package/es/infrastructure/api/userPreferences/UserPreferenceAPI.js +24 -0
  128. package/es/infrastructure/api/userPreferences/index.js +2 -0
  129. package/es/infrastructure/api/whatsAppPricing/WhatsAppPricingAPI.js +14 -0
  130. package/es/infrastructure/api/whatsAppPricing/index.js +2 -0
  131. package/es/infrastructure/config/configRegistry.js +8 -1
  132. package/es/infrastructure/repositories/calls/CallRepository.js +73 -0
  133. package/es/infrastructure/repositories/calls/index.js +1 -0
  134. package/es/infrastructure/repositories/channels/ChannelRepository.js +10 -1
  135. package/es/infrastructure/repositories/index.js +5 -1
  136. package/es/infrastructure/repositories/integrationServices/IntegrationServiceRepository.js +49 -0
  137. package/es/infrastructure/repositories/integrationServices/index.js +2 -0
  138. package/es/infrastructure/repositories/sessions/SessionRepository.js +14 -3
  139. package/es/infrastructure/repositories/userPreferences/UserPreferenceRepository.js +58 -0
  140. package/es/infrastructure/repositories/userPreferences/index.js +2 -0
  141. package/es/infrastructure/repositories/whatsAppPricing/WhatsAppPricingRepository.js +49 -0
  142. package/es/infrastructure/repositories/whatsAppPricing/index.js +2 -0
  143. package/package.json +2 -2
@@ -1,4 +1,4 @@
1
- import { ModuleNames } from '../../core/constants';
1
+ import { ModuleNames, ModuleTypes } from '../../core/constants';
2
2
  import { BotSDK } from '../sdk/bots';
3
3
  import { ChannelSDK } from '../sdk/channels';
4
4
  import { SessionSDK } from '../sdk/sessions';
@@ -7,68 +7,126 @@ import { AgentSDK } from '../sdk/agents';
7
7
  import { ContactSDK } from '../sdk/contacts';
8
8
  import { CannedMessageSDK } from '../sdk/cannedMessages';
9
9
  import { TemplateMessageSDK } from '../sdk/templateMessages';
10
+ import { WhatsAppPricingSDK } from '../sdk/whatsAppPricing';
11
+ import { IntegrationServiceSDK } from '../sdk/integrationServices';
12
+ import { UserPreferencesSDK } from '../sdk/userPreferences';
13
+ import { CallSDK } from '../sdk/calls';
10
14
  const ModuleFactory = {
11
15
  [ModuleNames.CHANNELS]: _ref => {
12
16
  let {
13
17
  config
14
18
  } = _ref;
15
- return new ChannelSDK({
16
- config
17
- }).toJSON();
19
+ return {
20
+ [ModuleTypes.AUTHENTICATED]: new ChannelSDK({
21
+ config
22
+ }).toJSON()
23
+ };
18
24
  },
19
25
  [ModuleNames.SESSIONS]: _ref2 => {
20
26
  let {
21
27
  config
22
28
  } = _ref2;
23
- return new SessionSDK({
24
- config
25
- }).toJSON();
29
+ return {
30
+ [ModuleTypes.AUTHENTICATED]: new SessionSDK({
31
+ config
32
+ }).toJSON()
33
+ };
26
34
  },
27
35
  [ModuleNames.BOTS]: _ref3 => {
28
36
  let {
29
37
  config
30
38
  } = _ref3;
31
- return new BotSDK({
32
- config
33
- }).toJSON();
39
+ return {
40
+ [ModuleTypes.AUTHENTICATED]: new BotSDK({
41
+ config
42
+ }).toJSON()
43
+ };
34
44
  },
35
45
  [ModuleNames.AGENTS]: _ref4 => {
36
46
  let {
37
47
  config
38
48
  } = _ref4;
39
- return new AgentSDK({
40
- config
41
- }).toJSON();
49
+ return {
50
+ [ModuleTypes.AUTHENTICATED]: new AgentSDK({
51
+ config
52
+ }).toJSON()
53
+ };
42
54
  },
43
55
  [ModuleNames.CONTACTS]: _ref5 => {
44
56
  let {
45
57
  config
46
58
  } = _ref5;
47
- return new ContactSDK({
48
- config
49
- }).toJSON();
59
+ return {
60
+ [ModuleTypes.AUTHENTICATED]: new ContactSDK({
61
+ config
62
+ }).toJSON()
63
+ };
50
64
  },
51
65
  [ModuleNames.MESSAGES]: _ref6 => {
52
66
  let {
53
67
  config
54
68
  } = _ref6;
55
- return new MessageSDK({
56
- config
57
- }).toJSON();
69
+ return {
70
+ [ModuleTypes.AUTHENTICATED]: new MessageSDK({
71
+ config
72
+ }).toJSON()
73
+ };
58
74
  },
59
75
  [ModuleNames.CANNED_MESSAGES]: _ref7 => {
60
76
  let {
61
77
  config
62
78
  } = _ref7;
63
- return new CannedMessageSDK({
64
- config
65
- }).toJSON();
79
+ return {
80
+ [ModuleTypes.AUTHENTICATED]: new CannedMessageSDK({
81
+ config
82
+ }).toJSON()
83
+ };
66
84
  },
67
85
  [ModuleNames.TEMPLATE_MESSAGES]: _ref8 => {
68
86
  let {
69
87
  config
70
88
  } = _ref8;
71
- return new TemplateMessageSDK({
89
+ return {
90
+ [ModuleTypes.AUTHENTICATED]: new TemplateMessageSDK({
91
+ config
92
+ }).toJSON()
93
+ };
94
+ },
95
+ [ModuleNames.INTEGRATION_SERVICES]: _ref9 => {
96
+ let {
97
+ config
98
+ } = _ref9;
99
+ return {
100
+ [ModuleTypes.AUTHENTICATED]: new IntegrationServiceSDK({
101
+ config
102
+ }).toJSON()
103
+ };
104
+ },
105
+ [ModuleNames.USER_PREFERENCES]: _ref10 => {
106
+ let {
107
+ config
108
+ } = _ref10;
109
+ return {
110
+ [ModuleTypes.AUTHENTICATED]: new UserPreferencesSDK({
111
+ config
112
+ }).toJSON()
113
+ };
114
+ },
115
+ [ModuleNames.WHATSAPP_PRICING]: _ref11 => {
116
+ let {
117
+ config
118
+ } = _ref11;
119
+ return {
120
+ [ModuleTypes.PUBLIC]: new WhatsAppPricingSDK({
121
+ config
122
+ }).toJSON()
123
+ };
124
+ },
125
+ [ModuleNames.CALLS]: _ref12 => {
126
+ let {
127
+ config
128
+ } = _ref12;
129
+ return new CallSDK({
72
130
  config
73
131
  }).toJSON();
74
132
  }
@@ -1,9 +1,9 @@
1
- import { ModuleNames } from '../../core/constants';
1
+ import { ModuleNames, ModuleTypes } from '../../core/constants';
2
2
  import ModuleFactory from './ModuleFactory';
3
3
  export default class ModuleManager {
4
4
  constructor() {
5
5
  this._modules = new Map();
6
- this.supportedModules = [ModuleNames.CHANNELS, ModuleNames.SESSIONS, ModuleNames.BOTS, ModuleNames.MESSAGES, ModuleNames.AGENTS, ModuleNames.CONTACTS, ModuleNames.CANNED_MESSAGES, ModuleNames.TEMPLATE_MESSAGES];
6
+ this.supportedModules = [ModuleNames.CHANNELS, ModuleNames.SESSIONS, ModuleNames.BOTS, ModuleNames.MESSAGES, ModuleNames.AGENTS, ModuleNames.CONTACTS, ModuleNames.CANNED_MESSAGES, ModuleNames.TEMPLATE_MESSAGES, ModuleNames.INTEGRATION_SERVICES, ModuleNames.USER_PREFERENCES, ModuleNames.WHATSAPP_PRICING, ModuleNames.CALLS];
7
7
  }
8
8
 
9
9
  initialize(_ref) {
@@ -37,6 +37,29 @@ export default class ModuleManager {
37
37
  return this._modules.get(moduleName);
38
38
  }
39
39
 
40
+ getModuleByType(moduleName) {
41
+ let type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ModuleTypes.AUTHENTICATED;
42
+ const moduleEntry = this.getModule(moduleName);
43
+
44
+ if (!moduleEntry) {
45
+ return undefined;
46
+ }
47
+
48
+ return moduleEntry[type];
49
+ }
50
+
51
+ getModulesByType(type) {
52
+ const result = {};
53
+
54
+ this._modules.forEach((moduleEntry, moduleName) => {
55
+ if (moduleEntry[type]) {
56
+ result[moduleName] = moduleEntry[type];
57
+ }
58
+ });
59
+
60
+ return result;
61
+ }
62
+
40
63
  hasModule(moduleName) {
41
64
  return this._modules.has(moduleName);
42
65
  }
@@ -1,4 +1,4 @@
1
- import { ModuleNames } from '../../core/constants';
1
+ import { ModuleNames, ModuleTypes } from '../../core/constants';
2
2
  import configRegistry from '../../infrastructure/config/configRegistry';
3
3
  import { ModuleManager } from '../managers';
4
4
  export default class IMSDK {
@@ -6,11 +6,13 @@ export default class IMSDK {
6
6
  let {
7
7
  baseURL,
8
8
  apiConfig = {},
9
- httpClient
9
+ httpClient,
10
+ publicHttpClient
10
11
  } = _ref;
11
12
  configRegistry.setConfig({
12
13
  baseURL,
13
- httpClient
14
+ httpClient,
15
+ publicHttpClient
14
16
  });
15
17
  this._moduleManager = new ModuleManager();
16
18
 
@@ -20,35 +22,51 @@ export default class IMSDK {
20
22
  }
21
23
 
22
24
  get channels() {
23
- return this._moduleManager.getModule(ModuleNames.CHANNELS);
25
+ return this._moduleManager.getModuleByType(ModuleNames.CHANNELS);
24
26
  }
25
27
 
26
28
  get sessions() {
27
- return this._moduleManager.getModule(ModuleNames.SESSIONS);
29
+ return this._moduleManager.getModuleByType(ModuleNames.SESSIONS);
28
30
  }
29
31
 
30
32
  get bots() {
31
- return this._moduleManager.getModule(ModuleNames.BOTS);
33
+ return this._moduleManager.getModuleByType(ModuleNames.BOTS);
32
34
  }
33
35
 
34
36
  get messages() {
35
- return this._moduleManager.getModule(ModuleNames.MESSAGES);
37
+ return this._moduleManager.getModuleByType(ModuleNames.MESSAGES);
36
38
  }
37
39
 
38
40
  get agents() {
39
- return this._moduleManager.getModule(ModuleNames.AGENTS);
41
+ return this._moduleManager.getModuleByType(ModuleNames.AGENTS);
40
42
  }
41
43
 
42
44
  get contacts() {
43
- return this._moduleManager.getModule(ModuleNames.CONTACTS);
45
+ return this._moduleManager.getModuleByType(ModuleNames.CONTACTS);
44
46
  }
45
47
 
46
48
  get cannedMessages() {
47
- return this._moduleManager.getModule(ModuleNames.CANNED_MESSAGES);
49
+ return this._moduleManager.getModuleByType(ModuleNames.CANNED_MESSAGES);
48
50
  }
49
51
 
50
52
  get templateMessages() {
51
- return this._moduleManager.getModule(ModuleNames.TEMPLATE_MESSAGES);
53
+ return this._moduleManager.getModuleByType(ModuleNames.TEMPLATE_MESSAGES);
54
+ }
55
+
56
+ get public() {
57
+ return this._moduleManager.getModulesByType(ModuleTypes.PUBLIC);
58
+ }
59
+
60
+ get integrationServices() {
61
+ return this._moduleManager.getModuleByType(ModuleNames.INTEGRATION_SERVICES);
62
+ }
63
+
64
+ get userPreferences() {
65
+ return this._moduleManager.getModuleByType(ModuleNames.USER_PREFERENCES);
66
+ }
67
+
68
+ get calls() {
69
+ return this._moduleManager.getModule(ModuleNames.CALLS);
52
70
  }
53
71
 
54
72
  hasModule(moduleName) {
@@ -65,6 +83,10 @@ export default class IMSDK {
65
83
  contacts: this.contacts,
66
84
  cannedMessages: this.cannedMessages,
67
85
  templateMessages: this.templateMessages,
86
+ integrationServices: this.integrationServices,
87
+ userPreferences: this.userPreferences,
88
+ public: this.public,
89
+ calls: this.calls,
68
90
  hasModule: this.hasModule.bind(this)
69
91
  };
70
92
  }
@@ -0,0 +1,27 @@
1
+ import { CallService } from '../../../application/services';
2
+ import { CallRepository } from '../../../infrastructure/repositories';
3
+ export default class CallSDK {
4
+ constructor(_ref) {
5
+ let {
6
+ config
7
+ } = _ref;
8
+ const {
9
+ callAPI,
10
+ callAdapter
11
+ } = config;
12
+ const callRepository = new CallRepository({
13
+ callAPI,
14
+ callAdapter
15
+ }).toJSON();
16
+ const callService = new CallService({
17
+ callRepository
18
+ }).toJSON();
19
+ this.services = { ...callService
20
+ };
21
+ }
22
+
23
+ toJSON() {
24
+ return this.services;
25
+ }
26
+
27
+ }
@@ -0,0 +1 @@
1
+ export { default as CallSDK } from './CallSDK';
@@ -0,0 +1,30 @@
1
+ import { IntegrationService } from '../../../application/services';
2
+ import { IntegrationServiceRepository } from '../../../infrastructure/repositories';
3
+
4
+ class IntegrationServiceSDK {
5
+ constructor(_ref) {
6
+ let {
7
+ config
8
+ } = _ref;
9
+ const {
10
+ integrationServiceAPI,
11
+ integrationServiceAdapter
12
+ } = config;
13
+ const integrationServiceRepository = new IntegrationServiceRepository({
14
+ integrationServiceAPI,
15
+ integrationServiceAdapter
16
+ }).toJSON();
17
+ const integrationService = new IntegrationService({
18
+ integrationServiceRepository
19
+ }).toJSON();
20
+ this.services = { ...integrationService
21
+ };
22
+ }
23
+
24
+ toJSON() {
25
+ return this.services;
26
+ }
27
+
28
+ }
29
+
30
+ export default IntegrationServiceSDK;
@@ -0,0 +1,2 @@
1
+ import IntegrationServiceSDK from './IntegrationServiceSDK';
2
+ export { IntegrationServiceSDK };
@@ -0,0 +1,30 @@
1
+ import { UserPreferenceService } from '../../../application/services';
2
+ import { UserPreferenceRepository } from '../../../infrastructure/repositories';
3
+
4
+ class UserPreferencesSDK {
5
+ constructor(_ref) {
6
+ let {
7
+ config
8
+ } = _ref;
9
+ const {
10
+ userPreferenceAPI,
11
+ userPreferenceAdapter
12
+ } = config;
13
+ const userPreferenceRepository = new UserPreferenceRepository({
14
+ userPreferenceAPI,
15
+ userPreferenceAdapter
16
+ }).toJSON();
17
+ const userPreferenceService = new UserPreferenceService({
18
+ userPreferenceRepository
19
+ }).toJSON();
20
+ this.services = { ...userPreferenceService
21
+ };
22
+ }
23
+
24
+ toJSON() {
25
+ return this.services;
26
+ }
27
+
28
+ }
29
+
30
+ export default UserPreferencesSDK;
@@ -0,0 +1,2 @@
1
+ import UserPreferencesSDK from './UserPreferencesSDK';
2
+ export { UserPreferencesSDK };
@@ -0,0 +1,28 @@
1
+ import { WhatsAppPricingService } from '../../../application/services';
2
+ import { WhatsAppPricingRepository } from '../../../infrastructure/repositories';
3
+
4
+ class WhatsAppPricingSDK {
5
+ constructor(_ref) {
6
+ let {
7
+ config
8
+ } = _ref;
9
+ const {
10
+ whatsAppPricingAPI
11
+ } = config;
12
+ const whatsAppPricingRepository = new WhatsAppPricingRepository({
13
+ whatsAppPricingAPI
14
+ }).toJSON();
15
+ const whatsAppPricingService = new WhatsAppPricingService({
16
+ whatsAppPricingRepository
17
+ }).toJSON();
18
+ this.services = { ...whatsAppPricingService
19
+ };
20
+ }
21
+
22
+ toJSON() {
23
+ return this.services;
24
+ }
25
+
26
+ }
27
+
28
+ export default WhatsAppPricingSDK;
@@ -0,0 +1,2 @@
1
+ import WhatsAppPricingSDK from './WhatsAppPricingSDK';
2
+ export { WhatsAppPricingSDK };
@@ -0,0 +1,31 @@
1
+ import { AdapterError } from '../../../core/errors';
2
+ import { Call } from '../../../domain/entities';
3
+ import { IAdapter } from '../../../domain/interfaces';
4
+ export default class CallAdapter extends IAdapter {
5
+ adapt(callData) {
6
+ if (!callData) {
7
+ throw new AdapterError('Call data is required');
8
+ }
9
+
10
+ try {
11
+ return new Call({
12
+ id: callData.id,
13
+ integrationServiceId: callData.integrationServiceId,
14
+ actor: callData.actor,
15
+ channelId: callData.channelId,
16
+ createdTime: callData.createdTime,
17
+ direction: callData.direction,
18
+ sessionId: callData.sessionId,
19
+ status: callData.status,
20
+ meta: callData.meta,
21
+ participants: callData.participants,
22
+ session: callData.session,
23
+ statuses: callData.statuses,
24
+ duration: callData.duration
25
+ }).toJSON();
26
+ } catch (error) {
27
+ throw new AdapterError(`Failed to adapt message: ${error.message}`);
28
+ }
29
+ }
30
+
31
+ }
@@ -0,0 +1 @@
1
+ export { default as CallAdapter } from './CallAdapter';
@@ -8,18 +8,32 @@ export default class ChannelAdapter extends IAdapter {
8
8
  }
9
9
 
10
10
  try {
11
+ const {
12
+ integrationServiceId = '',
13
+ integrationService = {}
14
+ } = rawChannel;
15
+ const updatedIntegrationServiceId = integrationServiceId || integrationService.id;
11
16
  return new Channel({
12
17
  id: rawChannel.id,
13
- integrationService: rawChannel.integrationService,
18
+ integrationServiceType: updatedIntegrationServiceId,
19
+ integrationServiceId: updatedIntegrationServiceId,
14
20
  name: rawChannel.name,
15
21
  defaultBotId: rawChannel.defaultBotId,
16
22
  isActive: rawChannel.isActive,
23
+ isDeleted: rawChannel.isDeleted,
24
+ isSandBox: rawChannel.isSandBox,
17
25
  createdTime: rawChannel.createdTime,
18
26
  accountName: rawChannel.accountName,
27
+ universalLink: rawChannel.universalLink,
19
28
  isSubscribed: rawChannel.isSubscribed,
20
29
  createdBy: rawChannel.createdBy,
21
30
  isOwner: rawChannel.isOwner,
22
- photoURL: rawChannel.logoURL
31
+ photoURL: rawChannel.photoURL,
32
+ configParams: rawChannel.configParams,
33
+ authorizationPending: rawChannel.authorizationPending,
34
+ meta: rawChannel.meta,
35
+ logoURL: rawChannel.logoURL,
36
+ workspaceId: rawChannel.workspaceId
23
37
  }).toJSON();
24
38
  } catch (error) {
25
39
  throw new AdapterError(`Failed to adapt channel: ${error.message}`);
@@ -7,4 +7,8 @@ export * from './agents';
7
7
  export * from './contacts';
8
8
  export * from './cannedMessages';
9
9
  export * from './templateMessages';
10
- export * from './customReplyExtension';
10
+ export * from './customReplyExtension';
11
+ export * from './integrationServices';
12
+ export * from './userPreferences';
13
+ export * from './whatsAppPricing';
14
+ export * from './calls';
@@ -0,0 +1,25 @@
1
+ import { AdapterError } from '../../../core/errors';
2
+ import { IntegrationService } from '../../../domain/entities';
3
+ import { IAdapter } from '../../../domain/interfaces';
4
+ export default class IntegrationServiceAdapter extends IAdapter {
5
+ adapt(integrationServiceData) {
6
+ if (!integrationServiceData) {
7
+ throw new AdapterError('IntegrationService data is required');
8
+ }
9
+
10
+ try {
11
+ return new IntegrationService({
12
+ id: integrationServiceData.id,
13
+ label: integrationServiceData.label,
14
+ provider: integrationServiceData.provider,
15
+ domain: integrationServiceData.domain,
16
+ channelAlias: integrationServiceData.channelAlias,
17
+ logoURL: integrationServiceData.logoURL,
18
+ isParentAccountNeeded: integrationServiceData.isParentAccountNeeded
19
+ }).toJSON();
20
+ } catch (error) {
21
+ throw new AdapterError(`Failed to adapt integrationService: ${error.message}`);
22
+ }
23
+ }
24
+
25
+ }
@@ -0,0 +1,2 @@
1
+ import IntegrationServiceAdapter from './IntegrationServiceAdapter';
2
+ export { IntegrationServiceAdapter };
@@ -0,0 +1,19 @@
1
+ import { AdapterError } from '../../../core/errors';
2
+ import { SessionMetrics } from '../../../domain/entities';
3
+ import { IAdapter } from '../../../domain/interfaces';
4
+ export default class SessionMetricsAdapter extends IAdapter {
5
+ adapt(sessionMetricsData) {
6
+ if (!sessionMetricsData) {
7
+ throw new AdapterError('Session metrics data is required');
8
+ }
9
+
10
+ try {
11
+ return new SessionMetrics({
12
+ assignee: sessionMetricsData.assignee
13
+ }).toJSON();
14
+ } catch (error) {
15
+ throw new AdapterError(`Failed to adapt session Metrics Data: ${error.message}`);
16
+ }
17
+ }
18
+
19
+ }
@@ -1,2 +1,3 @@
1
1
  import SessionAdapter from './SessionAdapter';
2
- export { SessionAdapter };
2
+ import SessionMetricsAdapter from './SessionMetricsAdapter';
3
+ export { SessionAdapter, SessionMetricsAdapter };
@@ -0,0 +1,19 @@
1
+ import { AdapterError } from '../../../core/errors';
2
+ import { UserPreference } from '../../../domain/entities';
3
+ import { IAdapter } from '../../../domain/interfaces';
4
+ export default class UserPreferencesAdapter extends IAdapter {
5
+ adapt(preferenceData) {
6
+ if (!preferenceData) {
7
+ throw new AdapterError('UserPreference data is required');
8
+ }
9
+
10
+ try {
11
+ return new UserPreference({
12
+ collapseSidePanel: preferenceData.collapseSidePanel
13
+ }).toJSON();
14
+ } catch (error) {
15
+ throw new AdapterError(`Failed to adapt user preference: ${error.message}`);
16
+ }
17
+ }
18
+
19
+ }
@@ -0,0 +1,2 @@
1
+ import UserPreferenceAdapter from './UserPreferenceAdapter';
2
+ export { UserPreferenceAdapter };
@@ -0,0 +1,22 @@
1
+ import { AdapterError } from '../../../core/errors';
2
+ import { WhatsAppPricing } from '../../../domain/entities';
3
+ import { IAdapter } from '../../../domain/interfaces';
4
+ export default class WhatsAppPricingAdapter extends IAdapter {
5
+ adapt(whatsAppPricingData) {
6
+ if (!whatsAppPricingData) {
7
+ throw new AdapterError('whatsAppPricing data is required');
8
+ }
9
+
10
+ try {
11
+ return new WhatsAppPricing({
12
+ total: whatsAppPricingData.total,
13
+ creditsCount: whatsAppPricingData.creditsCount,
14
+ actutalCreditsAmount: whatsAppPricingData.actutalCreditsAmount,
15
+ category: whatsAppPricingData.category
16
+ }).toJSON();
17
+ } catch (error) {
18
+ throw new AdapterError(`Failed to adapt WhatsAppPricing: ${error.message}`);
19
+ }
20
+ }
21
+
22
+ }
@@ -0,0 +1,2 @@
1
+ import WhatsAppPricingAdapter from './WhatsAppPricingAdapter';
2
+ export { WhatsAppPricingAdapter };
@@ -1,4 +1,4 @@
1
- import { ResponseTypes } from '../../core/constants';
1
+ import { ModuleTypes, ResponseTypes } from '../../core/constants';
2
2
  import { ResponseUtils } from '../../core/utils';
3
3
  import configRegistry from '../config/configRegistry';
4
4
  import { getRegistryConfig } from './registry';
@@ -7,18 +7,19 @@ export default class BaseAPI {
7
7
  constructor() {
8
8
  let {
9
9
  module,
10
+ moduleType = ModuleTypes.AUTHENTICATED,
10
11
  configProvider = configRegistry,
11
12
  registryProvider = {
12
13
  getRegistryConfig
13
14
  },
14
- urlBuilder = new UrlBuilder()
15
+ urlBuilder
15
16
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
16
17
  this.configProvider = configProvider;
17
18
  this.registryProvider = registryProvider;
18
- this.httpClient = this.configProvider.getHttpClient();
19
+ this.httpClient = moduleType === ModuleTypes.PUBLIC ? this.configProvider.getPublicHttpClient() : this.configProvider.getHttpClient();
19
20
  this.baseURL = this.configProvider.getBaseURL();
20
21
  this.module = module;
21
- this.urlBuilder = urlBuilder;
22
+ this.urlBuilder = urlBuilder || new UrlBuilder(this.baseURL);
22
23
  }
23
24
 
24
25
  async request(_ref) {