@zohoim/client-sdk 0.0.5 → 0.0.6
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.
- package/es/application/services/cannedMessages/CannedMessageService.js +51 -0
- package/es/application/services/cannedMessages/index.js +2 -0
- package/es/application/services/index.js +3 -1
- package/es/application/services/templateMessages/TemplateMessageService.js +26 -0
- package/es/application/services/templateMessages/index.js +2 -0
- package/es/core/constants/ModuleNames.js +4 -1
- package/es/core/utils/validateSchema.js +60 -26
- package/es/domain/dto/cannedMessages/createCannedMessageRequest.js +18 -0
- package/es/domain/dto/cannedMessages/deleteCannedMessageRequest.js +13 -0
- package/es/domain/dto/cannedMessages/disableCannedMessageRequest.js +13 -0
- package/es/domain/dto/cannedMessages/enableCannedMessageRequest.js +13 -0
- package/es/domain/dto/cannedMessages/getCannedMessageRequest.js +13 -0
- package/es/domain/dto/cannedMessages/getCannedMessagesRequest.js +18 -0
- package/es/domain/dto/cannedMessages/index.js +7 -0
- package/es/domain/dto/cannedMessages/updateCannedMessageRequest.js +20 -0
- package/es/domain/dto/index.js +3 -1
- package/es/domain/dto/messages/initiateSessionRequest.js +2 -0
- package/es/domain/dto/sessions/getSessionsRequest.js +1 -0
- package/es/domain/dto/templateMessages/getTemplateCreditExhaustStatusRequest.js +13 -0
- package/es/domain/dto/templateMessages/getTemplateLanguagesRequest.js +7 -0
- package/es/domain/dto/templateMessages/index.js +2 -0
- package/es/domain/entities/Actor/Actor.js +5 -1
- package/es/domain/entities/Agent/Agent.js +5 -1
- package/es/domain/entities/Attachment/Attachment.js +5 -1
- package/es/domain/entities/Bot/Bot.js +5 -1
- package/es/domain/entities/CannedMessage/CannedMessage.js +58 -0
- package/es/domain/entities/CannedMessage/index.js +2 -0
- package/es/domain/entities/Channel/Channel.js +5 -1
- package/es/domain/entities/Contact/Contact.js +5 -1
- package/es/domain/entities/CustomReplyExtension/CustomReplyExtension.js +26 -0
- package/es/domain/entities/CustomReplyExtension/index.js +2 -0
- package/es/domain/entities/IntegrationService/IntegrationService.js +5 -1
- package/es/domain/entities/Message/Action.js +5 -1
- package/es/domain/entities/Message/ExternalInfo.js +5 -1
- package/es/domain/entities/Message/Info.js +5 -1
- package/es/domain/entities/Message/InfoTarget.js +5 -1
- package/es/domain/entities/Message/Location.js +5 -1
- package/es/domain/entities/Message/Message.js +25 -2
- package/es/domain/entities/Message/MessageWithSession.js +5 -1
- package/es/domain/entities/Session/Session.js +5 -1
- package/es/domain/entities/TemplateMessage/TemplateCreditExhaustStatus.js +27 -0
- package/es/domain/entities/TemplateMessage/TemplateLanguage.js +22 -0
- package/es/domain/entities/TemplateMessage/index.js +3 -0
- package/es/domain/entities/index.js +4 -1
- package/es/domain/enum/cannedMessage/CannedMessageStatus.js +7 -0
- package/es/domain/enum/cannedMessage/CannedMessageType.js +5 -0
- package/es/domain/enum/cannedMessage/TemplateItemButtonType.js +6 -0
- package/es/domain/enum/cannedMessage/TemplateItemFooterType.js +4 -0
- package/es/domain/enum/cannedMessage/TemplateItemHeaderType.js +7 -0
- package/es/domain/enum/cannedMessage/index.js +6 -0
- package/es/domain/enum/index.js +3 -1
- package/es/domain/enum/message/MessageMeta.js +2 -1
- package/es/domain/enum/message/MetaMessageSourceType.js +6 -0
- package/es/domain/enum/message/index.js +2 -1
- package/es/domain/enum/session/SessionReplyStatus.js +4 -1
- package/es/domain/enum/templateMessage/TemplateCreditExhaustStatusCode.js +4 -0
- package/es/domain/enum/templateMessage/index.js +2 -0
- package/es/domain/interfaces/repositories/cannedMessages/ICannedMessageRepository.js +47 -0
- package/es/domain/interfaces/repositories/cannedMessages/index.js +2 -0
- package/es/domain/interfaces/repositories/index.js +3 -1
- package/es/domain/interfaces/repositories/templateMessages/ITemplateMessageRepository.js +21 -0
- package/es/domain/interfaces/repositories/templateMessages/index.js +2 -0
- package/es/domain/schema/cannedMessage/CannedMessageSchema.js +65 -0
- package/es/domain/schema/cannedMessage/TemplateItem/TemplateItemButtonsSchema.js +17 -0
- package/es/domain/schema/cannedMessage/TemplateItem/TemplateItemFooterSchema.js +13 -0
- package/es/domain/schema/cannedMessage/TemplateItem/TemplateItemHeaderSchema.js +19 -0
- package/es/domain/schema/cannedMessage/TemplateItem/index.js +4 -0
- package/es/domain/schema/cannedMessage/TemplateItemsSchema.js +21 -0
- package/es/domain/schema/cannedMessage/TranslationsSchema.js +43 -0
- package/es/domain/schema/cannedMessage/index.js +2 -0
- package/es/domain/schema/customReplyExtension/CustomReplyExtensionSchema.js +28 -0
- package/es/domain/schema/customReplyExtension/index.js +2 -0
- package/es/domain/schema/index.js +4 -1
- package/es/domain/schema/templateMessage/TemplateCreditExhaustStatusSchema.js +11 -0
- package/es/domain/schema/templateMessage/TemplateLanguageSchema.js +11 -0
- package/es/domain/schema/templateMessage/index.js +3 -0
- package/es/frameworks/managers/ModuleFactory.js +18 -0
- package/es/frameworks/managers/ModuleManager.js +1 -1
- package/es/frameworks/sdk/IMSDK.js +10 -0
- package/es/frameworks/sdk/cannedMessages/CannedMessageSDK.js +30 -0
- package/es/frameworks/sdk/cannedMessages/index.js +2 -0
- package/es/frameworks/sdk/templateMessages/TemplateMessageSDK.js +30 -0
- package/es/frameworks/sdk/templateMessages/index.js +2 -0
- package/es/infrastructure/adapters/cannedMessages/CannedMessageAdapter.js +34 -0
- package/es/infrastructure/adapters/cannedMessages/index.js +2 -0
- package/es/infrastructure/adapters/customReplyExtension/CustomReplyExtensionAdapter.js +24 -0
- package/es/infrastructure/adapters/customReplyExtension/index.js +2 -0
- package/es/infrastructure/adapters/index.js +4 -1
- package/es/infrastructure/adapters/messages/MessageAdapter.js +5 -1
- package/es/infrastructure/adapters/templateMessages/TemplateCreditExhaustStatusAdapter.js +20 -0
- package/es/infrastructure/adapters/templateMessages/TemplateLanguageAdapter.js +20 -0
- package/es/infrastructure/adapters/templateMessages/index.js +3 -0
- package/es/infrastructure/api/cannedMessages/CannedMessageAPI.js +74 -0
- package/es/infrastructure/api/cannedMessages/index.js +2 -0
- package/es/infrastructure/api/index.js +3 -1
- package/es/infrastructure/api/registry/cannedMessages/cannedMessageAPIRegistry.js +42 -0
- package/es/infrastructure/api/registry/cannedMessages/constructCannedMessageEndPoint.js +10 -0
- package/es/infrastructure/api/registry/cannedMessages/index.js +2 -0
- package/es/infrastructure/api/registry/getRegistryConfig.js +5 -1
- package/es/infrastructure/api/registry/templateMessages/constructTemplateMessageEndPoint.js +11 -0
- package/es/infrastructure/api/registry/templateMessages/index.js +2 -0
- package/es/infrastructure/api/registry/templateMessages/templateMessageAPIRegistry.js +18 -0
- package/es/infrastructure/api/templateMessages/TemplateMessageAPI.js +24 -0
- package/es/infrastructure/api/templateMessages/index.js +2 -0
- package/es/infrastructure/repositories/cannedMessages/CannedMessageRepository.js +97 -0
- package/es/infrastructure/repositories/cannedMessages/index.js +2 -0
- package/es/infrastructure/repositories/index.js +3 -1
- package/es/infrastructure/repositories/templateMessages/TemplateMessageRepository.js +77 -0
- package/es/infrastructure/repositories/templateMessages/index.js +2 -0
- package/package.json +1 -1
|
@@ -5,6 +5,8 @@ import { SessionSDK } from '../sdk/sessions';
|
|
|
5
5
|
import { MessageSDK } from '../sdk/messages';
|
|
6
6
|
import { AgentSDK } from '../sdk/agents';
|
|
7
7
|
import { ContactSDK } from '../sdk/contacts';
|
|
8
|
+
import { CannedMessageSDK } from '../sdk/cannedMessages';
|
|
9
|
+
import { TemplateMessageSDK } from '../sdk/templateMessages';
|
|
8
10
|
const ModuleFactory = {
|
|
9
11
|
[ModuleNames.CHANNELS]: _ref => {
|
|
10
12
|
let {
|
|
@@ -53,6 +55,22 @@ const ModuleFactory = {
|
|
|
53
55
|
return new MessageSDK({
|
|
54
56
|
config
|
|
55
57
|
}).toJSON();
|
|
58
|
+
},
|
|
59
|
+
[ModuleNames.CANNED_MESSAGES]: _ref7 => {
|
|
60
|
+
let {
|
|
61
|
+
config
|
|
62
|
+
} = _ref7;
|
|
63
|
+
return new CannedMessageSDK({
|
|
64
|
+
config
|
|
65
|
+
}).toJSON();
|
|
66
|
+
},
|
|
67
|
+
[ModuleNames.TEMPLATE_MESSAGES]: _ref8 => {
|
|
68
|
+
let {
|
|
69
|
+
config
|
|
70
|
+
} = _ref8;
|
|
71
|
+
return new TemplateMessageSDK({
|
|
72
|
+
config
|
|
73
|
+
}).toJSON();
|
|
56
74
|
}
|
|
57
75
|
};
|
|
58
76
|
export default ModuleFactory;
|
|
@@ -3,7 +3,7 @@ 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];
|
|
6
|
+
this.supportedModules = [ModuleNames.CHANNELS, ModuleNames.SESSIONS, ModuleNames.BOTS, ModuleNames.MESSAGES, ModuleNames.AGENTS, ModuleNames.CONTACTS, ModuleNames.CANNED_MESSAGES, ModuleNames.TEMPLATE_MESSAGES];
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
initialize(_ref) {
|
|
@@ -43,6 +43,14 @@ export default class IMSDK {
|
|
|
43
43
|
return this._moduleManager.getModule(ModuleNames.CONTACTS);
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
+
get cannedMessages() {
|
|
47
|
+
return this._moduleManager.getModule(ModuleNames.CANNED_MESSAGES);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
get templateMessages() {
|
|
51
|
+
return this._moduleManager.getModule(ModuleNames.TEMPLATE_MESSAGES);
|
|
52
|
+
}
|
|
53
|
+
|
|
46
54
|
hasModule(moduleName) {
|
|
47
55
|
return this._moduleManager.hasModule(moduleName);
|
|
48
56
|
}
|
|
@@ -55,6 +63,8 @@ export default class IMSDK {
|
|
|
55
63
|
messages: this.messages,
|
|
56
64
|
agents: this.agents,
|
|
57
65
|
contacts: this.contacts,
|
|
66
|
+
cannedMessages: this.cannedMessages,
|
|
67
|
+
templateMessages: this.templateMessages,
|
|
58
68
|
hasModule: this.hasModule.bind(this)
|
|
59
69
|
};
|
|
60
70
|
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { CannedMessageService } from '../../../application/services';
|
|
2
|
+
import { CannedMessageRepository } from '../../../infrastructure/repositories';
|
|
3
|
+
|
|
4
|
+
class CannedMessageSDK {
|
|
5
|
+
constructor(_ref) {
|
|
6
|
+
let {
|
|
7
|
+
config
|
|
8
|
+
} = _ref;
|
|
9
|
+
const {
|
|
10
|
+
cannedMessageAPI,
|
|
11
|
+
cannedMessageAdapter
|
|
12
|
+
} = config;
|
|
13
|
+
const cannedMessageRepository = new CannedMessageRepository({
|
|
14
|
+
cannedMessageAPI,
|
|
15
|
+
cannedMessageAdapter
|
|
16
|
+
}).toJSON();
|
|
17
|
+
const cannedMessageService = new CannedMessageService({
|
|
18
|
+
cannedMessageRepository
|
|
19
|
+
}).toJSON();
|
|
20
|
+
this.services = { ...cannedMessageService
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
toJSON() {
|
|
25
|
+
return this.services;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export default CannedMessageSDK;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { TemplateMessageService } from '../../../application/services';
|
|
2
|
+
import { TemplateMessageRepository } from '../../../infrastructure/repositories';
|
|
3
|
+
|
|
4
|
+
class TemplateMessageSDK {
|
|
5
|
+
constructor(_ref) {
|
|
6
|
+
let {
|
|
7
|
+
config
|
|
8
|
+
} = _ref;
|
|
9
|
+
const {
|
|
10
|
+
templateMessageAPI,
|
|
11
|
+
templateLanguageAdapter
|
|
12
|
+
} = config;
|
|
13
|
+
const templateMessageRepository = new TemplateMessageRepository({
|
|
14
|
+
templateMessageAPI,
|
|
15
|
+
templateLanguageAdapter
|
|
16
|
+
}).toJSON();
|
|
17
|
+
const templateMessageService = new TemplateMessageService({
|
|
18
|
+
templateMessageRepository
|
|
19
|
+
}).toJSON();
|
|
20
|
+
this.services = { ...templateMessageService
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
toJSON() {
|
|
25
|
+
return this.services;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export default TemplateMessageSDK;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { AdapterError } from '../../../core/errors';
|
|
2
|
+
import { CannedMessage } from '../../../domain/entities';
|
|
3
|
+
import { IAdapter } from '../../../domain/interfaces';
|
|
4
|
+
export default class CannedMessageAdapter extends IAdapter {
|
|
5
|
+
adapt(cannedMessageData) {
|
|
6
|
+
if (!cannedMessageData) {
|
|
7
|
+
throw new AdapterError('Canned Message data is required');
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
try {
|
|
11
|
+
return new CannedMessage({
|
|
12
|
+
id: cannedMessageData.id,
|
|
13
|
+
title: cannedMessageData.title,
|
|
14
|
+
tags: cannedMessageData.tags,
|
|
15
|
+
displayMessage: cannedMessageData.displayMessage,
|
|
16
|
+
type: cannedMessageData.type,
|
|
17
|
+
message: cannedMessageData.message,
|
|
18
|
+
status: cannedMessageData.status,
|
|
19
|
+
createdBy: cannedMessageData.createdBy,
|
|
20
|
+
isActive: cannedMessageData.isActive,
|
|
21
|
+
isPrivate: cannedMessageData.isPrivate,
|
|
22
|
+
translations: cannedMessageData.translations,
|
|
23
|
+
uuid: cannedMessageData.uuid,
|
|
24
|
+
meta: cannedMessageData.meta,
|
|
25
|
+
rejectedReason: cannedMessageData.rejectedReason,
|
|
26
|
+
modifiedTime: cannedMessageData.modifiedTime,
|
|
27
|
+
parameters: cannedMessageData.parameters || null
|
|
28
|
+
}).toJSON();
|
|
29
|
+
} catch (error) {
|
|
30
|
+
throw new AdapterError(`Failed to adapt canned message: ${error.message}`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { AdapterError } from '../../../core/errors';
|
|
2
|
+
import { CustomReplyExtension } from '../../../domain/entities';
|
|
3
|
+
import { IAdapter } from '../../../domain/interfaces';
|
|
4
|
+
export default class CustomReplyExtensionAdapter extends IAdapter {
|
|
5
|
+
adapt(customReplyExtData) {
|
|
6
|
+
if (!customReplyExtData) {
|
|
7
|
+
throw new AdapterError('custom Reply Extension Data is required');
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
try {
|
|
11
|
+
return new CustomReplyExtension({
|
|
12
|
+
id: customReplyExtData.id,
|
|
13
|
+
title: customReplyExtData.title,
|
|
14
|
+
message: customReplyExtData.message,
|
|
15
|
+
displayMessage: customReplyExtData.displayMessage,
|
|
16
|
+
webUrl: customReplyExtData.webUrl,
|
|
17
|
+
categoryName: customReplyExtData.categoryName
|
|
18
|
+
}).toJSON();
|
|
19
|
+
} catch (error) {
|
|
20
|
+
throw new AdapterError(`Failed to adapt custom Reply Extension Data: ${error.message}`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
}
|
|
@@ -4,4 +4,7 @@ export * from './bots';
|
|
|
4
4
|
export * from './attachments';
|
|
5
5
|
export * from './messages';
|
|
6
6
|
export * from './agents';
|
|
7
|
-
export * from './contacts';
|
|
7
|
+
export * from './contacts';
|
|
8
|
+
export * from './cannedMessages';
|
|
9
|
+
export * from './templateMessages';
|
|
10
|
+
export * from './customReplyExtension';
|
|
@@ -8,6 +8,10 @@ export default class MessageAdapter extends IAdapter {
|
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
try {
|
|
11
|
+
const {
|
|
12
|
+
template
|
|
13
|
+
} = messageData;
|
|
14
|
+
const normalizedTemplate = template && Object.keys(template).length > 0 ? template : null;
|
|
11
15
|
return new Message({
|
|
12
16
|
id: messageData.id,
|
|
13
17
|
sessionId: messageData.sessionId,
|
|
@@ -28,7 +32,7 @@ export default class MessageAdapter extends IAdapter {
|
|
|
28
32
|
contentType: messageData.contentType,
|
|
29
33
|
fullContentURL: messageData.fullContentURL,
|
|
30
34
|
attachment: messageData.attachment,
|
|
31
|
-
template:
|
|
35
|
+
template: normalizedTemplate,
|
|
32
36
|
type: messageData.type,
|
|
33
37
|
isRead: messageData.isRead,
|
|
34
38
|
article: messageData.article
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { AdapterError } from '../../../core/errors';
|
|
2
|
+
import { TemplateCreditExhaustStatus } from '../../../domain/entities';
|
|
3
|
+
import { IAdapter } from '../../../domain/interfaces';
|
|
4
|
+
export default class TemplateCreditExhaustStatusAdapter extends IAdapter {
|
|
5
|
+
adapt(templateCreditExhaustStatusData) {
|
|
6
|
+
if (!templateCreditExhaustStatusData) {
|
|
7
|
+
throw new AdapterError('Template Credit Exhaust Status data is required');
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
try {
|
|
11
|
+
return new TemplateCreditExhaustStatus({
|
|
12
|
+
code: templateCreditExhaustStatusData.code,
|
|
13
|
+
message: templateCreditExhaustStatusData.message
|
|
14
|
+
}).toJSON();
|
|
15
|
+
} catch (error) {
|
|
16
|
+
throw new AdapterError(`Failed to adapt Template Credit Exhaust Status: ${error.message}`);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { AdapterError } from '../../../core/errors';
|
|
2
|
+
import { TemplateLanguage } from '../../../domain/entities';
|
|
3
|
+
import { IAdapter } from '../../../domain/interfaces';
|
|
4
|
+
export default class TemplateLanguageAdapter extends IAdapter {
|
|
5
|
+
adapt(templateLanguageData) {
|
|
6
|
+
if (!templateLanguageData) {
|
|
7
|
+
throw new AdapterError('templateLanguage data is required');
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
try {
|
|
11
|
+
return new TemplateLanguage({
|
|
12
|
+
code: templateLanguageData.code,
|
|
13
|
+
language: templateLanguageData.language
|
|
14
|
+
}).toJSON();
|
|
15
|
+
} catch (error) {
|
|
16
|
+
throw new AdapterError(`Failed to adapt TemplateLanguage: ${error.message}`);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { getCannedMessageRequest, getCannedMessagesRequest, createCannedMessageRequest, updateCannedMessageRequest, deleteCannedMessageRequest, enableCannedMessageRequest, disableCannedMessageRequest } from '../../../domain/dto';
|
|
2
|
+
import { ICannedMessageRepository } from '../../../domain/interfaces/repositories';
|
|
3
|
+
export default class CannedMessageAPI extends ICannedMessageRepository {
|
|
4
|
+
async getCannedMessages() {
|
|
5
|
+
let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getCannedMessagesRequest();
|
|
6
|
+
const operation = 'getCannedMessages';
|
|
7
|
+
const httpRequest = await this.request({
|
|
8
|
+
operation,
|
|
9
|
+
request
|
|
10
|
+
});
|
|
11
|
+
return httpRequest;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
async getCannedMessage() {
|
|
15
|
+
let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getCannedMessageRequest();
|
|
16
|
+
const operation = 'getCannedMessage';
|
|
17
|
+
const httpRequest = await this.request({
|
|
18
|
+
operation,
|
|
19
|
+
request
|
|
20
|
+
});
|
|
21
|
+
return httpRequest;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
async createCannedMessage() {
|
|
25
|
+
let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : createCannedMessageRequest();
|
|
26
|
+
const operation = 'createCannedMessage';
|
|
27
|
+
const httpRequest = await this.request({
|
|
28
|
+
operation,
|
|
29
|
+
request
|
|
30
|
+
});
|
|
31
|
+
return httpRequest;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
async updateCannedMessage() {
|
|
35
|
+
let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : updateCannedMessageRequest();
|
|
36
|
+
const operation = 'updateCannedMessage';
|
|
37
|
+
const httpRequest = await this.request({
|
|
38
|
+
operation,
|
|
39
|
+
request
|
|
40
|
+
});
|
|
41
|
+
return httpRequest;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
async deleteCannedMessage() {
|
|
45
|
+
let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : deleteCannedMessageRequest();
|
|
46
|
+
const operation = 'deleteCannedMessage';
|
|
47
|
+
const httpRequest = await this.request({
|
|
48
|
+
operation,
|
|
49
|
+
request
|
|
50
|
+
});
|
|
51
|
+
return httpRequest;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
async enableCannedMessage() {
|
|
55
|
+
let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : enableCannedMessageRequest();
|
|
56
|
+
const operation = 'enableCannedMessage';
|
|
57
|
+
const httpRequest = await this.request({
|
|
58
|
+
operation,
|
|
59
|
+
request
|
|
60
|
+
});
|
|
61
|
+
return httpRequest;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
async disableCannedMessage() {
|
|
65
|
+
let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : disableCannedMessageRequest();
|
|
66
|
+
const operation = 'disableCannedMessage';
|
|
67
|
+
const httpRequest = await this.request({
|
|
68
|
+
operation,
|
|
69
|
+
request
|
|
70
|
+
});
|
|
71
|
+
return httpRequest;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { HTTP_METHODS } from '../../../../core/constants';
|
|
2
|
+
import { getCannedMessageRequest, getCannedMessagesRequest, createCannedMessageRequest, updateCannedMessageRequest, deleteCannedMessageRequest, enableCannedMessageRequest, disableCannedMessageRequest } from '../../../../domain/dto';
|
|
3
|
+
import constructCannedMessageEndPoint from './constructCannedMessageEndPoint';
|
|
4
|
+
import createAPIRegistry from '../createAPIRegistry';
|
|
5
|
+
|
|
6
|
+
function getCannedMessages() {
|
|
7
|
+
return createAPIRegistry(constructCannedMessageEndPoint(), HTTP_METHODS.GET, getCannedMessagesRequest());
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
function getCannedMessage() {
|
|
11
|
+
return createAPIRegistry(constructCannedMessageEndPoint('/:cannedMessageId'), HTTP_METHODS.GET, getCannedMessageRequest());
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
function createCannedMessage() {
|
|
15
|
+
return createAPIRegistry(constructCannedMessageEndPoint(), HTTP_METHODS.POST, createCannedMessageRequest());
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function updateCannedMessage() {
|
|
19
|
+
return createAPIRegistry(constructCannedMessageEndPoint('/:cannedMessageId'), HTTP_METHODS.PATCH, updateCannedMessageRequest());
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function enableCannedMessage() {
|
|
23
|
+
return createAPIRegistry(constructCannedMessageEndPoint('/:cannedMessageId/activation'), HTTP_METHODS.PATCH, enableCannedMessageRequest());
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function disableCannedMessage() {
|
|
27
|
+
return createAPIRegistry(constructCannedMessageEndPoint('/:cannedMessageId/activation'), HTTP_METHODS.DELETE, disableCannedMessageRequest());
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function deleteCannedMessage() {
|
|
31
|
+
return createAPIRegistry(constructCannedMessageEndPoint('/:cannedMessageId'), HTTP_METHODS.DELETE, deleteCannedMessageRequest());
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export default {
|
|
35
|
+
getCannedMessage,
|
|
36
|
+
getCannedMessages,
|
|
37
|
+
createCannedMessage,
|
|
38
|
+
updateCannedMessage,
|
|
39
|
+
deleteCannedMessage,
|
|
40
|
+
enableCannedMessage,
|
|
41
|
+
disableCannedMessage
|
|
42
|
+
};
|
|
@@ -5,6 +5,8 @@ import { botAPIRegistry } from './bots';
|
|
|
5
5
|
import { messageAPIRegistry } from './messages';
|
|
6
6
|
import { agentAPIRegistry } from './agents';
|
|
7
7
|
import { contactAPIRegistry } from './contacts';
|
|
8
|
+
import { cannedMessageAPIRegistry } from './cannedMessages';
|
|
9
|
+
import { templateMessageAPIRegistry } from './templateMessages';
|
|
8
10
|
import { ModuleNames } from '../../../core/constants';
|
|
9
11
|
const APIRegistry = {
|
|
10
12
|
[ModuleNames.CHANNELS]: channelAPIRegistry,
|
|
@@ -12,7 +14,9 @@ const APIRegistry = {
|
|
|
12
14
|
[ModuleNames.BOTS]: botAPIRegistry,
|
|
13
15
|
[ModuleNames.MESSAGES]: messageAPIRegistry,
|
|
14
16
|
[ModuleNames.AGENTS]: agentAPIRegistry,
|
|
15
|
-
[ModuleNames.CONTACTS]: contactAPIRegistry
|
|
17
|
+
[ModuleNames.CONTACTS]: contactAPIRegistry,
|
|
18
|
+
[ModuleNames.CANNED_MESSAGES]: cannedMessageAPIRegistry,
|
|
19
|
+
[ModuleNames.TEMPLATE_MESSAGES]: templateMessageAPIRegistry
|
|
16
20
|
};
|
|
17
21
|
export default function getRegistryConfig(module, operation) {
|
|
18
22
|
const moduleConfig = selectn(module, APIRegistry);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { IntegrationServices } from '../../../../domain/enum';
|
|
2
|
+
import createBaseUrl from '../createBaseUrl';
|
|
3
|
+
export default function constructTemplateMessageEndPoint(extra) {
|
|
4
|
+
const base = `/integrations/${IntegrationServices.WHATSAPP}`;
|
|
5
|
+
|
|
6
|
+
if (extra) {
|
|
7
|
+
return createBaseUrl(base + extra);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
return createBaseUrl(base);
|
|
11
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { HTTP_METHODS } from '../../../../core/constants';
|
|
2
|
+
import { getTemplateLanguagesRequest, getTemplateCreditExhaustStatusRequest } from '../../../../domain/dto';
|
|
3
|
+
import createAPIRegistry from '../createAPIRegistry';
|
|
4
|
+
import constructTemplateMessageEndPoint from './constructTemplateMessageEndPoint';
|
|
5
|
+
|
|
6
|
+
function getTemplateLanguages() {
|
|
7
|
+
return createAPIRegistry(constructTemplateMessageEndPoint('/templateLanguages'), HTTP_METHODS.POST, getTemplateLanguagesRequest());
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
function getWhatsAppTemplateCreditExhaustStatus() {
|
|
11
|
+
return createAPIRegistry(constructTemplateMessageEndPoint('/templateCreditExhaustStatus'), // NO I18N
|
|
12
|
+
HTTP_METHODS.POST, getTemplateCreditExhaustStatusRequest());
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export default {
|
|
16
|
+
getTemplateLanguages,
|
|
17
|
+
getWhatsAppTemplateCreditExhaustStatus
|
|
18
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { getTemplateLanguagesRequest, getTemplateCreditExhaustStatusRequest } from '../../../domain/dto';
|
|
2
|
+
import { ITemplateMessageRepository } from '../../../domain/interfaces/repositories';
|
|
3
|
+
export default class TemplateMessageAPI extends ITemplateMessageRepository {
|
|
4
|
+
async getTemplateLanguages() {
|
|
5
|
+
let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getTemplateLanguagesRequest();
|
|
6
|
+
const operation = 'getTemplateLanguages';
|
|
7
|
+
const httpRequest = await this.request({
|
|
8
|
+
request,
|
|
9
|
+
operation
|
|
10
|
+
});
|
|
11
|
+
return httpRequest;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
async getWhatsAppTemplateCreditExhaustStatus() {
|
|
15
|
+
let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getTemplateCreditExhaustStatusRequest();
|
|
16
|
+
const operation = 'getWhatsAppTemplateCreditExhaustStatus';
|
|
17
|
+
const httpRequest = await this.request({
|
|
18
|
+
request,
|
|
19
|
+
operation
|
|
20
|
+
});
|
|
21
|
+
return httpRequest;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { CannedMessageAdapter } from '../../adapters';
|
|
2
|
+
import { CannedMessageAPI } from '../../api';
|
|
3
|
+
import { ICannedMessageRepository } from '../../../domain/interfaces/repositories/cannedMessages';
|
|
4
|
+
import { ResponseTypes } from '../../../core/constants';
|
|
5
|
+
export default class CannedMessageRepository extends ICannedMessageRepository {
|
|
6
|
+
constructor(_ref) {
|
|
7
|
+
let {
|
|
8
|
+
cannedMessageAPI,
|
|
9
|
+
cannedMessageAdapter
|
|
10
|
+
} = _ref;
|
|
11
|
+
super();
|
|
12
|
+
this.defaultAPI = new CannedMessageAPI();
|
|
13
|
+
this.customAPI = cannedMessageAPI;
|
|
14
|
+
this.cannedMessageAPI = this.createAPIProxy(this.customAPI, this.defaultAPI);
|
|
15
|
+
this.cannedMessageAdapter = cannedMessageAdapter || new CannedMessageAdapter();
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
async invokeAPI(_ref2) {
|
|
19
|
+
let {
|
|
20
|
+
operation,
|
|
21
|
+
request,
|
|
22
|
+
adapter = this.cannedMessageAdapter,
|
|
23
|
+
responseType
|
|
24
|
+
} = _ref2;
|
|
25
|
+
return this.executeAPICall({
|
|
26
|
+
operation,
|
|
27
|
+
request,
|
|
28
|
+
apiProxy: this.cannedMessageAPI,
|
|
29
|
+
customAPI: this.customAPI,
|
|
30
|
+
adapter,
|
|
31
|
+
responseType
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
async getCannedMessages(request) {
|
|
36
|
+
return this.invokeAPI({
|
|
37
|
+
operation: 'getCannedMessages',
|
|
38
|
+
request,
|
|
39
|
+
responseType: ResponseTypes.LIST
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
async getCannedMessage(request) {
|
|
44
|
+
return this.invokeAPI({
|
|
45
|
+
operation: 'getCannedMessage',
|
|
46
|
+
request
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
async createCannedMessage(request) {
|
|
51
|
+
return this.invokeAPI({
|
|
52
|
+
operation: 'createCannedMessage',
|
|
53
|
+
request
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
async deleteCannedMessage(request) {
|
|
58
|
+
return this.invokeAPI({
|
|
59
|
+
operation: 'deleteCannedMessage',
|
|
60
|
+
request
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
async updateCannedMessage(request) {
|
|
65
|
+
return this.invokeAPI({
|
|
66
|
+
operation: 'updateCannedMessage',
|
|
67
|
+
request
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
async enableCannedMessage(request) {
|
|
72
|
+
return this.invokeAPI({
|
|
73
|
+
operation: 'enableCannedMessage',
|
|
74
|
+
request
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
async disableCannedMessage(request) {
|
|
79
|
+
return this.invokeAPI({
|
|
80
|
+
operation: 'disableCannedMessage',
|
|
81
|
+
request
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
toJSON() {
|
|
86
|
+
return {
|
|
87
|
+
getCannedMessages: this.getCannedMessages.bind(this),
|
|
88
|
+
getCannedMessage: this.getCannedMessage.bind(this),
|
|
89
|
+
createCannedMessage: this.createCannedMessage.bind(this),
|
|
90
|
+
updateCannedMessage: this.updateCannedMessage.bind(this),
|
|
91
|
+
deleteCannedMessage: this.deleteCannedMessage.bind(this),
|
|
92
|
+
enableCannedMssage: this.enableCannedMessage.bind(this),
|
|
93
|
+
disableCannedMessage: this.disableCannedMessage.bind(this)
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
}
|