@zohoim/client-sdk 0.0.5-poc07 → 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/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/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/CannedMessage/CannedMessage.js +58 -0
- package/es/domain/entities/CannedMessage/index.js +2 -0
- package/es/domain/entities/CustomReplyExtension/CustomReplyExtension.js +26 -0
- package/es/domain/entities/CustomReplyExtension/index.js +2 -0
- 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/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
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { CannedMessageType } from '../../enum'; // import { ActorSchema } from '../actor';
|
|
2
|
+
|
|
3
|
+
import TranslationsSchema from './TranslationsSchema';
|
|
4
|
+
const CannedMessageSchema = {
|
|
5
|
+
id: {
|
|
6
|
+
type: 'string',
|
|
7
|
+
required: true
|
|
8
|
+
},
|
|
9
|
+
title: {
|
|
10
|
+
type: 'string',
|
|
11
|
+
required: true
|
|
12
|
+
},
|
|
13
|
+
tags: {
|
|
14
|
+
type: 'string',
|
|
15
|
+
required: false
|
|
16
|
+
},
|
|
17
|
+
status: {
|
|
18
|
+
type: 'string',
|
|
19
|
+
required: false
|
|
20
|
+
},
|
|
21
|
+
createdBy: {
|
|
22
|
+
type: 'object',
|
|
23
|
+
required: true // schema: ActorSchema
|
|
24
|
+
|
|
25
|
+
},
|
|
26
|
+
uuid: {
|
|
27
|
+
type: 'string',
|
|
28
|
+
required: false
|
|
29
|
+
},
|
|
30
|
+
displayMessage: {
|
|
31
|
+
type: 'string',
|
|
32
|
+
required: true
|
|
33
|
+
},
|
|
34
|
+
type: {
|
|
35
|
+
type: 'string',
|
|
36
|
+
required: true,
|
|
37
|
+
enum: Object.values(CannedMessageType)
|
|
38
|
+
},
|
|
39
|
+
translations: {
|
|
40
|
+
type: 'array',
|
|
41
|
+
required: false,
|
|
42
|
+
schema: TranslationsSchema
|
|
43
|
+
},
|
|
44
|
+
isPrivate: {
|
|
45
|
+
type: 'bool',
|
|
46
|
+
required: false
|
|
47
|
+
},
|
|
48
|
+
isActive: {
|
|
49
|
+
type: 'bool',
|
|
50
|
+
required: true
|
|
51
|
+
},
|
|
52
|
+
meta: {
|
|
53
|
+
type: 'array',
|
|
54
|
+
required: false
|
|
55
|
+
},
|
|
56
|
+
message: {
|
|
57
|
+
type: 'string',
|
|
58
|
+
required: false
|
|
59
|
+
},
|
|
60
|
+
parameters: {
|
|
61
|
+
type: 'object',
|
|
62
|
+
required: false
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
export default CannedMessageSchema;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { TemplateItemButtonType } from '../../../enum';
|
|
2
|
+
const TemplateItemButtonsSchema = {
|
|
3
|
+
type: {
|
|
4
|
+
type: 'string',
|
|
5
|
+
required: true,
|
|
6
|
+
enum: Object.values(TemplateItemButtonType)
|
|
7
|
+
},
|
|
8
|
+
message: {
|
|
9
|
+
type: 'string',
|
|
10
|
+
required: true
|
|
11
|
+
},
|
|
12
|
+
action: {
|
|
13
|
+
type: 'string',
|
|
14
|
+
required: true
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
export default TemplateItemButtonsSchema;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { TemplateItemFooterType } from '../../../enum';
|
|
2
|
+
const TemplateItemFooterSchema = {
|
|
3
|
+
type: {
|
|
4
|
+
type: 'string',
|
|
5
|
+
required: true,
|
|
6
|
+
enum: Object.values(TemplateItemFooterType)
|
|
7
|
+
},
|
|
8
|
+
message: {
|
|
9
|
+
type: 'string',
|
|
10
|
+
required: true
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
export default TemplateItemFooterSchema;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { TemplateItemHeaderType } from '../../../enum';
|
|
2
|
+
import { AttachmentSchema } from '../../attachment';
|
|
3
|
+
const TemplateItemHeaderSchema = {
|
|
4
|
+
attachment: {
|
|
5
|
+
type: 'string',
|
|
6
|
+
required: false,
|
|
7
|
+
schema: AttachmentSchema
|
|
8
|
+
},
|
|
9
|
+
type: {
|
|
10
|
+
type: 'string',
|
|
11
|
+
required: true,
|
|
12
|
+
enum: Object.values(TemplateItemHeaderType)
|
|
13
|
+
},
|
|
14
|
+
message: {
|
|
15
|
+
type: 'string',
|
|
16
|
+
required: false
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
export default TemplateItemHeaderSchema;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import TemplateItemButtonsSchema from './TemplateItemButtonsSchema';
|
|
2
|
+
import TemplateItemFooterSchema from './TemplateItemFooterSchema';
|
|
3
|
+
import TemplateItemHeaderSchema from './TemplateItemHeaderSchema';
|
|
4
|
+
export { TemplateItemButtonsSchema, TemplateItemFooterSchema, TemplateItemHeaderSchema };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import TemplateItemButtonsSchema from './TemplateItem/TemplateItemButtonsSchema';
|
|
2
|
+
import TemplateItemFooterSchema from './TemplateItem/TemplateItemFooterSchema';
|
|
3
|
+
import TemplateItemHeaderSchema from './TemplateItem/TemplateItemHeaderSchema';
|
|
4
|
+
const TemplateItemsSchema = {
|
|
5
|
+
header: {
|
|
6
|
+
type: 'string',
|
|
7
|
+
required: false,
|
|
8
|
+
schema: TemplateItemHeaderSchema
|
|
9
|
+
},
|
|
10
|
+
footer: {
|
|
11
|
+
type: 'string',
|
|
12
|
+
required: false,
|
|
13
|
+
schema: TemplateItemFooterSchema
|
|
14
|
+
},
|
|
15
|
+
buttons: {
|
|
16
|
+
type: 'string',
|
|
17
|
+
required: false,
|
|
18
|
+
schema: TemplateItemButtonsSchema
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
export default TemplateItemsSchema;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { CannedMessageStatus } from '../../enum';
|
|
2
|
+
import TemplateItemsSchema from './TemplateItemsSchema';
|
|
3
|
+
const TranslationsSchema = {
|
|
4
|
+
displayMessage: {
|
|
5
|
+
type: 'string',
|
|
6
|
+
required: true
|
|
7
|
+
},
|
|
8
|
+
id: {
|
|
9
|
+
type: 'string',
|
|
10
|
+
required: true
|
|
11
|
+
},
|
|
12
|
+
language: {
|
|
13
|
+
type: 'string',
|
|
14
|
+
required: true
|
|
15
|
+
},
|
|
16
|
+
message: {
|
|
17
|
+
type: 'string',
|
|
18
|
+
required: true
|
|
19
|
+
},
|
|
20
|
+
uuid: {
|
|
21
|
+
type: 'string',
|
|
22
|
+
required: true
|
|
23
|
+
},
|
|
24
|
+
failedReason: {
|
|
25
|
+
type: 'string',
|
|
26
|
+
required: false
|
|
27
|
+
},
|
|
28
|
+
modifiedTime: {
|
|
29
|
+
type: 'string',
|
|
30
|
+
required: false
|
|
31
|
+
},
|
|
32
|
+
status: {
|
|
33
|
+
type: 'string',
|
|
34
|
+
required: true,
|
|
35
|
+
enum: Object.values(CannedMessageStatus)
|
|
36
|
+
},
|
|
37
|
+
templateItems: {
|
|
38
|
+
type: 'object',
|
|
39
|
+
required: false,
|
|
40
|
+
schema: TemplateItemsSchema
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
export default TranslationsSchema;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import '../../enum';
|
|
2
|
+
const CustomReplyExtensionSchema = {
|
|
3
|
+
id: {
|
|
4
|
+
type: 'string',
|
|
5
|
+
required: true
|
|
6
|
+
},
|
|
7
|
+
title: {
|
|
8
|
+
type: 'string',
|
|
9
|
+
required: true
|
|
10
|
+
},
|
|
11
|
+
displayMessage: {
|
|
12
|
+
type: 'string',
|
|
13
|
+
required: true
|
|
14
|
+
},
|
|
15
|
+
message: {
|
|
16
|
+
type: 'string',
|
|
17
|
+
required: false
|
|
18
|
+
},
|
|
19
|
+
webUrl: {
|
|
20
|
+
type: 'string',
|
|
21
|
+
required: false
|
|
22
|
+
},
|
|
23
|
+
categoryName: {
|
|
24
|
+
type: 'string',
|
|
25
|
+
required: false
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
export default CustomReplyExtensionSchema;
|
|
@@ -5,4 +5,7 @@ export * from './attachment';
|
|
|
5
5
|
export * from './message';
|
|
6
6
|
export * from './channel';
|
|
7
7
|
export * from './integrationService';
|
|
8
|
-
export * from './contact';
|
|
8
|
+
export * from './contact';
|
|
9
|
+
export * from './cannedMessage';
|
|
10
|
+
export * from './templateMessage';
|
|
11
|
+
export * from './customReplyExtension';
|
|
@@ -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
|
+
}
|