@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,21 @@
|
|
|
1
|
+
import { IAgentRepository } from "../../../domain/interfaces/repositories";
|
|
2
|
+
export default class AgentService extends IAgentRepository {
|
|
3
|
+
constructor(_ref) {
|
|
4
|
+
let {
|
|
5
|
+
agentRepository
|
|
6
|
+
} = _ref;
|
|
7
|
+
super();
|
|
8
|
+
this.agentRepository = agentRepository;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
async getAgents(request) {
|
|
12
|
+
return this.agentRepository.getAgents(request);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
toJSON() {
|
|
16
|
+
return {
|
|
17
|
+
getAgents: this.getAgents.bind(this)
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { IBotRepository } from "../../../domain/interfaces/repositories";
|
|
2
|
+
export default class BotService extends IBotRepository {
|
|
3
|
+
constructor(_ref) {
|
|
4
|
+
let {
|
|
5
|
+
botRepository
|
|
6
|
+
} = _ref;
|
|
7
|
+
super();
|
|
8
|
+
this.botRepository = botRepository;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
async getBots(request) {
|
|
12
|
+
return this.botRepository.getBots(request);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
toJSON() {
|
|
16
|
+
return {
|
|
17
|
+
getBots: this.getBots.bind(this)
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { IChannelAgentRepository } from "../../../domain/interfaces/repositories";
|
|
2
|
+
export default class ChannelAgentService extends IChannelAgentRepository {
|
|
3
|
+
constructor(_ref) {
|
|
4
|
+
let {
|
|
5
|
+
channelAgentRepository
|
|
6
|
+
} = _ref;
|
|
7
|
+
super();
|
|
8
|
+
this.channelAgentRepository = channelAgentRepository;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
async getAgents(request) {
|
|
12
|
+
return this.channelAgentRepository.getAgents(request);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
toJSON() {
|
|
16
|
+
return {
|
|
17
|
+
getAgents: this.getAgents.bind(this)
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { IChannelRepository } from "../../../domain/interfaces/repositories";
|
|
2
|
+
export default class ChannelService extends IChannelRepository {
|
|
3
|
+
constructor(_ref) {
|
|
4
|
+
let {
|
|
5
|
+
channelRepository
|
|
6
|
+
} = _ref;
|
|
7
|
+
super();
|
|
8
|
+
this.channelRepository = channelRepository;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
async getChannels(request) {
|
|
12
|
+
return this.channelRepository.getChannels(request);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
toJSON() {
|
|
16
|
+
return {
|
|
17
|
+
getChannels: this.getChannels.bind(this)
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { IContactRepository } from "../../../domain/interfaces/repositories";
|
|
2
|
+
export default class ContactService extends IContactRepository {
|
|
3
|
+
constructor(_ref) {
|
|
4
|
+
let {
|
|
5
|
+
contactRepository
|
|
6
|
+
} = _ref;
|
|
7
|
+
super();
|
|
8
|
+
this.contactRepository = contactRepository;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
async getContacts(request) {
|
|
12
|
+
return this.contactRepository.getContacts(request);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
toJSON() {
|
|
16
|
+
return {
|
|
17
|
+
getContacts: this.getContacts.bind(this)
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { IMessageRepository } from "../../../domain/interfaces/repositories";
|
|
2
|
+
export default class MessageService extends IMessageRepository {
|
|
3
|
+
constructor(_ref) {
|
|
4
|
+
let {
|
|
5
|
+
messageRepository
|
|
6
|
+
} = _ref;
|
|
7
|
+
super();
|
|
8
|
+
this.messageRepository = messageRepository;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
async getMessages(request) {
|
|
12
|
+
return this.messageRepository.getMessages(request);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
async getFullContent(request) {
|
|
16
|
+
return this.messageRepository.getFullContent(request);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
async sendMessage(request) {
|
|
20
|
+
return this.messageRepository.sendMessage(request);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
async sendAttachment(request) {
|
|
24
|
+
return this.messageRepository.sendAttachment(request);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
async resendMessage(request) {
|
|
28
|
+
return this.messageRepository.resendMessage(request);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
async deleteMessage(request) {
|
|
32
|
+
return this.messageRepository.deleteMessage(request);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
async initiateSession(request) {
|
|
36
|
+
return this.messageRepository.initiateSession(request);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
async searchMessages(request) {
|
|
40
|
+
return this.messageRepository.searchMessages(request);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
toJSON() {
|
|
44
|
+
return {
|
|
45
|
+
getMessages: this.getMessages.bind(this),
|
|
46
|
+
getFullContent: this.getFullContent.bind(this),
|
|
47
|
+
sendMessage: this.sendMessage.bind(this),
|
|
48
|
+
sendAttachment: this.sendAttachment.bind(this),
|
|
49
|
+
resendMessage: this.resendMessage.bind(this),
|
|
50
|
+
deleteMessage: this.deleteMessage.bind(this),
|
|
51
|
+
initiateSession: this.initiateSession.bind(this),
|
|
52
|
+
searchMessages: this.searchMessages.bind(this)
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { ISessionRepository } from "../../../domain/interfaces/repositories";
|
|
2
|
+
export default class SessionService extends ISessionRepository {
|
|
3
|
+
constructor(_ref) {
|
|
4
|
+
let {
|
|
5
|
+
sessionRepository
|
|
6
|
+
} = _ref;
|
|
7
|
+
super();
|
|
8
|
+
this.sessionRepository = sessionRepository;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
async updateAssignee(request) {
|
|
12
|
+
return this.sessionRepository.updateAssignee(request);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
async getSessions(request) {
|
|
16
|
+
return this.sessionRepository.getSessions(request);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
async getSession(request) {
|
|
20
|
+
return this.sessionRepository.getSession(request);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
async getSessionAttachments(request) {
|
|
24
|
+
return this.sessionRepository.getSessionAttachments(request);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
async getSessionLastMessages(request) {
|
|
28
|
+
return this.sessionRepository.getSessionLastMessages(request);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
async markSessionAsRead(request) {
|
|
32
|
+
return this.sessionRepository.markSessionAsRead(request);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
async updateSessionStatus(request) {
|
|
36
|
+
return this.sessionRepository.updateSessionStatus(request);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
toJSON() {
|
|
40
|
+
return {
|
|
41
|
+
updateAssignee: this.updateAssignee.bind(this),
|
|
42
|
+
getSessions: this.getSessions.bind(this),
|
|
43
|
+
getSession: this.getSession.bind(this),
|
|
44
|
+
getSessionAttachments: this.getSessionAttachments.bind(this),
|
|
45
|
+
getSessionLastMessages: this.getSessionLastMessages.bind(this),
|
|
46
|
+
markSessionAsRead: this.markSessionAsRead.bind(this),
|
|
47
|
+
updateSessionStatus: this.updateSessionStatus.bind(this)
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { HttpMethods } from '@zohoim/http-client';
|
|
2
|
+
import ModuleNames from "./ModuleNames";
|
|
3
|
+
import ResponseTypes from "./ResponseTypes";
|
|
4
|
+
const IM_API_PREFIX = '/api/v1';
|
|
5
|
+
const HTTP_METHODS = HttpMethods;
|
|
6
|
+
export { ModuleNames, IM_API_PREFIX, HTTP_METHODS, ResponseTypes };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export default class ResponseUtils {
|
|
2
|
+
static adaptListResponse(response, adapter) {
|
|
3
|
+
if (!response) {
|
|
4
|
+
return response;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
if (!response.data) {
|
|
8
|
+
return response;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
return { ...response,
|
|
12
|
+
data: response.data.map(item => adapter(item))
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
static adaptSingleResponse(response, adapter) {
|
|
17
|
+
if (!response) {
|
|
18
|
+
return response;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
return adapter(response);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { ValidationError } from "../errors";
|
|
2
|
+
|
|
3
|
+
function validateSchemaKeys(schema, data) {
|
|
4
|
+
Object.keys(schema).forEach(key => {
|
|
5
|
+
if (!(key in data)) {
|
|
6
|
+
throw new ValidationError(`Key '${key}' is missing in the data`);
|
|
7
|
+
}
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
function isEmpty(value) {
|
|
12
|
+
if (value === null || value === undefined || value === '') {
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function validateRequiredCheck(_ref) {
|
|
20
|
+
let {
|
|
21
|
+
value,
|
|
22
|
+
rules,
|
|
23
|
+
path
|
|
24
|
+
} = _ref;
|
|
25
|
+
|
|
26
|
+
if (rules.required && isEmpty(value)) {
|
|
27
|
+
throw new ValidationError(rules.message || `${path} is required`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function validateEnumCheck(_ref2) {
|
|
32
|
+
let {
|
|
33
|
+
value,
|
|
34
|
+
rules,
|
|
35
|
+
path
|
|
36
|
+
} = _ref2;
|
|
37
|
+
|
|
38
|
+
if (rules.enum && !rules.enum.includes(value)) {
|
|
39
|
+
throw new ValidationError(`${path} must be one of: ${rules.enum.join(', ')}`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export const validateSchema = (schema, data) => {
|
|
44
|
+
const validate = function (schemaObj, dataObj) {
|
|
45
|
+
let path = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
|
|
46
|
+
// Check if all schema keys exist in data
|
|
47
|
+
validateSchemaKeys(schemaObj, dataObj); // Validate each field
|
|
48
|
+
|
|
49
|
+
Object.entries(schemaObj).forEach(_ref3 => {
|
|
50
|
+
let [field, rules] = _ref3;
|
|
51
|
+
const value = dataObj[field];
|
|
52
|
+
const fieldPath = path ? `${path}.${field}` : field;
|
|
53
|
+
validateRequiredCheck({
|
|
54
|
+
value,
|
|
55
|
+
rules,
|
|
56
|
+
path: fieldPath
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
if (value !== null && value !== undefined) {
|
|
60
|
+
// Enum validation
|
|
61
|
+
validateEnumCheck({
|
|
62
|
+
value,
|
|
63
|
+
rules,
|
|
64
|
+
path: fieldPath
|
|
65
|
+
}); // Nested object validation
|
|
66
|
+
|
|
67
|
+
if (rules.type === 'object' && rules.schema) {
|
|
68
|
+
validate(rules.schema, value, fieldPath);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
return dataObj;
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
return validate(schema, data);
|
|
76
|
+
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
class RequestBuilder {
|
|
2
|
+
constructor() {
|
|
3
|
+
this._params = {};
|
|
4
|
+
this._query = {};
|
|
5
|
+
this._body = {};
|
|
6
|
+
this._context = {};
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
withParams() {
|
|
10
|
+
let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
11
|
+
this._params = { ...this._params,
|
|
12
|
+
...params
|
|
13
|
+
};
|
|
14
|
+
return this;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
withQuery() {
|
|
18
|
+
let query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
19
|
+
this._query = { ...this._query,
|
|
20
|
+
...query
|
|
21
|
+
};
|
|
22
|
+
return this;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
withBody() {
|
|
26
|
+
let body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
27
|
+
this._body = { ...this._body,
|
|
28
|
+
...body
|
|
29
|
+
};
|
|
30
|
+
return this;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
build() {
|
|
34
|
+
return {
|
|
35
|
+
params: this._params,
|
|
36
|
+
query: this._query,
|
|
37
|
+
body: Object.keys(this._body).length ? this._body : undefined,
|
|
38
|
+
context: this._context
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export default RequestBuilder;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as getAgentsRequest } from "./getAgentsRequest";
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import RequestBuilder from "../RequestBuilder";
|
|
2
|
+
|
|
3
|
+
function getBotsRequest() {
|
|
4
|
+
return new RequestBuilder().withQuery({
|
|
5
|
+
from: 0,
|
|
6
|
+
limit: 10,
|
|
7
|
+
modifiedAfter: null,
|
|
8
|
+
botServiceId: null,
|
|
9
|
+
externalAccountId: null,
|
|
10
|
+
searchStr: null,
|
|
11
|
+
isActive: false
|
|
12
|
+
}).build();
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export default getBotsRequest;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as getBotsRequest } from "./getBotsRequest";
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import RequestBuilder from "../../RequestBuilder";
|
|
2
|
+
|
|
3
|
+
function getChannelAgentsRequest() {
|
|
4
|
+
return new RequestBuilder().withQuery({
|
|
5
|
+
from: 0,
|
|
6
|
+
limit: 10,
|
|
7
|
+
searchStr: null
|
|
8
|
+
}).withParams({
|
|
9
|
+
channelId: null
|
|
10
|
+
}).build();
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export default getChannelAgentsRequest;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as getChannelAgentsRequest } from "./getChannelAgentsRequest";
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import RequestBuilder from "../RequestBuilder";
|
|
2
|
+
|
|
3
|
+
function getChannelsRequest() {
|
|
4
|
+
return new RequestBuilder().withQuery({
|
|
5
|
+
from: null,
|
|
6
|
+
limit: null,
|
|
7
|
+
modifiedAfter: null,
|
|
8
|
+
integrationServiceId: null,
|
|
9
|
+
externalAccountId: null,
|
|
10
|
+
isSandBox: null,
|
|
11
|
+
isActive: null,
|
|
12
|
+
includeDeleted: null,
|
|
13
|
+
onlyDeleted: null,
|
|
14
|
+
configName: null,
|
|
15
|
+
configValue: null,
|
|
16
|
+
channelIds: null,
|
|
17
|
+
include: null,
|
|
18
|
+
// meta|configParams
|
|
19
|
+
includeUnsubscribed: null
|
|
20
|
+
}).build();
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export default getChannelsRequest;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as getContactsRequest } from "./getContactsRequest";
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import RequestBuilder from "../RequestBuilder";
|
|
2
|
+
|
|
3
|
+
function deleteMessageRequest() {
|
|
4
|
+
let {
|
|
5
|
+
params = {}
|
|
6
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
7
|
+
return new RequestBuilder().withParams({
|
|
8
|
+
sessionId: null,
|
|
9
|
+
messageId: null,
|
|
10
|
+
...params
|
|
11
|
+
}).build();
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export default deleteMessageRequest;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import RequestBuilder from "../RequestBuilder";
|
|
2
|
+
|
|
3
|
+
function getFullContentRequest() {
|
|
4
|
+
let {
|
|
5
|
+
params = {}
|
|
6
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
7
|
+
return new RequestBuilder().withParams({
|
|
8
|
+
sessionId: null,
|
|
9
|
+
messageId: null,
|
|
10
|
+
...params
|
|
11
|
+
}).build();
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export default getFullContentRequest;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import RequestBuilder from "../RequestBuilder";
|
|
2
|
+
|
|
3
|
+
function getMessagesRequest() {
|
|
4
|
+
let {
|
|
5
|
+
query = {},
|
|
6
|
+
params = {}
|
|
7
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
8
|
+
return new RequestBuilder().withParams({
|
|
9
|
+
sessionId: null,
|
|
10
|
+
...params
|
|
11
|
+
}).withQuery({
|
|
12
|
+
from: 0,
|
|
13
|
+
limit: 10,
|
|
14
|
+
modifiedAfter: null,
|
|
15
|
+
type: null,
|
|
16
|
+
...query
|
|
17
|
+
}).build();
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export default getMessagesRequest;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { default as getMessagesRequest } from "./getMessagesRequest";
|
|
2
|
+
export { default as deleteMessageRequest } from "./deleteMessageRequest";
|
|
3
|
+
export { default as getFullContentRequest } from "./getFullContentRequest";
|
|
4
|
+
export { default as resendMessageRequest } from "./resendMessageRequest";
|
|
5
|
+
export { default as sendAttachmentRequest } from "./sendAttachmentRequest";
|
|
6
|
+
export { default as sendMessageRequest } from "./sendMessageRequest";
|
|
7
|
+
export { default as initiateSessionRequest } from "./initiateSessionRequest";
|
|
8
|
+
export { default as searchMessagesRequest } from "./searchMessagesRequest";
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import RequestBuilder from "../RequestBuilder";
|
|
2
|
+
|
|
3
|
+
function initiateSessionRequest() {
|
|
4
|
+
let {
|
|
5
|
+
params = {},
|
|
6
|
+
body = {}
|
|
7
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
8
|
+
return new RequestBuilder().withParams({
|
|
9
|
+
channelId: null,
|
|
10
|
+
...params
|
|
11
|
+
}).withBody({
|
|
12
|
+
receiverId: null,
|
|
13
|
+
receiverType: null,
|
|
14
|
+
cannedMessageId: null,
|
|
15
|
+
language: null,
|
|
16
|
+
parameters: {},
|
|
17
|
+
...body
|
|
18
|
+
}).build();
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export default initiateSessionRequest;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import RequestBuilder from "../RequestBuilder";
|
|
2
|
+
|
|
3
|
+
function resendMessageRequest() {
|
|
4
|
+
let {
|
|
5
|
+
params = {}
|
|
6
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
7
|
+
return new RequestBuilder().withParams({
|
|
8
|
+
sessionId: null,
|
|
9
|
+
messageId: null,
|
|
10
|
+
...params
|
|
11
|
+
}).build();
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export default resendMessageRequest;
|