@zohoim/client-sdk 1.1.0-calls → 1.1.0-calls3

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 (87) hide show
  1. package/es/application/services/channels/ChannelService.js +6 -1
  2. package/es/application/services/index.js +2 -0
  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/userPreferences/UserPreferenceService.js +26 -0
  7. package/es/application/services/userPreferences/index.js +2 -0
  8. package/es/core/constants/ModuleNames.js +2 -0
  9. package/es/core/utils/validateSchema.js +22 -9
  10. package/es/domain/dto/channels/getChannelRequest.js +13 -0
  11. package/es/domain/dto/channels/getChannelsRequest.js +3 -1
  12. package/es/domain/dto/channels/index.js +2 -1
  13. package/es/domain/dto/index.js +2 -0
  14. package/es/domain/dto/integrationServices/getIntegrationsRequest.js +7 -0
  15. package/es/domain/dto/integrationServices/index.js +1 -0
  16. package/es/domain/dto/sessions/getSessionMetricsRequest.js +16 -0
  17. package/es/domain/dto/sessions/index.js +2 -1
  18. package/es/domain/dto/userPreferences/getPreferencesRequest.js +7 -0
  19. package/es/domain/dto/userPreferences/index.js +2 -0
  20. package/es/domain/dto/userPreferences/updatePreferencesRequest.js +9 -0
  21. package/es/domain/entities/Channel/Channel.js +22 -4
  22. package/es/domain/entities/IntegrationService/IntegrationService.js +8 -1
  23. package/es/domain/entities/Session/SessionMetrics.js +21 -0
  24. package/es/domain/entities/Session/index.js +2 -1
  25. package/es/domain/entities/UserPreference/UserPreference.js +26 -0
  26. package/es/domain/entities/UserPreference/index.js +2 -0
  27. package/es/domain/entities/index.js +1 -0
  28. package/es/domain/enum/index.js +1 -0
  29. package/es/domain/enum/session/AssigneeFilter.js +6 -0
  30. package/es/domain/enum/session/SessionStatus.js +2 -1
  31. package/es/domain/enum/session/index.js +2 -1
  32. package/es/domain/enum/userPreference/CollapseSidePanel.js +5 -0
  33. package/es/domain/enum/userPreference/index.js +2 -0
  34. package/es/domain/interfaces/repositories/channels/IChannelRepository.js +7 -1
  35. package/es/domain/interfaces/repositories/index.js +2 -0
  36. package/es/domain/interfaces/repositories/integrationServices/IIntegrationServiceRepository.js +17 -0
  37. package/es/domain/interfaces/repositories/integrationServices/index.js +2 -0
  38. package/es/domain/interfaces/repositories/sessions/ISessionRepository.js +6 -1
  39. package/es/domain/interfaces/repositories/userPreferences/IUserPreferenceRepository.js +23 -0
  40. package/es/domain/interfaces/repositories/userPreferences/index.js +2 -0
  41. package/es/domain/schema/channel/ChannelSchema.js +39 -5
  42. package/es/domain/schema/index.js +1 -0
  43. package/es/domain/schema/integrationService/IntegrationServiceSchema.js +12 -0
  44. package/es/domain/schema/session/SessionMetrics/AssigneeSchema.js +20 -0
  45. package/es/domain/schema/session/SessionMetrics/SessionMetricsForAssigneeSchema.js +32 -0
  46. package/es/domain/schema/session/SessionMetrics/index.js +2 -0
  47. package/es/domain/schema/session/SessionMetricsSchema.js +9 -0
  48. package/es/domain/schema/session/index.js +2 -1
  49. package/es/domain/schema/userPreference/UserPreferenceSchema.js +9 -0
  50. package/es/domain/schema/userPreference/index.js +2 -0
  51. package/es/frameworks/managers/ModuleFactory.js +29 -5
  52. package/es/frameworks/managers/ModuleManager.js +1 -1
  53. package/es/frameworks/sdk/IMSDK.js +11 -1
  54. package/es/frameworks/sdk/integrationServices/IntegrationServiceSDK.js +30 -0
  55. package/es/frameworks/sdk/integrationServices/index.js +2 -0
  56. package/es/frameworks/sdk/userPreferences/UserPreferencesSDK.js +30 -0
  57. package/es/frameworks/sdk/userPreferences/index.js +2 -0
  58. package/es/infrastructure/adapters/channels/ChannelAdapter.js +16 -2
  59. package/es/infrastructure/adapters/index.js +2 -0
  60. package/es/infrastructure/adapters/integrationServices/IntegrationServiceAdapter.js +25 -0
  61. package/es/infrastructure/adapters/integrationServices/index.js +2 -0
  62. package/es/infrastructure/adapters/sessions/SessionMetricsAdapter.js +19 -0
  63. package/es/infrastructure/adapters/sessions/index.js +2 -1
  64. package/es/infrastructure/adapters/userPreferences/UserPreferenceAdapter.js +19 -0
  65. package/es/infrastructure/adapters/userPreferences/index.js +2 -0
  66. package/es/infrastructure/api/index.js +2 -0
  67. package/es/infrastructure/api/integrationServices/IntegrationServiceAPI.js +14 -0
  68. package/es/infrastructure/api/integrationServices/index.js +2 -0
  69. package/es/infrastructure/api/registry/getRegistryConfig.js +4 -0
  70. package/es/infrastructure/api/registry/integrationServices/constructIntegrationServiceEndPoint.js +10 -0
  71. package/es/infrastructure/api/registry/integrationServices/index.js +2 -0
  72. package/es/infrastructure/api/registry/integrationServices/integrationServiceAPIRegistry.js +12 -0
  73. package/es/infrastructure/api/registry/sessions/sessionAPIRegistry.js +8 -2
  74. package/es/infrastructure/api/registry/userPreferences/constructUserPreferencesEndPoint.js +10 -0
  75. package/es/infrastructure/api/registry/userPreferences/index.js +2 -0
  76. package/es/infrastructure/api/registry/userPreferences/userPreferenceAPIRegistry.js +17 -0
  77. package/es/infrastructure/api/sessions/SessionAPI.js +11 -1
  78. package/es/infrastructure/api/userPreferences/UserPreferenceAPI.js +24 -0
  79. package/es/infrastructure/api/userPreferences/index.js +2 -0
  80. package/es/infrastructure/repositories/channels/ChannelRepository.js +10 -1
  81. package/es/infrastructure/repositories/index.js +2 -0
  82. package/es/infrastructure/repositories/integrationServices/IntegrationServiceRepository.js +49 -0
  83. package/es/infrastructure/repositories/integrationServices/index.js +2 -0
  84. package/es/infrastructure/repositories/sessions/SessionRepository.js +14 -3
  85. package/es/infrastructure/repositories/userPreferences/UserPreferenceRepository.js +58 -0
  86. package/es/infrastructure/repositories/userPreferences/index.js +2 -0
  87. package/package.json +1 -1
