@zohoim/client-sdk 1.0.0-replyAreaPoc9 → 1.0.0-subscription2

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 (151) hide show
  1. package/es/application/services/channels/ChannelService.js +6 -1
  2. package/es/application/services/index.js +5 -1
  3. package/es/application/services/integrationServices/IntegrationService.js +21 -0
  4. package/es/application/services/integrationServices/index.js +2 -0
  5. package/es/application/services/sessions/SessionService.js +6 -1
  6. package/es/application/services/subscription/SubscriptionService.js +36 -0
  7. package/es/application/services/subscription/index.js +2 -0
  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/channels/getChannelRequest.js +13 -0
  17. package/es/domain/dto/channels/getChannelsRequest.js +3 -1
  18. package/es/domain/dto/channels/index.js +2 -1
  19. package/es/domain/dto/index.js +5 -1
  20. package/es/domain/dto/integrationServices/getIntegrationsRequest.js +7 -0
  21. package/es/domain/dto/integrationServices/index.js +1 -0
  22. package/es/domain/dto/sessions/getSessionAttachmentsRequest.js +6 -1
  23. package/es/domain/dto/sessions/getSessionMetricsRequest.js +16 -0
  24. package/es/domain/dto/sessions/index.js +2 -1
  25. package/es/domain/dto/subscription/buyAddOnRequest.js +18 -0
  26. package/es/domain/dto/subscription/getAddOnsRequest.js +15 -0
  27. package/es/domain/dto/subscription/getLicenseDetailsRequest.js +7 -0
  28. package/es/domain/dto/subscription/index.js +4 -0
  29. package/es/domain/dto/subscription/modifyAddOnRequest.js +18 -0
  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/Channel/Channel.js +22 -4
  36. package/es/domain/entities/IntegrationService/IntegrationService.js +8 -1
  37. package/es/domain/entities/Session/SessionMetrics.js +21 -0
  38. package/es/domain/entities/Session/index.js +2 -1
  39. package/es/domain/entities/Subscription/AddOn.js +26 -0
  40. package/es/domain/entities/Subscription/LicenseDetails.js +21 -0
  41. package/es/domain/entities/Subscription/SubscriptionInfo.js +26 -0
  42. package/es/domain/entities/Subscription/index.js +4 -0
  43. package/es/domain/entities/UserPreference/UserPreference.js +26 -0
  44. package/es/domain/entities/UserPreference/index.js +2 -0
  45. package/es/domain/entities/WhatsAppPricing/WhatsAppPricing.js +25 -0
  46. package/es/domain/entities/WhatsAppPricing/WhatsAppPricingCategory.js +22 -0
  47. package/es/domain/entities/WhatsAppPricing/index.js +3 -0
  48. package/es/domain/entities/index.js +4 -1
  49. package/es/domain/enum/index.js +3 -1
  50. package/es/domain/enum/session/AssigneeFilter.js +6 -0
  51. package/es/domain/enum/session/SessionReplyStatus.js +4 -1
  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/subscription/AddOnModule.js +5 -0
  55. package/es/domain/enum/subscription/AddOnName.js +5 -0
  56. package/es/domain/enum/subscription/AddOnType.js +5 -0
  57. package/es/domain/enum/subscription/SubscriptionStatus.js +4 -0
  58. package/es/domain/enum/subscription/index.js +5 -0
  59. package/es/domain/enum/userPreference/CollapseSidePanel.js +5 -0
  60. package/es/domain/enum/userPreference/index.js +2 -0
  61. package/es/domain/interfaces/repositories/channels/IChannelRepository.js +7 -1
  62. package/es/domain/interfaces/repositories/index.js +5 -1
  63. package/es/domain/interfaces/repositories/integrationServices/IIntegrationServiceRepository.js +17 -0
  64. package/es/domain/interfaces/repositories/integrationServices/index.js +2 -0
  65. package/es/domain/interfaces/repositories/sessions/ISessionRepository.js +6 -1
  66. package/es/domain/interfaces/repositories/subscription/ISubscriptionRepository.js +32 -0
  67. package/es/domain/interfaces/repositories/subscription/index.js +2 -0
  68. package/es/domain/interfaces/repositories/userPreferences/IUserPreferenceRepository.js +23 -0
  69. package/es/domain/interfaces/repositories/userPreferences/index.js +2 -0
  70. package/es/domain/interfaces/repositories/whatsAppPricing/IWhatsAppPricingRepository.js +18 -0
  71. package/es/domain/interfaces/repositories/whatsAppPricing/index.js +2 -0
  72. package/es/domain/schema/channel/ChannelSchema.js +39 -5
  73. package/es/domain/schema/index.js +4 -1
  74. package/es/domain/schema/integrationService/IntegrationServiceSchema.js +12 -0
  75. package/es/domain/schema/session/SessionMetrics/AssigneeSchema.js +20 -0
  76. package/es/domain/schema/session/SessionMetrics/SessionMetricsForAssigneeSchema.js +32 -0
  77. package/es/domain/schema/session/SessionMetrics/index.js +2 -0
  78. package/es/domain/schema/session/SessionMetricsSchema.js +9 -0
  79. package/es/domain/schema/session/index.js +2 -1
  80. package/es/domain/schema/subscription/AddOnSchema.js +29 -0
  81. package/es/domain/schema/subscription/LicenseDetailsSchema.js +7 -0
  82. package/es/domain/schema/subscription/SubscriptionInfoSchema.js +29 -0
  83. package/es/domain/schema/subscription/index.js +4 -0
  84. package/es/domain/schema/userPreference/UserPreferenceSchema.js +9 -0
  85. package/es/domain/schema/userPreference/index.js +2 -0
  86. package/es/domain/schema/whatsAppPricing/WhatsAppPricingCategorySchema.js +11 -0
  87. package/es/domain/schema/whatsAppPricing/WhatsAppPricingSchema.js +21 -0
  88. package/es/domain/schema/whatsAppPricing/index.js +3 -0
  89. package/es/frameworks/managers/ModuleFactory.js +84 -24
  90. package/es/frameworks/managers/ModuleManager.js +25 -2
  91. package/es/frameworks/sdk/IMSDK.js +33 -11
  92. package/es/frameworks/sdk/integrationServices/IntegrationServiceSDK.js +30 -0
  93. package/es/frameworks/sdk/integrationServices/index.js +2 -0
  94. package/es/frameworks/sdk/subscription/SubscriptionSDK.js +32 -0
  95. package/es/frameworks/sdk/subscription/index.js +2 -0
  96. package/es/frameworks/sdk/userPreferences/UserPreferencesSDK.js +30 -0
  97. package/es/frameworks/sdk/userPreferences/index.js +2 -0
  98. package/es/frameworks/sdk/whatsAppPricing/WhatsAppPricingSDK.js +28 -0
  99. package/es/frameworks/sdk/whatsAppPricing/index.js +2 -0
  100. package/es/infrastructure/adapters/channels/ChannelAdapter.js +16 -2
  101. package/es/infrastructure/adapters/index.js +5 -1
  102. package/es/infrastructure/adapters/integrationServices/IntegrationServiceAdapter.js +25 -0
  103. package/es/infrastructure/adapters/integrationServices/index.js +2 -0
  104. package/es/infrastructure/adapters/sessions/SessionMetricsAdapter.js +19 -0
  105. package/es/infrastructure/adapters/sessions/index.js +2 -1
  106. package/es/infrastructure/adapters/subscription/AddOnAdapter.js +24 -0
  107. package/es/infrastructure/adapters/subscription/LicenseDetailsAdapter.js +20 -0
  108. package/es/infrastructure/adapters/subscription/index.js +3 -0
  109. package/es/infrastructure/adapters/userPreferences/UserPreferenceAdapter.js +19 -0
  110. package/es/infrastructure/adapters/userPreferences/index.js +2 -0
  111. package/es/infrastructure/adapters/whatsAppPricing/WhatsAppPricingAdapter.js +22 -0
  112. package/es/infrastructure/adapters/whatsAppPricing/index.js +2 -0
  113. package/es/infrastructure/api/BaseAPI.js +5 -4
  114. package/es/infrastructure/api/index.js +5 -1
  115. package/es/infrastructure/api/integrationServices/IntegrationServiceAPI.js +14 -0
  116. package/es/infrastructure/api/integrationServices/index.js +2 -0
  117. package/es/infrastructure/api/registry/createPublicBaseUrl.js +4 -0
  118. package/es/infrastructure/api/registry/getRegistryConfig.js +9 -1
  119. package/es/infrastructure/api/registry/integrationServices/constructIntegrationServiceEndPoint.js +10 -0
  120. package/es/infrastructure/api/registry/integrationServices/index.js +2 -0
  121. package/es/infrastructure/api/registry/integrationServices/integrationServiceAPIRegistry.js +12 -0
  122. package/es/infrastructure/api/registry/sessions/sessionAPIRegistry.js +8 -2
  123. package/es/infrastructure/api/registry/subscription/constructSubscriptionEndPoint.js +10 -0
  124. package/es/infrastructure/api/registry/subscription/index.js +2 -0
  125. package/es/infrastructure/api/registry/subscription/subscriptionAPIRegistry.js +30 -0
  126. package/es/infrastructure/api/registry/userPreferences/constructUserPreferencesEndPoint.js +10 -0
  127. package/es/infrastructure/api/registry/userPreferences/index.js +2 -0
  128. package/es/infrastructure/api/registry/userPreferences/userPreferenceAPIRegistry.js +17 -0
  129. package/es/infrastructure/api/registry/whatsAppPricing/constructWhatsAppPricingEndPoint.js +10 -0
  130. package/es/infrastructure/api/registry/whatsAppPricing/index.js +2 -0
  131. package/es/infrastructure/api/registry/whatsAppPricing/whatsAppPricingAPIRegistry.js +13 -0
  132. package/es/infrastructure/api/sessions/SessionAPI.js +11 -1
  133. package/es/infrastructure/api/subscription/SubscriptionAPI.js +48 -0
  134. package/es/infrastructure/api/subscription/index.js +2 -0
  135. package/es/infrastructure/api/userPreferences/UserPreferenceAPI.js +24 -0
  136. package/es/infrastructure/api/userPreferences/index.js +2 -0
  137. package/es/infrastructure/api/whatsAppPricing/WhatsAppPricingAPI.js +14 -0
  138. package/es/infrastructure/api/whatsAppPricing/index.js +2 -0
  139. package/es/infrastructure/config/configRegistry.js +8 -1
  140. package/es/infrastructure/repositories/channels/ChannelRepository.js +10 -1
  141. package/es/infrastructure/repositories/index.js +5 -1
  142. package/es/infrastructure/repositories/integrationServices/IntegrationServiceRepository.js +49 -0
  143. package/es/infrastructure/repositories/integrationServices/index.js +2 -0
  144. package/es/infrastructure/repositories/sessions/SessionRepository.js +14 -3
  145. package/es/infrastructure/repositories/subscription/SubscriptionRepository.js +83 -0
  146. package/es/infrastructure/repositories/subscription/index.js +2 -0
  147. package/es/infrastructure/repositories/userPreferences/UserPreferenceRepository.js +58 -0
  148. package/es/infrastructure/repositories/userPreferences/index.js +2 -0
  149. package/es/infrastructure/repositories/whatsAppPricing/WhatsAppPricingRepository.js +49 -0
  150. package/es/infrastructure/repositories/whatsAppPricing/index.js +2 -0
  151. package/package.json +1 -1
