@zohoim/client-sdk 0.0.1
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/agents/AgentService.js +21 -0
- package/es/application/services/agents/index.js +2 -0
- package/es/application/services/bots/BotService.js +21 -0
- package/es/application/services/bots/index.js +2 -0
- package/es/application/services/channels/ChannelAgentService.js +21 -0
- package/es/application/services/channels/ChannelService.js +21 -0
- package/es/application/services/channels/index.js +3 -0
- package/es/application/services/contacts/ContactService.js +21 -0
- package/es/application/services/contacts/index.js +2 -0
- package/es/application/services/index.js +6 -0
- package/es/application/services/messages/MessageService.js +56 -0
- package/es/application/services/messages/index.js +2 -0
- package/es/application/services/sessions/SessionService.js +51 -0
- package/es/application/services/sessions/index.js +2 -0
- package/es/core/constants/ModuleNames.js +9 -0
- package/es/core/constants/ResponseTypes.js +6 -0
- package/es/core/constants/index.js +6 -0
- package/es/core/errors/AdapterError.js +7 -0
- package/es/core/errors/ValidationError.js +7 -0
- package/es/core/errors/index.js +3 -0
- package/es/core/utils/ResponseUtils.js +24 -0
- package/es/core/utils/index.js +3 -0
- package/es/core/utils/validateSchema.js +76 -0
- package/es/domain/dto/RequestBuilder.js +44 -0
- package/es/domain/dto/agents/getAgentsRequest.js +12 -0
- package/es/domain/dto/agents/index.js +1 -0
- package/es/domain/dto/bots/getBotsRequest.js +15 -0
- package/es/domain/dto/bots/index.js +1 -0
- package/es/domain/dto/channels/agents/getChannelAgentsRequest.js +13 -0
- package/es/domain/dto/channels/agents/index.js +1 -0
- package/es/domain/dto/channels/getChannelsRequest.js +23 -0
- package/es/domain/dto/channels/index.js +3 -0
- package/es/domain/dto/contacts/getContactsRequest.js +11 -0
- package/es/domain/dto/contacts/index.js +1 -0
- package/es/domain/dto/index.js +6 -0
- package/es/domain/dto/messages/deleteMessageRequest.js +14 -0
- package/es/domain/dto/messages/getFullContentRequest.js +14 -0
- package/es/domain/dto/messages/getMessagesRequest.js +20 -0
- package/es/domain/dto/messages/index.js +8 -0
- package/es/domain/dto/messages/initiateSessionRequest.js +21 -0
- package/es/domain/dto/messages/resendMessageRequest.js +14 -0
- package/es/domain/dto/messages/searchMessagesRequest.js +22 -0
- package/es/domain/dto/messages/sendAttachmentRequest.js +20 -0
- package/es/domain/dto/messages/sendMessageRequest.js +17 -0
- package/es/domain/dto/sessions/getSessionAttachmentsRequest.js +13 -0
- package/es/domain/dto/sessions/getSessionLastMessagesRequest.js +13 -0
- package/es/domain/dto/sessions/getSessionRequest.js +13 -0
- package/es/domain/dto/sessions/getSessionsRequest.js +26 -0
- package/es/domain/dto/sessions/index.js +7 -0
- package/es/domain/dto/sessions/markSessionAsReadRequest.js +13 -0
- package/es/domain/dto/sessions/updateSessionAssigneeRequest.js +12 -0
- package/es/domain/dto/sessions/updateSessionStatusRequest.js +17 -0
- package/es/domain/entities/Actor/Actor.js +28 -0
- package/es/domain/entities/Actor/index.js +2 -0
- package/es/domain/entities/Agent/Agent.js +26 -0
- package/es/domain/entities/Agent/index.js +2 -0
- package/es/domain/entities/Attachment/Attachment.js +22 -0
- package/es/domain/entities/Attachment/index.js +2 -0
- package/es/domain/entities/Bot/Bot.js +23 -0
- package/es/domain/entities/Bot/index.js +2 -0
- package/es/domain/entities/Channel/Channel.js +38 -0
- package/es/domain/entities/Channel/index.js +2 -0
- package/es/domain/entities/Contact/Contact.js +22 -0
- package/es/domain/entities/Contact/index.js +2 -0
- package/es/domain/entities/Message/Action.js +19 -0
- package/es/domain/entities/Message/ExternalInfo.js +17 -0
- package/es/domain/entities/Message/Info.js +21 -0
- package/es/domain/entities/Message/Location.js +18 -0
- package/es/domain/entities/Message/Message.js +45 -0
- package/es/domain/entities/Message/MessageWithSession.js +21 -0
- package/es/domain/entities/Message/index.js +6 -0
- package/es/domain/entities/Session/Session.js +35 -0
- package/es/domain/entities/Session/index.js +2 -0
- package/es/domain/entities/index.js +8 -0
- package/es/domain/enum/actor/ActorType.js +7 -0
- package/es/domain/enum/actor/index.js +2 -0
- package/es/domain/enum/bot/BotServiceType.js +7 -0
- package/es/domain/enum/bot/index.js +2 -0
- package/es/domain/enum/index.js +5 -0
- package/es/domain/enum/integrationServices/IntegrationServices.js +11 -0
- package/es/domain/enum/integrationServices/index.js +2 -0
- package/es/domain/enum/message/ActionSubType.js +6 -0
- package/es/domain/enum/message/ActionType.js +6 -0
- package/es/domain/enum/message/ExternalInfoAction.js +9 -0
- package/es/domain/enum/message/InfoAction.js +17 -0
- package/es/domain/enum/message/InfoSessionStatus.js +10 -0
- package/es/domain/enum/message/MessageContentType.js +6 -0
- package/es/domain/enum/message/MessageDirection.js +6 -0
- package/es/domain/enum/message/MessageStatus.js +11 -0
- package/es/domain/enum/message/MessageType.js +11 -0
- package/es/domain/enum/message/index.js +10 -0
- package/es/domain/enum/session/SessionReplyStatus.js +20 -0
- package/es/domain/enum/session/SessionStatus.js +9 -0
- package/es/domain/enum/session/index.js +3 -0
- package/es/domain/interfaces/IAdapter.js +6 -0
- package/es/domain/interfaces/index.js +3 -0
- package/es/domain/interfaces/repositories/agents/IAgentRepository.js +17 -0
- package/es/domain/interfaces/repositories/agents/index.js +2 -0
- package/es/domain/interfaces/repositories/bots/IBotRepository.js +17 -0
- package/es/domain/interfaces/repositories/bots/index.js +2 -0
- package/es/domain/interfaces/repositories/channels/IChannelAgentRepository.js +17 -0
- package/es/domain/interfaces/repositories/channels/IChannelRepository.js +17 -0
- package/es/domain/interfaces/repositories/channels/index.js +3 -0
- package/es/domain/interfaces/repositories/contacts/IContactRepository.js +17 -0
- package/es/domain/interfaces/repositories/contacts/index.js +2 -0
- package/es/domain/interfaces/repositories/index.js +6 -0
- package/es/domain/interfaces/repositories/messages/IMessageRepository.js +52 -0
- package/es/domain/interfaces/repositories/messages/index.js +2 -0
- package/es/domain/interfaces/repositories/sessions/ISessionRepository.js +47 -0
- package/es/domain/interfaces/repositories/sessions/index.js +2 -0
- package/es/domain/schema/actor/ActorSchema.js +33 -0
- package/es/domain/schema/actor/AgentSchema.js +45 -0
- package/es/domain/schema/actor/index.js +3 -0
- package/es/domain/schema/attachment/AttachmentSchema.js +27 -0
- package/es/domain/schema/attachment/index.js +2 -0
- package/es/domain/schema/bot/BotSchema.js +33 -0
- package/es/domain/schema/bot/index.js +2 -0
- package/es/domain/schema/channel/ChannelSchema.js +49 -0
- package/es/domain/schema/channel/index.js +2 -0
- package/es/domain/schema/contact/ContactSchema.js +27 -0
- package/es/domain/schema/contact/index.js +2 -0
- package/es/domain/schema/index.js +8 -0
- package/es/domain/schema/integrationService/IntegrationServiceSchema.js +31 -0
- package/es/domain/schema/integrationService/index.js +2 -0
- package/es/domain/schema/message/ActionSchema.js +18 -0
- package/es/domain/schema/message/ExternalInfoSchema.js +9 -0
- package/es/domain/schema/message/InfoSchema.js +24 -0
- package/es/domain/schema/message/LocationSchema.js +11 -0
- package/es/domain/schema/message/MessageSchema.js +112 -0
- package/es/domain/schema/message/MessageWithSessionSchema.js +10 -0
- package/es/domain/schema/message/index.js +7 -0
- package/es/domain/schema/session/SessionSchema.js +82 -0
- package/es/domain/schema/session/index.js +2 -0
- package/es/frameworks/managers/ModuleFactory.js +58 -0
- package/es/frameworks/managers/ModuleManager.js +44 -0
- package/es/frameworks/managers/index.js +2 -0
- package/es/frameworks/sdk/IMSDK.js +62 -0
- package/es/frameworks/sdk/agents/AgentSDK.js +30 -0
- package/es/frameworks/sdk/agents/index.js +2 -0
- package/es/frameworks/sdk/bots/BotSDK.js +30 -0
- package/es/frameworks/sdk/bots/index.js +2 -0
- package/es/frameworks/sdk/channels/ChannelSDK.js +37 -0
- package/es/frameworks/sdk/channels/index.js +2 -0
- package/es/frameworks/sdk/contacts/ContactSDK.js +30 -0
- package/es/frameworks/sdk/contacts/index.js +2 -0
- package/es/frameworks/sdk/index.js +2 -0
- package/es/frameworks/sdk/messages/MessageSDK.js +32 -0
- package/es/frameworks/sdk/messages/index.js +2 -0
- package/es/frameworks/sdk/sessions/SessionSDK.js +34 -0
- package/es/frameworks/sdk/sessions/index.js +2 -0
- package/es/index.html +25 -0
- package/es/index.js +12 -0
- package/es/infrastructure/adapters/agents/AgentAdapter.js +28 -0
- package/es/infrastructure/adapters/agents/index.js +2 -0
- package/es/infrastructure/adapters/attachments/AttachmentAdapter.js +24 -0
- package/es/infrastructure/adapters/attachments/index.js +2 -0
- package/es/infrastructure/adapters/bots/BotAdapter.js +25 -0
- package/es/infrastructure/adapters/bots/index.js +2 -0
- package/es/infrastructure/adapters/channels/ChannelAdapter.js +29 -0
- package/es/infrastructure/adapters/channels/ChannelAgentAdapter.js +49 -0
- package/es/infrastructure/adapters/channels/index.js +3 -0
- package/es/infrastructure/adapters/contacts/ContactAdapter.js +24 -0
- package/es/infrastructure/adapters/contacts/index.js +2 -0
- package/es/infrastructure/adapters/index.js +7 -0
- package/es/infrastructure/adapters/messages/MessageAdapter.js +41 -0
- package/es/infrastructure/adapters/messages/MessageWithSessionAdapter.js +23 -0
- package/es/infrastructure/adapters/messages/index.js +2 -0
- package/es/infrastructure/adapters/sessions/SessionAdapter.js +36 -0
- package/es/infrastructure/adapters/sessions/index.js +2 -0
- package/es/infrastructure/api/BaseAPI.js +147 -0
- package/es/infrastructure/api/agents/AgentAPI.js +14 -0
- package/es/infrastructure/api/agents/index.js +2 -0
- package/es/infrastructure/api/bots/BotAPI.js +14 -0
- package/es/infrastructure/api/bots/index.js +2 -0
- package/es/infrastructure/api/channels/ChannelAPI.js +14 -0
- package/es/infrastructure/api/channels/ChannelAgentAPI.js +22 -0
- package/es/infrastructure/api/channels/index.js +3 -0
- package/es/infrastructure/api/contacts/ContactAPI.js +14 -0
- package/es/infrastructure/api/contacts/index.js +2 -0
- package/es/infrastructure/api/index.js +6 -0
- package/es/infrastructure/api/messages/MessageAPI.js +84 -0
- package/es/infrastructure/api/messages/index.js +2 -0
- package/es/infrastructure/api/registry/agents/agentAPIRegistry.js +12 -0
- package/es/infrastructure/api/registry/agents/constructAgentEndPoint.js +10 -0
- package/es/infrastructure/api/registry/agents/index.js +2 -0
- package/es/infrastructure/api/registry/bots/botAPIRegistry.js +12 -0
- package/es/infrastructure/api/registry/bots/constructBotEndPoint.js +10 -0
- package/es/infrastructure/api/registry/bots/index.js +2 -0
- package/es/infrastructure/api/registry/channels/channelAPIRegistry.js +16 -0
- package/es/infrastructure/api/registry/channels/channelAgentAPIRegistry.js +12 -0
- package/es/infrastructure/api/registry/channels/constructChannelEndPoint.js +10 -0
- package/es/infrastructure/api/registry/channels/index.js +2 -0
- package/es/infrastructure/api/registry/contacts/constructContactEndPoint.js +10 -0
- package/es/infrastructure/api/registry/contacts/contactAPIRegistry.js +12 -0
- package/es/infrastructure/api/registry/contacts/index.js +2 -0
- package/es/infrastructure/api/registry/createAPIRegistry.js +7 -0
- package/es/infrastructure/api/registry/createBaseUrl.js +3 -0
- package/es/infrastructure/api/registry/getRegistryConfig.js +26 -0
- package/es/infrastructure/api/registry/index.js +2 -0
- package/es/infrastructure/api/registry/messages/constructMessageEndPoint.js +4 -0
- package/es/infrastructure/api/registry/messages/index.js +2 -0
- package/es/infrastructure/api/registry/messages/messageAPIRegistry.js +57 -0
- package/es/infrastructure/api/registry/sessions/constructSessionEndPoint.js +10 -0
- package/es/infrastructure/api/registry/sessions/index.js +2 -0
- package/es/infrastructure/api/registry/sessions/sessionAPIRegistry.js +46 -0
- package/es/infrastructure/api/sessions/SessionAPI.js +74 -0
- package/es/infrastructure/api/sessions/index.js +2 -0
- package/es/infrastructure/config/configRegistry.js +27 -0
- package/es/infrastructure/config/index.js +2 -0
- package/es/infrastructure/repositories/agents/AgentRepository.js +49 -0
- package/es/infrastructure/repositories/agents/index.js +2 -0
- package/es/infrastructure/repositories/bots/BotRepository.js +49 -0
- package/es/infrastructure/repositories/bots/index.js +2 -0
- package/es/infrastructure/repositories/channels/ChannelAgentRepository.js +49 -0
- package/es/infrastructure/repositories/channels/ChannelRepository.js +49 -0
- package/es/infrastructure/repositories/channels/index.js +3 -0
- package/es/infrastructure/repositories/contacts/ContactRepository.js +49 -0
- package/es/infrastructure/repositories/contacts/index.js +2 -0
- package/es/infrastructure/repositories/index.js +6 -0
- package/es/infrastructure/repositories/messages/MessageRepository.js +111 -0
- package/es/infrastructure/repositories/messages/index.js +2 -0
- package/es/infrastructure/repositories/sessions/SessionRepository.js +105 -0
- package/es/infrastructure/repositories/sessions/index.js +2 -0
- package/package.json +36 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { getMessagesRequest, deleteMessageRequest, getFullContentRequest, resendMessageRequest, sendAttachmentRequest, sendMessageRequest, initiateSessionRequest, searchMessagesRequest } from "../../../domain/dto";
|
|
2
|
+
import { IMessageRepository } from "../../../domain/interfaces/repositories";
|
|
3
|
+
export default class MessageAPI extends IMessageRepository {
|
|
4
|
+
async getMessages() {
|
|
5
|
+
let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getMessagesRequest();
|
|
6
|
+
const operation = 'getMessages';
|
|
7
|
+
const httpRequest = await this.request({
|
|
8
|
+
operation,
|
|
9
|
+
request
|
|
10
|
+
});
|
|
11
|
+
return httpRequest;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
async getFullContent() {
|
|
15
|
+
let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getFullContentRequest();
|
|
16
|
+
const operation = 'getFullContent';
|
|
17
|
+
const httpRequest = await this.request({
|
|
18
|
+
operation,
|
|
19
|
+
request
|
|
20
|
+
});
|
|
21
|
+
return httpRequest;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
async sendMessage() {
|
|
25
|
+
let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : sendMessageRequest();
|
|
26
|
+
const operation = 'sendMessage';
|
|
27
|
+
const httpRequest = await this.request({
|
|
28
|
+
operation,
|
|
29
|
+
request
|
|
30
|
+
});
|
|
31
|
+
return httpRequest;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
async sendAttachment() {
|
|
35
|
+
let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : sendAttachmentRequest();
|
|
36
|
+
const operation = 'sendAttachment';
|
|
37
|
+
const httpRequest = await this.request({
|
|
38
|
+
operation,
|
|
39
|
+
request
|
|
40
|
+
});
|
|
41
|
+
return httpRequest;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
async resendMessage() {
|
|
45
|
+
let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : resendMessageRequest();
|
|
46
|
+
const operation = 'resendMessage';
|
|
47
|
+
const httpRequest = await this.request({
|
|
48
|
+
operation,
|
|
49
|
+
request
|
|
50
|
+
});
|
|
51
|
+
return httpRequest;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
async deleteMessage() {
|
|
55
|
+
let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : deleteMessageRequest();
|
|
56
|
+
const operation = 'deleteMessage';
|
|
57
|
+
const httpRequest = await this.request({
|
|
58
|
+
operation,
|
|
59
|
+
request
|
|
60
|
+
});
|
|
61
|
+
return httpRequest;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
async initiateSession() {
|
|
65
|
+
let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initiateSessionRequest();
|
|
66
|
+
const operation = 'initiateSession';
|
|
67
|
+
const httpRequest = await this.request({
|
|
68
|
+
operation,
|
|
69
|
+
request
|
|
70
|
+
});
|
|
71
|
+
return httpRequest;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
async searchMessages() {
|
|
75
|
+
let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : searchMessagesRequest();
|
|
76
|
+
const operation = 'searchMessages';
|
|
77
|
+
const httpRequest = await this.request({
|
|
78
|
+
operation,
|
|
79
|
+
request
|
|
80
|
+
});
|
|
81
|
+
return httpRequest;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { HTTP_METHODS } from "../../../../core/constants";
|
|
2
|
+
import { getAgentsRequest } from "../../../../domain/dto";
|
|
3
|
+
import createAPIRegistry from "../createAPIRegistry";
|
|
4
|
+
import constructAgentEndPoint from "./constructAgentEndPoint";
|
|
5
|
+
|
|
6
|
+
function getAgents() {
|
|
7
|
+
return createAPIRegistry(constructAgentEndPoint(), HTTP_METHODS.GET, getAgentsRequest());
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export default {
|
|
11
|
+
getAgents
|
|
12
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { HTTP_METHODS } from "../../../../core/constants";
|
|
2
|
+
import { getBotsRequest } from "../../../../domain/dto";
|
|
3
|
+
import createAPIRegistry from "../createAPIRegistry";
|
|
4
|
+
import constructBotEndPoint from "./constructBotEndPoint";
|
|
5
|
+
|
|
6
|
+
function getBots() {
|
|
7
|
+
return createAPIRegistry(constructBotEndPoint(), HTTP_METHODS.GET, getBotsRequest());
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export default {
|
|
11
|
+
getBots
|
|
12
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { HTTP_METHODS } from "../../../../core/constants";
|
|
2
|
+
import { getChannelsRequest } from "../../../../domain/dto";
|
|
3
|
+
import createAPIRegistry from "../createAPIRegistry";
|
|
4
|
+
import channelAgentAPIRegistry from "./channelAgentAPIRegistry";
|
|
5
|
+
import constructChannelEndPoint from "./constructChannelEndPoint";
|
|
6
|
+
|
|
7
|
+
function getChannels() {
|
|
8
|
+
return createAPIRegistry(constructChannelEndPoint(), HTTP_METHODS.GET, getChannelsRequest());
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const channelAPIRegistry = {
|
|
12
|
+
getChannels,
|
|
13
|
+
agents: { ...channelAgentAPIRegistry
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
export default channelAPIRegistry;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { HTTP_METHODS } from "../../../../core/constants";
|
|
2
|
+
import { getChannelAgentsRequest } from "../../../../domain/dto";
|
|
3
|
+
import createAPIRegistry from "../createAPIRegistry";
|
|
4
|
+
import constructChannelEndPoint from "./constructChannelEndPoint";
|
|
5
|
+
|
|
6
|
+
function getAgents() {
|
|
7
|
+
return createAPIRegistry(constructChannelEndPoint('/:channelId/agents'), HTTP_METHODS.GET, getChannelAgentsRequest());
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export default {
|
|
11
|
+
getAgents
|
|
12
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { HTTP_METHODS } from "../../../../core/constants";
|
|
2
|
+
import { getContactsRequest } from "../../../../domain/dto";
|
|
3
|
+
import createAPIRegistry from "../createAPIRegistry";
|
|
4
|
+
import constructContactEndPoint from "./constructContactEndPoint";
|
|
5
|
+
|
|
6
|
+
function getContacts() {
|
|
7
|
+
return createAPIRegistry(constructContactEndPoint(), HTTP_METHODS.GET, getContactsRequest());
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export default {
|
|
11
|
+
getContacts
|
|
12
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import selectn from 'selectn';
|
|
2
|
+
import { channelAPIRegistry } from "./channels";
|
|
3
|
+
import { sessionAPIRegistry } from "./sessions";
|
|
4
|
+
import { botAPIRegistry } from "./bots";
|
|
5
|
+
import { messageAPIRegistry } from "./messages";
|
|
6
|
+
import { agentAPIRegistry } from "./agents";
|
|
7
|
+
import { contactAPIRegistry } from "./contacts";
|
|
8
|
+
import { ModuleNames } from "../../../core/constants";
|
|
9
|
+
const APIRegistry = {
|
|
10
|
+
[ModuleNames.CHANNELS]: channelAPIRegistry,
|
|
11
|
+
[ModuleNames.SESSIONS]: sessionAPIRegistry,
|
|
12
|
+
[ModuleNames.BOTS]: botAPIRegistry,
|
|
13
|
+
[ModuleNames.MESSAGES]: messageAPIRegistry,
|
|
14
|
+
[ModuleNames.AGENTS]: agentAPIRegistry,
|
|
15
|
+
[ModuleNames.CONTACTS]: contactAPIRegistry
|
|
16
|
+
};
|
|
17
|
+
export default function getRegistryConfig(module, operation) {
|
|
18
|
+
const moduleConfig = selectn(module, APIRegistry);
|
|
19
|
+
|
|
20
|
+
if (!moduleConfig) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const operationConfig = moduleConfig[operation];
|
|
25
|
+
return operationConfig ? operationConfig() : null;
|
|
26
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { HTTP_METHODS } from "../../../../core/constants";
|
|
2
|
+
import { deleteMessageRequest, getFullContentRequest, getMessagesRequest, initiateSessionRequest, resendMessageRequest, sendAttachmentRequest, sendMessageRequest, searchMessagesRequest } from "../../../../domain/dto";
|
|
3
|
+
import constructChannelEndPoint from "../channels/constructChannelEndPoint";
|
|
4
|
+
import constructMessageEndPoint from "./constructMessageEndPoint";
|
|
5
|
+
import createAPIRegistry from "../createAPIRegistry";
|
|
6
|
+
import createBaseUrl from "../createBaseUrl";
|
|
7
|
+
const SINGLE_SESSION_URL = '/:sessionId';
|
|
8
|
+
const MESSAGES_URL = `${SINGLE_SESSION_URL}/messages`;
|
|
9
|
+
const SINGLE_MESSAGE_URL = `${MESSAGES_URL}/:messageId`;
|
|
10
|
+
const FULL_CONTENT_URL = `${SINGLE_MESSAGE_URL}/fullContent`;
|
|
11
|
+
const RESEND_MESSAGE_URL = `${SINGLE_MESSAGE_URL}/resend`;
|
|
12
|
+
const ATTACHMENTS_URL = `${SINGLE_SESSION_URL}/attachments`;
|
|
13
|
+
const INITIATE_SESSION_URL = '/:channelId/initiateSession';
|
|
14
|
+
const SEARCH_MESSAGES_URL = '/messages/search';
|
|
15
|
+
|
|
16
|
+
function getMessages() {
|
|
17
|
+
return createAPIRegistry(constructMessageEndPoint(MESSAGES_URL), HTTP_METHODS.GET, getMessagesRequest());
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function getFullContent() {
|
|
21
|
+
return createAPIRegistry(constructMessageEndPoint(FULL_CONTENT_URL), HTTP_METHODS.GET, getFullContentRequest());
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function sendMessage() {
|
|
25
|
+
return createAPIRegistry(constructMessageEndPoint(MESSAGES_URL), HTTP_METHODS.POST, sendMessageRequest());
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function sendAttachment() {
|
|
29
|
+
return createAPIRegistry(constructMessageEndPoint(ATTACHMENTS_URL), HTTP_METHODS.POST, sendAttachmentRequest());
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function resendMessage() {
|
|
33
|
+
return createAPIRegistry(constructMessageEndPoint(RESEND_MESSAGE_URL), HTTP_METHODS.POST, resendMessageRequest());
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function deleteMessage() {
|
|
37
|
+
return createAPIRegistry(constructMessageEndPoint(SINGLE_MESSAGE_URL), HTTP_METHODS.DELETE, deleteMessageRequest());
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function initiateSession() {
|
|
41
|
+
return createAPIRegistry(constructChannelEndPoint(INITIATE_SESSION_URL), HTTP_METHODS.POST, initiateSessionRequest());
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function searchMessages() {
|
|
45
|
+
return createAPIRegistry(createBaseUrl(SEARCH_MESSAGES_URL), HTTP_METHODS.GET, searchMessagesRequest());
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export default {
|
|
49
|
+
getMessages,
|
|
50
|
+
getFullContent,
|
|
51
|
+
sendMessage,
|
|
52
|
+
sendAttachment,
|
|
53
|
+
resendMessage,
|
|
54
|
+
deleteMessage,
|
|
55
|
+
initiateSession,
|
|
56
|
+
searchMessages
|
|
57
|
+
};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { HTTP_METHODS } from "../../../../core/constants";
|
|
2
|
+
import { updateSessionAssigneeRequest, getSessionAttachmentsRequest, getSessionLastMessagesRequest, getSessionRequest, getSessionsRequest, markSessionAsReadRequest, updateSessionStatusRequest } from "../../../../domain/dto";
|
|
3
|
+
import createAPIRegistry from "../createAPIRegistry";
|
|
4
|
+
import constructSessionEndPoint from "./constructSessionEndPoint";
|
|
5
|
+
const SINGLE_SESSION_URL = '/:sessionId';
|
|
6
|
+
const SESSION_ATTACHMENTS_URL = `${SINGLE_SESSION_URL}/attachments`;
|
|
7
|
+
const SESSION_LAST_MESSAGE = '/lastMessages';
|
|
8
|
+
const MARK_AS_READ = `${SINGLE_SESSION_URL}/markAsRead`;
|
|
9
|
+
|
|
10
|
+
function updateAssignee() {
|
|
11
|
+
return createAPIRegistry(constructSessionEndPoint(SINGLE_SESSION_URL), HTTP_METHODS.PATCH, updateSessionAssigneeRequest());
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
function getSessions() {
|
|
15
|
+
return createAPIRegistry(constructSessionEndPoint(), HTTP_METHODS.GET, getSessionsRequest());
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function getSession() {
|
|
19
|
+
return createAPIRegistry(constructSessionEndPoint(SINGLE_SESSION_URL), HTTP_METHODS.GET, getSessionRequest());
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function getSessionAttachments() {
|
|
23
|
+
return createAPIRegistry(constructSessionEndPoint(SESSION_ATTACHMENTS_URL), HTTP_METHODS.GET, getSessionAttachmentsRequest());
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function getSessionLastMessages() {
|
|
27
|
+
return createAPIRegistry(constructSessionEndPoint(SESSION_LAST_MESSAGE), HTTP_METHODS.GET, getSessionLastMessagesRequest());
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function markSessionAsRead() {
|
|
31
|
+
return createAPIRegistry(constructSessionEndPoint(MARK_AS_READ), HTTP_METHODS.PATCH, markSessionAsReadRequest());
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function updateSessionStatus() {
|
|
35
|
+
return createAPIRegistry(constructSessionEndPoint(SINGLE_SESSION_URL), HTTP_METHODS.PATCH, updateSessionStatusRequest());
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export default {
|
|
39
|
+
updateAssignee,
|
|
40
|
+
getSessions,
|
|
41
|
+
getSession,
|
|
42
|
+
getSessionAttachments,
|
|
43
|
+
getSessionLastMessages,
|
|
44
|
+
markSessionAsRead,
|
|
45
|
+
updateSessionStatus
|
|
46
|
+
};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { updateSessionAssigneeRequest, getSessionsRequest, getSessionRequest, getSessionAttachmentsRequest, getSessionLastMessagesRequest, markSessionAsReadRequest, updateSessionStatusRequest } from "../../../domain/dto";
|
|
2
|
+
import { ISessionRepository } from "../../../domain/interfaces/repositories";
|
|
3
|
+
export default class SessionAPI extends ISessionRepository {
|
|
4
|
+
async updateAssignee() {
|
|
5
|
+
let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : updateSessionAssigneeRequest();
|
|
6
|
+
const operation = 'updateAssignee';
|
|
7
|
+
const httpRequest = await this.request({
|
|
8
|
+
request,
|
|
9
|
+
operation
|
|
10
|
+
});
|
|
11
|
+
return httpRequest;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
async getSessions() {
|
|
15
|
+
let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getSessionsRequest();
|
|
16
|
+
const operation = 'getSessions';
|
|
17
|
+
const httpRequest = await this.request({
|
|
18
|
+
request,
|
|
19
|
+
operation
|
|
20
|
+
});
|
|
21
|
+
return httpRequest;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
async getSession() {
|
|
25
|
+
let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getSessionRequest();
|
|
26
|
+
const operation = 'getSession';
|
|
27
|
+
const httpRequest = await this.request({
|
|
28
|
+
request,
|
|
29
|
+
operation
|
|
30
|
+
});
|
|
31
|
+
return httpRequest;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
async getSessionAttachments() {
|
|
35
|
+
let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getSessionAttachmentsRequest();
|
|
36
|
+
const operation = 'getSessionAttachments';
|
|
37
|
+
const httpRequest = await this.request({
|
|
38
|
+
request,
|
|
39
|
+
operation
|
|
40
|
+
});
|
|
41
|
+
return httpRequest;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
async getSessionLastMessages() {
|
|
45
|
+
let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getSessionLastMessagesRequest();
|
|
46
|
+
const operation = 'getSessionLastMessages';
|
|
47
|
+
const httpRequest = await this.request({
|
|
48
|
+
request,
|
|
49
|
+
operation
|
|
50
|
+
});
|
|
51
|
+
return httpRequest;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
async markSessionAsRead() {
|
|
55
|
+
let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : markSessionAsReadRequest();
|
|
56
|
+
const operation = 'markSessionAsRead';
|
|
57
|
+
const httpRequest = await this.request({
|
|
58
|
+
request,
|
|
59
|
+
operation
|
|
60
|
+
});
|
|
61
|
+
return httpRequest;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
async updateSessionStatus() {
|
|
65
|
+
let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : updateSessionStatusRequest();
|
|
66
|
+
const operation = 'updateSessionStatus';
|
|
67
|
+
const httpRequest = await this.request({
|
|
68
|
+
request,
|
|
69
|
+
operation
|
|
70
|
+
});
|
|
71
|
+
return httpRequest;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
class ConfigRegistry {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.baseURL = null;
|
|
4
|
+
this.httpClient = null;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
setConfig(_ref) {
|
|
8
|
+
let {
|
|
9
|
+
baseURL,
|
|
10
|
+
httpClient
|
|
11
|
+
} = _ref;
|
|
12
|
+
this.baseURL = baseURL;
|
|
13
|
+
this.httpClient = httpClient;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
getBaseURL() {
|
|
17
|
+
return this.baseURL;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
getHttpClient() {
|
|
21
|
+
return this.httpClient;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
const configRegistry = new ConfigRegistry();
|
|
27
|
+
export default configRegistry;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { IAgentRepository } from "../../../domain/interfaces/repositories";
|
|
2
|
+
import { AgentAdapter } from "../../adapters";
|
|
3
|
+
import { AgentAPI } from "../../api";
|
|
4
|
+
import { ResponseTypes } from "../../../core/constants";
|
|
5
|
+
export default class AgentRepository extends IAgentRepository {
|
|
6
|
+
constructor(_ref) {
|
|
7
|
+
let {
|
|
8
|
+
agentAPI,
|
|
9
|
+
agentAdapter
|
|
10
|
+
} = _ref;
|
|
11
|
+
super();
|
|
12
|
+
this.defaultAPI = new AgentAPI();
|
|
13
|
+
this.customAPI = agentAPI;
|
|
14
|
+
this.agentAPI = this.createAPIProxy(this.customAPI, this.defaultAPI);
|
|
15
|
+
this.agentAdapter = agentAdapter || new AgentAdapter();
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
async invokeAPI(_ref2) {
|
|
19
|
+
let {
|
|
20
|
+
operation,
|
|
21
|
+
request,
|
|
22
|
+
adapter = this.agentAdapter,
|
|
23
|
+
responseType
|
|
24
|
+
} = _ref2;
|
|
25
|
+
return this.executeAPICall({
|
|
26
|
+
operation,
|
|
27
|
+
request,
|
|
28
|
+
apiProxy: this.agentAPI,
|
|
29
|
+
customAPI: this.customAPI,
|
|
30
|
+
adapter,
|
|
31
|
+
responseType
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
async getAgents(request) {
|
|
36
|
+
return this.invokeAPI({
|
|
37
|
+
operation: 'getAgents',
|
|
38
|
+
request,
|
|
39
|
+
responseType: ResponseTypes.LIST
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
toJSON() {
|
|
44
|
+
return {
|
|
45
|
+
getAgents: this.getAgents.bind(this)
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { IBotRepository } from "../../../domain/interfaces/repositories";
|
|
2
|
+
import { BotAdapter } from "../../adapters";
|
|
3
|
+
import { BotAPI } from "../../api";
|
|
4
|
+
import { ResponseTypes } from "../../../core/constants";
|
|
5
|
+
export default class BotRepository extends IBotRepository {
|
|
6
|
+
constructor(_ref) {
|
|
7
|
+
let {
|
|
8
|
+
botAPI,
|
|
9
|
+
botAdapter
|
|
10
|
+
} = _ref;
|
|
11
|
+
super();
|
|
12
|
+
this.defaultAPI = new BotAPI();
|
|
13
|
+
this.customAPI = botAPI;
|
|
14
|
+
this.botAPI = this.createAPIProxy(this.customAPI, this.defaultAPI);
|
|
15
|
+
this.botAdapter = botAdapter || new BotAdapter();
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
async invokeAPI(_ref2) {
|
|
19
|
+
let {
|
|
20
|
+
operation,
|
|
21
|
+
request,
|
|
22
|
+
adapter = this.botAdapter,
|
|
23
|
+
responseType
|
|
24
|
+
} = _ref2;
|
|
25
|
+
return this.executeAPICall({
|
|
26
|
+
operation,
|
|
27
|
+
request,
|
|
28
|
+
apiProxy: this.botAPI,
|
|
29
|
+
customAPI: this.customAPI,
|
|
30
|
+
adapter,
|
|
31
|
+
responseType
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
async getBots(request) {
|
|
36
|
+
return this.invokeAPI({
|
|
37
|
+
operation: 'getBots',
|
|
38
|
+
request,
|
|
39
|
+
responseType: ResponseTypes.LIST
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
toJSON() {
|
|
44
|
+
return {
|
|
45
|
+
getBots: this.getBots.bind(this)
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { IChannelAgentRepository } from "../../../domain/interfaces/repositories";
|
|
2
|
+
import { ChannelAgentAdapter } from "../../adapters";
|
|
3
|
+
import { ChannelAgentAPI } from "../../api";
|
|
4
|
+
import { ResponseTypes } from "../../../core/constants";
|
|
5
|
+
export default class ChannelAgentRepository extends IChannelAgentRepository {
|
|
6
|
+
constructor(_ref) {
|
|
7
|
+
let {
|
|
8
|
+
channelAgentAPI,
|
|
9
|
+
channelAgentAdapter
|
|
10
|
+
} = _ref;
|
|
11
|
+
super();
|
|
12
|
+
this.defaultAPI = new ChannelAgentAPI();
|
|
13
|
+
this.customAPI = channelAgentAPI;
|
|
14
|
+
this.channelAgentAPI = this.createAPIProxy(this.customAPI, this.defaultAPI);
|
|
15
|
+
this.channelAgentAdapter = channelAgentAdapter || new ChannelAgentAdapter();
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
async invokeAPI(_ref2) {
|
|
19
|
+
let {
|
|
20
|
+
operation,
|
|
21
|
+
request,
|
|
22
|
+
adapter = this.channelAgentAdapter,
|
|
23
|
+
responseType
|
|
24
|
+
} = _ref2;
|
|
25
|
+
return this.executeAPICall({
|
|
26
|
+
operation,
|
|
27
|
+
request,
|
|
28
|
+
apiProxy: this.channelAgentAPI,
|
|
29
|
+
customAPI: this.customAPI,
|
|
30
|
+
adapter,
|
|
31
|
+
responseType
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
async getAgents(request) {
|
|
36
|
+
return this.invokeAPI({
|
|
37
|
+
operation: 'getAgents',
|
|
38
|
+
request,
|
|
39
|
+
responseType: ResponseTypes.LIST
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
toJSON() {
|
|
44
|
+
return {
|
|
45
|
+
getAgents: this.getAgents.bind(this)
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
}
|