@@ -12,9 +12,14 @@ export default class ChannelService extends IChannelRepository {
12
12
  return this.channelRepository.getChannels(request);
13
13
  }
14
14
 
15
+ async getChannel(request) {
16
+ return this.channelRepository.getChannel(request);
17
+ }
18
+
15
19
  toJSON() {
16
20
  return {
17
- getChannels: this.getChannels.bind(this)
21
+ getChannels: this.getChannels.bind(this),
22
+ getChannel: this.getChannel.bind(this)
18
23
  };
19
24
  }
20
25
 
@@ -6,5 +6,7 @@ export * from './agents';
6
6
  export * from './contacts';
7
7
  export * from './cannedMessages';
8
8
  export * from './templateMessages';
9
+ export * from './integrationServices';
10
+ export * from './userPreferences';
9
11
  export * from './whatsAppPricing';
10
12
  export * from './calls';
@@ -0,0 +1,21 @@
1
+ import { IIntegrationServiceRepository } from '../../../domain/interfaces/repositories';
2
+ export default class IntegrationService extends IIntegrationServiceRepository {
3
+ constructor(_ref) {
4
+ let {
5
+ integrationServiceRepository
6
+ } = _ref;
7
+ super();
8
+ this.integrationServiceRepository = integrationServiceRepository;
9
+ }
10
+
11
+ async getIntegrations(request) {
12
+ return this.integrationServiceRepository.getIntegrations(request);
13
+ }
14
+
15
+ toJSON() {
16
+ return {
17
+ getIntegrations: this.getIntegrations.bind(this)
18
+ };
19
+ }
20
+
21
+ }
@@ -0,0 +1,2 @@
1
+ import IntegrationService from './IntegrationService';
2
+ export { IntegrationService };
@@ -40,6 +40,10 @@ export default class SessionService extends ISessionRepository {
40
40
  return this.sessionRepository.updateSessionStatus(request);
41
41
  }