@@ -0,0 +1,3 @@
1
+ import WhatsAppPricingSchema from './WhatsAppPricingSchema';
2
+ import WhatsAppPricingCategorySchema from './WhatsAppPricingCategorySchema';
3
+ export { WhatsAppPricingSchema, WhatsAppPricingCategorySchema };
@@ -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,70 +7,130 @@ 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 { SubscriptionSDK } from '../sdk/subscription';
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.SUBSCRIPTION]: _ref12 => {
126
+ let {
72
127
  config
73
- }).toJSON();
128
+ } = _ref12;
129
+ return {
130
+ [ModuleTypes.AUTHENTICATED]: new SubscriptionSDK({
131
+ config
132
+ }).toJSON()
133
+ };
74
134
  }
75
135
  };
76
136
  export default ModuleFactory;
@@ -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.SUBSCRIPTION];
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 subscription() {
69
+ return this._moduleManager.getModuleByType(ModuleNames.SUBSCRIPTION);
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
+ subscription: this.subscription,
89
+ public: this.public,
68
90
  hasModule: this.hasModule.bind(this)
69
91
  };
70
92
  }
@@ -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,32 @@
1
+ import { SubscriptionService } from '../../../application/services';
2
+ import { SubscriptionRepository } from '../../../infrastructure/repositories';
3
+
4
+ class SubscriptionSDK {
5
+ constructor(_ref) {
6
+ let {
7
+ config
8
+ } = _ref;
9
+ const {
10
+ subscriptionAPI,
11
+ addOnAdapter,
12
+ licenseDetailsAdapter
13
+ } = config;
14
+ const subscriptionRepository = new SubscriptionRepository({
15
+ subscriptionAPI,
16
+ addOnAdapter,
17
+ licenseDetailsAdapter
18
+ }).toJSON();
19
+ const subscriptionService = new SubscriptionService({
20
+ subscriptionRepository
21
+ }).toJSON();
22
+ this.services = { ...subscriptionService
23
+ };
24
+ }
25
+
26
+ toJSON() {
27
+ return this.services;
28
+ }
29
+
30
+ }
31
+
32
+ export default SubscriptionSDK;
@@ -0,0 +1,2 @@
1
+ import SubscriptionSDK from './SubscriptionSDK';
2
+ export { SubscriptionSDK };
@@ -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 };
@@ -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 './subscription';
@@ -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,24 @@
1
+ import { AdapterError } from '../../../core/errors';
2
+ import { AddOn } from '../../../domain/entities';
3
+ import { IAdapter } from '../../../domain/interfaces';
4
+ export default class AddOnAdapter extends IAdapter {
5
+ adapt(data) {
6
+ if (!data) {
7
+ throw new AdapterError('AddOn data is required'); // No I18N
8
+ }
9
+
10
+ try {
11
+ return new AddOn({
12
+ name: data.name,
13
+ type: data.type,
14
+ module: data.module,
15
+ cost: data.cost,
16
+ subscriptionInfo: data.subscriptionInfo
17
+ }).toJSON();
18
+ } catch (error) {
19
+ throw new AdapterError(`Failed to adapt addOn: ${error.message}` // No I18N
20
+ );
21
+ }
22
+ }
23
+
24
+ }
@@ -0,0 +1,20 @@
1
+ import { AdapterError } from '../../../core/errors';
2
+ import { LicenseDetails } from '../../../domain/entities';
3
+ import { IAdapter } from '../../../domain/interfaces';
4
+ export default class LicenseDetailsAdapter extends IAdapter {
5
+ adapt(data) {
6
+ if (!data) {
7
+ throw new AdapterError('LicenseDetails data is required'); // No I18N
8
+ }
9
+
10
+ try {
11
+ return new LicenseDetails({
12
+ paymentSource: data.paymentSource
13
+ }).toJSON();
14
+ } catch (error) {
15
+ throw new AdapterError(`Failed to adapt licenseDetails: ${error.message}` // No I18N
16
+ );
17
+ }
18
+ }
19
+
20
+ }
@@ -0,0 +1,3 @@
1
+ import AddOnAdapter from './AddOnAdapter';
2
+ import LicenseDetailsAdapter from './LicenseDetailsAdapter';
3
+ export { AddOnAdapter, LicenseDetailsAdapter };
@@ -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) {