42
42
 
43
+ async getSessionMetrics(request) {
44
+ return this.sessionRepository.getSessionMetrics(request);
45
+ }
46
+
43
47
  toJSON() {
44
48
  return {
45
49
  pickupSession: this.pickupSession.bind(this),
@@ -49,7 +53,8 @@ export default class SessionService extends ISessionRepository {
49
53
  getSessionAttachments: this.getSessionAttachments.bind(this),
50
54
  getSessionLastMessages: this.getSessionLastMessages.bind(this),
51
55
  markSessionAsRead: this.markSessionAsRead.bind(this),
52
- updateSessionStatus: this.updateSessionStatus.bind(this)
56
+ updateSessionStatus: this.updateSessionStatus.bind(this),
57
+ getSessionMetrics: this.getSessionMetrics.bind(this)
53
58
  };
54
59
  }
55
60
 
@@ -0,0 +1,26 @@
1
+ import { IUserPreferenceRepository } from '../../../domain/interfaces/repositories';
2
+ export default class UserPreferenceService extends IUserPreferenceRepository {
3
+ constructor(_ref) {
4
+ let {
5
+ userPreferenceRepository
6
+ } = _ref;
7
+ super();
8
+ this.userPreferenceRepository = userPreferenceRepository;
9
+ }
10
+
11
+ async getPreferences(request) {
12
+ return this.userPreferenceRepository.getPreferences(request);
13
+ }
14
+
15
+ async updatePreferences(request) {
16
+ return this.userPreferenceRepository.updatePreferences(request);
17
+ }
18
+
19
+ toJSON() {
20
+ return {
21
+ getPreferences: this.getPreferences.bind(this),
22
+ updatePreferences: this.updatePreferences.bind(this)
23
+ };
24
+ }
25
+
26
+ }
@@ -0,0 +1,2 @@
1
+ import UserPreferenceService from './UserPreferenceService';
2
+ export { UserPreferenceService };
@@ -8,6 +8,8 @@ const ModuleNames = {
8
8
  CANNED_MESSAGES: 'cannedMessages',
9
9
  TEMPLATE_MESSAGES: 'templateMessages',
10
10
  CUSTOM_REPLY_EXTENSIONS: 'articles',
11
+ INTEGRATION_SERVICES: 'integrationServices',
12
+ USER_PREFERENCES: 'userPreferences',
11
13
  WHATSAPP_PRICING: 'whatsAppPricing',
12
14
  CALLS: 'calls'
13
15
  };
@@ -94,18 +94,31 @@ export const validateSchema = _ref4 => {
94
94
  path: fieldPath,
95
95
  entityName
96
96
  });
97
- } // Array item validation
97
+ } // Array validation — schema (objects) or enum (primitives), not both
98
98
 
99
99
 
100
- if (rules.type === 'array' && rules.schema && Array.isArray(value)) {
101
- value.forEach((item, index) => {
102
- validate({
103
- schema: rules.schema,
104
- data: item,
105
- path: `${fieldPath}[${index}]`,
106
- entityName
100
+ if (rules.type === 'array' && Array.isArray(value)) {
101
+ if (rules.schema && rules.enum) {
102
+ console.warn(`${entityName} - ${fieldPath} must define either schema or enum for array, not both`);
103
+ } else if (rules.schema) {
104
+ value.forEach((item, index) => {
105
+ validate({
106
+ schema: rules.schema,
107
+ data: item,
108
+ path: `${fieldPath}[${index}]`,
109
+ entityName
110
+ });
107
111
  });
108
- });
112
+ } else if (rules.enum) {
113
+ value.forEach((item, index) => {
114
+ validateEnumCheck({
115
+ value: item,
116
+ rules,
117
+ path: `${fieldPath}[${index}]`,
118
+ entityName
119
+ });
120
+ });
121
+ }
109
122
  }
110
123
  }
111
124
  });
@@ -0,0 +1,13 @@
1
+ import RequestBuilder from '../RequestBuilder';
2
+
3
+ function getChannelRequest() {
4
+ let {
5
+ params = {}
6
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7
+ return new RequestBuilder().withParams({
8
+ channelId: null,
9
+ ...params
10
+ }).build();
11
+ }
12
+
13
+ export default getChannelRequest;
@@ -16,7 +16,9 @@ function getChannelsRequest() {
16
16
  channelIds: null,
17
17
  include: null,
18
18
  // meta|configParams
19
- includeUnsubscribed: null
19
+ includeUnsubscribed: null,
20
+ excludeConfigName: null,
21
+ excludeConfigValue: null
20
22
  }).build();
21
23
  }
22
24
 
@@ -1,3 +1,4 @@
1
1
  import getChannelsRequest from './getChannelsRequest';
2
+ import getChannelRequest from './getChannelRequest';
2
3
  export * from './agents';
3
- export { getChannelsRequest };
4
+ export { getChannelsRequest, getChannelRequest };
@@ -6,5 +6,7 @@ export * from './agents';
6
6
  export * from './contacts';
7
7
  export * from './cannedMessages';
8
8
  export * from './templateMessages';
9
+ export * from './integrationServices';
10
+ export * from './userPreferences';
9
11
  export * from './whatsAppPricing';
10
12
  export * from './calls';
@@ -0,0 +1,7 @@
1
+ import RequestBuilder from '../RequestBuilder';
2
+
3
+ function getIntegrationsRequest() {
4
+ return new RequestBuilder().build();
5
+ }
6
+
7
+ export default getIntegrationsRequest;
@@ -0,0 +1 @@
1
+ export { default as getIntegrationsRequest } from './getIntegrationsRequest';
@@ -0,0 +1,16 @@
1
+ import RequestBuilder from '../RequestBuilder';
2
+
3
+ function getSessionMetricsRequest() {
4
+ let {
5
+ query = {}
6
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7
+ return new RequestBuilder().withQuery({
8
+ channelIds: null,
9
+ integrationServiceId: null,
10
+ excludeSyncingChannels: false,
11
+ assignmentType: null,
12
+ ...query
13
+ }).build();
14
+ }
15
+
16
+ export default getSessionMetricsRequest;
@@ -5,4 +5,5 @@ export { default as getSessionAttachmentsRequest } from './getSessionAttachments
5
5
  export { default as getSessionLastMessagesRequest } from './getSessionLastMessagesRequest';
6
6
  export { default as markSessionAsReadRequest } from './markSessionAsReadRequest';
7
7
  export { default as updateSessionStatusRequest } from './updateSessionStatusRequest';
8
- export { default as pickupSessionRequest } from './pickupSessionRequest';
8
+ export { default as pickupSessionRequest } from './pickupSessionRequest';
9
+ export { default as getSessionMetricsRequest } from './getSessionMetricsRequest';
@@ -0,0 +1,7 @@
1
+ import RequestBuilder from '../RequestBuilder';
2
+
3
+ function getPreferencesRequest() {
4
+ return new RequestBuilder().build();
5
+ }
6
+
7
+ export default getPreferencesRequest;
@@ -0,0 +1,2 @@
1
+ export { default as getPreferencesRequest } from './getPreferencesRequest';
2
+ export { default as updatePreferencesRequest } from './updatePreferencesRequest';
@@ -0,0 +1,9 @@
1
+ import RequestBuilder from '../RequestBuilder';
2
+
3
+ function updatePreferencesRequest() {
4
+ return new RequestBuilder().withBody({
5
+ collapseSidePanel: null
6
+ }).build();
7
+ }
8
+
9
+ export default updatePreferencesRequest;
@@ -10,32 +10,50 @@ export default class Channel {
10
10
  }); // Set required properties from schema
11
11
 
12
12
  this.id = validatedData.id;
13
- this.integrationService = validatedData.integrationService;
14
13
  this.name = validatedData.name;
15
14
  this.isActive = validatedData.isActive;
16
- this.createdTime = validatedData.createdTime; // Set optional properties from schema
15
+ this.isDeleted = validatedData.isDeleted;
16
+ this.isSandBox = validatedData.isSandBox;
17
+ this.createdTime = validatedData.createdTime;
18
+ this.universalLink = validatedData.universalLink; // Set optional properties from schema
17
19
 
20
+ this.integrationServiceType = validatedData.integrationServiceType || '';
21
+ this.integrationServiceId = validatedData.integrationServiceId || '';
18
22
  this.defaultBotId = validatedData.defaultBotId || null;
19
23
  this.accountName = validatedData.accountName || null;
20
24
  this.isSubscribed = validatedData.isSubscribed || false;
21
25
  this.createdBy = validatedData.createdBy || null;
22
26
  this.isOwner = validatedData.isOwner || false;
23
27
  this.photoURL = validatedData.photoURL || null;
28
+ this.configParams = validatedData.configParams || null;
29
+ this.authorizationPending = validatedData.authorizationPending || false;
30
+ this.meta = validatedData.meta || [];
31
+ this.logoURL = validatedData.logoURL || null;
32
+ this.workspaceId = validatedData.workspaceId || '';
24
33
  }
25
34
 
26
35
  toJSON() {
27
36
  return {
28
37
  id: this.id,
29
- integrationService: this.integrationService,
38
+ integrationServiceType: this.integrationServiceType,
39
+ integrationServiceId: this.integrationServiceId,
30
40
  name: this.name,
31
41
  defaultBotId: this.defaultBotId,
32
42
  isActive: this.isActive,
43
+ isDeleted: this.isDeleted,
44
+ isSandBox: this.isSandBox,
33
45
  createdTime: this.createdTime,
34
46
  accountName: this.accountName,
47
+ universalLink: this.universalLink,
35
48
  isSubscribed: this.isSubscribed,
36
49
  createdBy: this.createdBy,
37
50
  isOwner: this.isOwner,
38
- photoURL: this.photoURL
51
+ photoURL: this.photoURL,
52
+ configParams: this.configParams,
53
+ authorizationPending: this.authorizationPending,
54
+ meta: this.meta,
55
+ logoURL: this.logoURL,
56
+ workspaceId: this.workspaceId
39
57
  };
40
58
  }
41
59
 
@@ -13,7 +13,10 @@ export default class IntegrationService {
13
13
  label: validatedData.label || '',
14
14
  id: validatedData.id || '',
15
15
  provider: validatedData.provider || {},
16
- logoURL: validatedData.logoURL || null
16
+ logoURL: validatedData.logoURL || null,
17
+ domain: validatedData.domain || '',
18
+ channelAlias: validatedData.channelAlias,
19
+ isParentAccountNeeded: validatedData.isParentAccountNeeded
17
20
  };
18
21
  }
19
22
 
@@ -29,6 +32,10 @@ export default class IntegrationService {
29
32
  return integrationServiceId === IntegrationServices.IM_TALK;
30
33
  }
31
34
 
35
+ static isWecom(integrationServiceId) {
36
+ return integrationServiceId === IntegrationServices.WECOM;
37
+ }
38
+
32
39
  toJSON() {
33
40
  return { ...this.data
34
41
  };
@@ -0,0 +1,21 @@
1
+ import { validateSchema } from '../../../core/utils';
2
+ import { SessionMetricsSchema } from '../../schema';
3
+ export default class SessionMetrics {
4
+ constructor() {
5
+ let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6
+ const validatedData = validateSchema({
7
+ schema: SessionMetricsSchema,
8
+ data,
9
+ entityName: 'SessionMetrics'
10
+ });
11
+ this.data = {
12
+ assignee: validatedData.assignee
13
+ };
14
+ }
15
+
16
+ toJSON() {
17
+ return { ...this.data
18
+ };
19
+ }
20
+
21
+ }
@@ -1,2 +1,3 @@
1
1
  import Session from './Session';
2
- export { Session };
2
+ import SessionMetrics from './SessionMetrics';
3
+ export { Session, SessionMetrics };
@@ -0,0 +1,26 @@
1
+ import { validateSchema } from '../../../core/utils';
2
+ import { UserPreferenceSchema } from '../../schema';
3
+ import { CollapseSidePanel } from '../../enum';
4
+ export default class UserPreference {
5
+ constructor() {
6
+ let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
7
+ const validatedData = validateSchema({
8
+ schema: UserPreferenceSchema,
9
+ data,
10
+ entityName: 'UserPreference'
11
+ });
12
+ this.data = {
13
+ collapseSidePanel: validatedData.collapseSidePanel
14
+ };
15
+ }
16
+
17
+ static isCollpseView(view) {
18
+ return view === CollapseSidePanel.ENABLED;
19
+ }
20
+
21
+ toJSON() {
22
+ return { ...this.data
23
+ };
24
+ }
25
+
26
+ }
@@ -0,0 +1,2 @@
1
+ import UserPreference from './UserPreference';
2
+ export { UserPreference };
@@ -10,5 +10,6 @@ export * from './IntegrationService';
10
10
  export * from './CannedMessage';
11
11
  export * from './TemplateMessage';
12
12
  export * from './CustomReplyExtension';
13
+ export * from './UserPreference';
13
14
  export * from './WhatsAppPricing';
14
15
  export * from './Call';
@@ -6,4 +6,5 @@ export * from './message';
6
6
  export * from './attachment';
7
7
  export * from './cannedMessage';
8
8
  export * from './templateMessage';
9
+ export * from './userPreference';
9
10
  export * from './call';
@@ -0,0 +1,6 @@
1
+ const AssigneeFilter = {
2
+ NONE: 'NONE',
3
+ UNASSIGNED: 'UNASSIGNED',
4
+ MINE: 'MINE'
5
+ };
6
+ export default AssigneeFilter;
@@ -5,6 +5,7 @@ const SessionStatus = {
5
5
  ON_HOLD: 'ON_HOLD',
6
6
  ENDED: 'ENDED',
7
7
  BLOCKED: 'BLOCKED',
8
- UNASSIGNED: 'UNASSIGNED'
8
+ UNASSIGNED: 'UNASSIGNED',
9
+ MISSED: 'MISSED'
9
10
  };
10
11
  export default SessionStatus;
@@ -1,3 +1,4 @@
1
1
  import SessionReplyStatus from './SessionReplyStatus';
2
2
  import SessionStatus from './SessionStatus';
3
- export { SessionStatus, SessionReplyStatus };
3
+ import AssigneeFilter from './AssigneeFilter';
4
+ export { SessionStatus, SessionReplyStatus, AssigneeFilter };
@@ -0,0 +1,5 @@
1
+ const CollapseSidePanel = {
2
+ ENABLED: 'ENABLED',
3
+ DISABLED: 'DISABLED'
4
+ };
5
+ export default CollapseSidePanel;
@@ -0,0 +1,2 @@
1
+ import CollapseSidePanel from './CollapseSidePanel';
2
+ export { CollapseSidePanel };
@@ -1,6 +1,6 @@
1
1
  import { ModuleNames } from '../../../../core/constants';
2
2
  import BaseAPI from '../../../../infrastructure/api/BaseAPI';
3
- import { getChannelsRequest } from '../../../dto';
3
+ import { getChannelRequest, getChannelsRequest } from '../../../dto';
4
4
  export default class IChannelRepository extends BaseAPI {
5
5
  constructor() {
6
6
  super({
@@ -12,6 +12,12 @@ export default class IChannelRepository extends BaseAPI {
12
12
  getChannels() {
13
13
  let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getChannelsRequest();
14
14
  throw new Error('Method not implemented.');
15
+ } // eslint-disable-next-line no-unused-vars
16
+
17
+
18
+ getChannel() {
19
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getChannelRequest();
20
+ throw new Error('Method not implemented.');
15
21
  }
16
22
 
17
23
  }
@@ -6,5 +6,7 @@ export * from './agents';
6
6
  export * from './contacts';
7
7
  export * from './cannedMessages';
8
8
  export * from './templateMessages';
9
+ export * from './integrationServices';
10
+ export * from './userPreferences';
9
11
  export * from './whatsAppPricing';
10
12
  export * from './calls';
@@ -0,0 +1,17 @@
1
+ import { ModuleNames } from '../../../../core/constants';
2
+ import BaseAPI from '../../../../infrastructure/api/BaseAPI';
3
+ import { getIntegrationsRequest } from '../../../dto';
4
+ export default class IIntegrationServiceRepository extends BaseAPI {
5
+ constructor() {
6
+ super({
7
+ module: ModuleNames.INTEGRATION_SERVICES
8
+ });
9
+ } // eslint-disable-next-line no-unused-vars
10
+
11
+
12
+ async getIntegrations() {
13
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getIntegrationsRequest();
14
+ throw new Error('Method not implemented');
15
+ }
16
+
17
+ }
@@ -0,0 +1,2 @@
1
+ import IIntegrationServiceRepository from './IIntegrationServiceRepository';
2
+ export { IIntegrationServiceRepository };
@@ -1,7 +1,7 @@
1
1
  /* eslint-disable no-unused-vars */
2
2
  import { ModuleNames } from '../../../../core/constants';
3
3
  import BaseAPI from '../../../../infrastructure/api/BaseAPI';
4
- import { updateSessionAssigneeRequest, getSessionsRequest, getSessionRequest, getSessionAttachmentsRequest, getSessionLastMessagesRequest, markSessionAsReadRequest, updateSessionStatusRequest, pickupSessionRequest } from '../../../dto';
4
+ import { updateSessionAssigneeRequest, getSessionsRequest, getSessionRequest, getSessionAttachmentsRequest, getSessionLastMessagesRequest, markSessionAsReadRequest, updateSessionStatusRequest, pickupSessionRequest, getSessionMetricsRequest } from '../../../dto';
5
5
  export default class ISessionRepository extends BaseAPI {
6
6
  constructor() {
7
7
  super({
@@ -49,4 +49,9 @@ export default class ISessionRepository extends BaseAPI {
49
49
  throw new Error('Method not implemented.');
50
50
  }
51
51
 
52
+ getSessionMetrics() {
53
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getSessionMetricsRequest();
54
+ throw new Error('Method not implemented.');
55
+ }
56
+
52
57
  }
@@ -0,0 +1,23 @@
1
+ import { ModuleNames } from '../../../../core/constants';
2
+ import BaseAPI from '../../../../infrastructure/api/BaseAPI';
3
+ import { getPreferencesRequest, updatePreferencesRequest } from '../../../dto';
4
+ export default class IUserPreferenceRepository extends BaseAPI {
5
+ constructor() {
6
+ super({
7
+ module: ModuleNames.USER_PREFERENCES
8
+ });
9
+ } // eslint-disable-next-line no-unused-vars
10
+
11
+
12
+ async getPreferences() {
13
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getPreferencesRequest();
14
+ throw new Error('Method not implemented');
15
+ } // eslint-disable-next-line no-unused-vars
16
+
17
+
18
+ async updatePreferences() {
19
+ let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : updatePreferencesRequest();
20
+ throw new Error('Method not implemented');
21
+ }
22
+
23
+ }
@@ -0,0 +1,2 @@
1
+ import IUserPreferenceRepository from './IUserPreferenceRepository';
2
+ export { IUserPreferenceRepository };
@@ -1,13 +1,15 @@
1
- import { IntegrationServiceSchema } from '../integrationService';
2
1
  const ChannelSchema = {
3
2
  id: {
4
3
  type: 'string',
5
4
  required: true
6
5
  },
7
- integrationService: {
8
- type: 'object',
9
- required: true,
10
- schema: IntegrationServiceSchema
6
+ integrationServiceType: {
7
+ type: 'string',
8
+ required: false
9
+ },
10
+ integrationServiceId: {
11
+ type: 'string',
12
+ required: false
11
13
  },
12
14
  name: {
13
15
  type: 'string',
@@ -21,6 +23,14 @@ const ChannelSchema = {
21
23
  type: 'boolean',
22
24
  required: true
23
25
  },
26
+ isDeleted: {
27
+ type: 'boolean',
28
+ required: true
29
+ },
30
+ isSandBox: {
31
+ type: 'boolean',
32
+ required: true
33
+ },
24
34
  createdTime: {
25
35
  type: 'string',
26
36
  required: true
@@ -29,6 +39,10 @@ const ChannelSchema = {
29
39
  type: 'string',
30
40
  required: false
31
41
  },
42
+ universalLink: {
43
+ type: 'string',
44
+ required: true
45
+ },
32
46
  isSubscribed: {
33
47
  type: 'boolean',
34
48
  required: false
@@ -44,6 +58,26 @@ const ChannelSchema = {
44
58
  photoURL: {
45
59
  type: 'string',
46
60
  required: false
61
+ },
62
+ configParams: {
63
+ type: 'object',
64
+ required: false
65
+ },
66
+ authorizationPending: {
67
+ type: 'boolean',
68
+ required: false
69
+ },
70
+ meta: {
71
+ type: 'array',
72
+ required: false
73
+ },
74
+ logoURL: {
75
+ type: 'string',
76
+ required: false
77
+ },
78
+ workspaceId: {
79
+ type: 'string',
80
+ required: false
47
81
  }
48
82
  };
49
83
  export default ChannelSchema;
@@ -9,5 +9,6 @@ export * from './contact';
9
9
  export * from './cannedMessage';
10
10
  export * from './templateMessage';
11
11
  export * from './customReplyExtension';
12
+ export * from './userPreference';
12
13
  export * from './whatsAppPricing';
13
14
  export * from './call';
@@ -26,6 +26,18 @@ const IntegrationServiceSchema = {
26
26
  logoURL: {
27
27
  type: 'string',
28
28
  required: false
29
+ },
30
+ domain: {
31
+ type: 'string',
32
+ required: false
33
+ },
34
+ channelAlias: {
35
+ type: 'string',
36
+ required: false
37
+ },
38
+ isParentAccountNeeded: {
39
+ type: 'boolean',
40
+ required: false
29
41
  }
30
42
  };
31
43
  export default IntegrationServiceSchema;