@zohoim/client-sdk 1.0.0-poc82 → 1.0.0-poc84
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/messages/MessageService.js +0 -5
- package/es/application/services/sessions/SessionService.js +5 -0
- package/es/domain/dto/messages/index.js +0 -1
- package/es/domain/dto/messages/initiateSessionRequest.js +0 -1
- package/es/domain/dto/messages/sendAttachmentRequest.js +1 -0
- package/es/domain/dto/messages/sendMessageRequest.js +0 -2
- package/es/domain/dto/sessions/index.js +2 -1
- package/es/domain/dto/sessions/markSessionAsReadRequest.js +1 -5
- package/es/domain/dto/sessions/pickupSessionRequest.js +9 -0
- package/es/domain/dto/sessions/updateSessionStatusRequest.js +1 -0
- package/es/domain/entities/Actor/Actor.js +1 -5
- package/es/domain/entities/Message/Action.js +4 -3
- package/es/domain/entities/Message/ExternalInfo.js +0 -9
- package/es/domain/entities/Message/Info.js +6 -8
- package/es/domain/entities/Message/Message.js +5 -21
- package/es/domain/entities/Session/Session.js +6 -2
- package/es/domain/enum/actor/ActorType.js +1 -1
- package/es/domain/enum/attachment/AttachmentStatus.js +3 -1
- package/es/domain/enum/message/MessageDirection.js +2 -2
- package/es/domain/enum/message/MessageType.js +1 -5
- package/es/domain/interfaces/repositories/messages/IMessageRepository.js +1 -6
- package/es/domain/interfaces/repositories/sessions/ISessionRepository.js +6 -1
- package/es/domain/schema/message/MessageSchema.js +0 -4
- package/es/infrastructure/api/BaseAPI.js +56 -9
- package/es/infrastructure/api/messages/MessageAPI.js +1 -11
- package/es/infrastructure/api/registry/bots/botAPIRegistry.js +2 -1
- package/es/infrastructure/api/registry/messages/messageAPIRegistry.js +1 -6
- package/es/infrastructure/api/registry/sessions/sessionAPIRegistry.js +8 -2
- package/es/infrastructure/api/sessions/SessionAPI.js +11 -1
- package/es/infrastructure/repositories/messages/MessageRepository.js +0 -8
- package/es/infrastructure/repositories/sessions/SessionRepository.js +8 -0
- package/package.json +1 -1
- package/es/domain/dto/messages/getMessageRequest.js +0 -14
- package/es/infrastructure/api/UrlBuilder.js +0 -53
|
@@ -12,10 +12,6 @@ export default class MessageService extends IMessageRepository {
|
|
|
12
12
|
return this.messageRepository.getMessages(request);
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
async getMessage(request) {
|
|
16
|
-
return this.messageRepository.getMessage(request);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
15
|
async getFullContent(request) {
|
|
20
16
|
return this.messageRepository.getFullContent(request);
|
|
21
17
|
}
|
|
@@ -47,7 +43,6 @@ export default class MessageService extends IMessageRepository {
|
|
|
47
43
|
toJSON() {
|
|
48
44
|
return {
|
|
49
45
|
getMessages: this.getMessages.bind(this),
|
|
50
|
-
getMessage: this.getMessage.bind(this),
|
|
51
46
|
getFullContent: this.getFullContent.bind(this),
|
|
52
47
|
sendMessage: this.sendMessage.bind(this),
|
|
53
48
|
sendAttachment: this.sendAttachment.bind(this),
|
|
@@ -8,6 +8,10 @@ export default class SessionService extends ISessionRepository {
|
|
|
8
8
|
this.sessionRepository = sessionRepository;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
+
async pickupSession(request) {
|
|
12
|
+
return this.sessionRepository.pickupSession(request);
|
|
13
|
+
}
|
|
14
|
+
|
|
11
15
|
async updateAssignee(request) {
|
|
12
16
|
return this.sessionRepository.updateAssignee(request);
|
|
13
17
|
}
|
|
@@ -38,6 +42,7 @@ export default class SessionService extends ISessionRepository {
|
|
|
38
42
|
|
|
39
43
|
toJSON() {
|
|
40
44
|
return {
|
|
45
|
+
pickupSession: this.pickupSession.bind(this),
|
|
41
46
|
updateAssignee: this.updateAssignee.bind(this),
|
|
42
47
|
getSessions: this.getSessions.bind(this),
|
|
43
48
|
getSession: this.getSession.bind(this),
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
export { default as getMessagesRequest } from "./getMessagesRequest";
|
|
2
|
-
export { default as getMessageRequest } from "./getMessageRequest";
|
|
3
2
|
export { default as deleteMessageRequest } from "./deleteMessageRequest";
|
|
4
3
|
export { default as getFullContentRequest } from "./getFullContentRequest";
|
|
5
4
|
export { default as resendMessageRequest } from "./resendMessageRequest";
|
|
@@ -4,4 +4,5 @@ export { default as getSessionRequest } from "./getSessionRequest";
|
|
|
4
4
|
export { default as getSessionAttachmentsRequest } from "./getSessionAttachmentsRequest";
|
|
5
5
|
export { default as getSessionLastMessagesRequest } from "./getSessionLastMessagesRequest";
|
|
6
6
|
export { default as markSessionAsReadRequest } from "./markSessionAsReadRequest";
|
|
7
|
-
export { default as updateSessionStatusRequest } from "./updateSessionStatusRequest";
|
|
7
|
+
export { default as updateSessionStatusRequest } from "./updateSessionStatusRequest";
|
|
8
|
+
export { default as pickupSessionRequest } from "./pickupSessionRequest";
|
|
@@ -2,15 +2,11 @@ import RequestBuilder from "../RequestBuilder";
|
|
|
2
2
|
|
|
3
3
|
function markSessionAsReadRequest() {
|
|
4
4
|
let {
|
|
5
|
-
body = {}
|
|
6
|
-
params = {}
|
|
5
|
+
body = {}
|
|
7
6
|
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
8
7
|
return new RequestBuilder().withBody({
|
|
9
8
|
lastSeenMessageId: null,
|
|
10
9
|
...body
|
|
11
|
-
}).withParams({
|
|
12
|
-
sessionId: null,
|
|
13
|
-
...params
|
|
14
10
|
}).build();
|
|
15
11
|
}
|
|
16
12
|
|
|
@@ -21,14 +21,10 @@ export default class Actor {
|
|
|
21
21
|
return type === ActorType.BOT;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
static
|
|
24
|
+
static isEndUser(type) {
|
|
25
25
|
return type === ActorType.ENDUSER;
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
static isSystemMessage(type) {
|
|
29
|
-
return type === ActorType.SYSTEM;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
28
|
toJSON() {
|
|
33
29
|
return { ...this.data
|
|
34
30
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { validateSchema } from "../../../core/utils";
|
|
2
|
-
import { ActionSchema } from "../../schema";
|
|
3
2
|
import { ActionType } from "../../enum";
|
|
3
|
+
import { ActionSchema } from "../../schema";
|
|
4
4
|
export default class Action {
|
|
5
5
|
constructor() {
|
|
6
6
|
let data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
@@ -12,8 +12,9 @@ export default class Action {
|
|
|
12
12
|
};
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
static isTransferAction(
|
|
16
|
-
|
|
15
|
+
static isTransferAction() {
|
|
16
|
+
let action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
17
|
+
return action && action.type === ActionType.TRANSFER;
|
|
17
18
|
}
|
|
18
19
|
|
|
19
20
|
toJSON() {
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { validateSchema } from "../../../core/utils";
|
|
2
|
-
import { ExternalInfoAction } from "../../enum";
|
|
3
2
|
import { ExternalInfoSchema } from "../../schema";
|
|
4
3
|
export default class ExternalInfo {
|
|
5
4
|
constructor() {
|
|
@@ -10,14 +9,6 @@ export default class ExternalInfo {
|
|
|
10
9
|
};
|
|
11
10
|
}
|
|
12
11
|
|
|
13
|
-
static isGCConversationEnded(action) {
|
|
14
|
-
return action === ExternalInfoAction.GC_CONVERSATION_ENDED;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
static isZIAConversationEnded(action) {
|
|
18
|
-
return action === ExternalInfoAction.ZIA_CONVERSATION_ENDED;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
12
|
toJSON() {
|
|
22
13
|
return { ...this.data
|
|
23
14
|
};
|
|
@@ -14,16 +14,14 @@ export default class Info {
|
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
static
|
|
18
|
-
|
|
17
|
+
static isAutoAssignMessage() {
|
|
18
|
+
let info = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
19
|
+
return info && info.action === InfoAction.CHAT_AUTO_ASSIGN;
|
|
19
20
|
}
|
|
20
21
|
|
|
21
|
-
static
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
static isEndSession(action) {
|
|
26
|
-
return action === InfoAction.END_SESSION;
|
|
22
|
+
static isTransferMessage() {
|
|
23
|
+
let info = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
24
|
+
return info && info.action === InfoAction.CHAT_TRANSFER;
|
|
27
25
|
}
|
|
28
26
|
|
|
29
27
|
toJSON() {
|
|
@@ -34,8 +34,7 @@ export default class Message {
|
|
|
34
34
|
template: validatedData.template,
|
|
35
35
|
type: validatedData.type,
|
|
36
36
|
isRead: validatedData.isRead,
|
|
37
|
-
article: validatedData.article
|
|
38
|
-
webUrl: validatedData.webUrl
|
|
37
|
+
article: validatedData.article
|
|
39
38
|
};
|
|
40
39
|
}
|
|
41
40
|
|
|
@@ -63,27 +62,12 @@ export default class Message {
|
|
|
63
62
|
return type === MessageTypes.ATTACHMENT;
|
|
64
63
|
}
|
|
65
64
|
|
|
66
|
-
static
|
|
67
|
-
return type === MessageTypes.
|
|
65
|
+
static isActionMessage(type) {
|
|
66
|
+
return type === MessageTypes.ACTION;
|
|
68
67
|
}
|
|
69
68
|
|
|
70
|
-
static
|
|
71
|
-
return !!
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
static isHapinessRating(systemMessageType) {
|
|
75
|
-
return systemMessageType === MessageTypes.CX_HAPPINESS_SURVEY;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
static isFailed(status) {
|
|
79
|
-
return status === MessageStatus.FAILED;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
static getMetaValue() {
|
|
83
|
-
let meta = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
84
|
-
let key = arguments.length > 1 ? arguments[1] : undefined;
|
|
85
|
-
const item = meta.find(item => item.name === key);
|
|
86
|
-
return item ? item.value : '';
|
|
69
|
+
static isAutoSent(systemMsgType) {
|
|
70
|
+
return !!systemMsgType;
|
|
87
71
|
}
|
|
88
72
|
|
|
89
73
|
toJSON() {
|
|
@@ -40,8 +40,12 @@ export default class Session {
|
|
|
40
40
|
return replyStatus === SessionReplyStatus.CHANNEL_INACTIVE;
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
static
|
|
44
|
-
return
|
|
43
|
+
static isOpen(sessionStatus) {
|
|
44
|
+
return sessionStatus === SessionStatus.OPEN;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
static isCreated(sessionStatus) {
|
|
48
|
+
return sessionStatus === SessionStatus.CREATED;
|
|
45
49
|
}
|
|
46
50
|
|
|
47
51
|
static isAssignedToOtherService(replyStatus) {
|
|
@@ -6,10 +6,6 @@ const MessageTypes = {
|
|
|
6
6
|
LAYOUT: 'LAYOUT',
|
|
7
7
|
EXTERNAL_INFO: 'EXTERNAL_INFO',
|
|
8
8
|
TEMPLATE: 'TEMPLATE',
|
|
9
|
-
ACTION: 'ACTION'
|
|
10
|
-
WELCOMEMSG: 'WELCOMEMSG',
|
|
11
|
-
WORKFLOW_MESSAGE: 'WORKFLOW_MESSAGE',
|
|
12
|
-
WORKFLOW_NOTIFICATION: 'WORKFLOW_NOTIFICATION',
|
|
13
|
-
CX_HAPPINESS_SURVEY: 'CX_HAPPINESS_SURVEY'
|
|
9
|
+
ACTION: 'ACTION'
|
|
14
10
|
};
|
|
15
11
|
export default MessageTypes;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* eslint-disable no-unused-vars */
|
|
2
2
|
import { ModuleNames } from "../../../../core/constants";
|
|
3
3
|
import BaseAPI from "../../../../infrastructure/api/BaseAPI";
|
|
4
|
-
import { getMessagesRequest,
|
|
4
|
+
import { getMessagesRequest, deleteMessageRequest, getFullContentRequest, resendMessageRequest, sendAttachmentRequest, sendMessageRequest, initiateSessionRequest, searchMessagesRequest } from "../../../dto";
|
|
5
5
|
export default class IMessageRepository extends BaseAPI {
|
|
6
6
|
constructor() {
|
|
7
7
|
super({
|
|
@@ -14,11 +14,6 @@ export default class IMessageRepository extends BaseAPI {
|
|
|
14
14
|
throw new Error('Method not implemented.');
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
getMessage() {
|
|
18
|
-
let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getMessageRequest();
|
|
19
|
-
throw new Error('Method not implemented.');
|
|
20
|
-
}
|
|
21
|
-
|
|
22
17
|
getFullContent() {
|
|
23
18
|
let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getFullContentRequest();
|
|
24
19
|
throw new Error('Method not implemented.');
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* eslint-disable no-unused-vars */
|
|
2
2
|
import { ModuleNames } from "../../../../core/constants";
|
|
3
3
|
import BaseAPI from "../../../../infrastructure/api/BaseAPI";
|
|
4
|
-
import { updateSessionAssigneeRequest, getSessionsRequest, getSessionRequest, getSessionAttachmentsRequest, getSessionLastMessagesRequest, markSessionAsReadRequest, updateSessionStatusRequest } from "../../../dto";
|
|
4
|
+
import { updateSessionAssigneeRequest, getSessionsRequest, getSessionRequest, getSessionAttachmentsRequest, getSessionLastMessagesRequest, markSessionAsReadRequest, updateSessionStatusRequest, pickupSessionRequest } from "../../../dto";
|
|
5
5
|
export default class ISessionRepository extends BaseAPI {
|
|
6
6
|
constructor() {
|
|
7
7
|
super({
|
|
@@ -9,6 +9,11 @@ export default class ISessionRepository extends BaseAPI {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
+
pickupSession() {
|
|
13
|
+
let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : pickupSessionRequest();
|
|
14
|
+
throw new Error('Method not implemented.');
|
|
15
|
+
}
|
|
16
|
+
|
|
12
17
|
updateAssignee() {
|
|
13
18
|
let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : updateSessionAssigneeRequest();
|
|
14
19
|
throw new Error('Method not implemented.');
|
|
@@ -2,7 +2,6 @@ import { ResponseTypes } from "../../core/constants";
|
|
|
2
2
|
import { ResponseUtils } from "../../core/utils";
|
|
3
3
|
import configRegistry from "../config/configRegistry";
|
|
4
4
|
import { getRegistryConfig } from "./registry";
|
|
5
|
-
import UrlBuilder from "./UrlBuilder";
|
|
6
5
|
export default class BaseAPI {
|
|
7
6
|
constructor() {
|
|
8
7
|
let {
|
|
@@ -10,30 +9,78 @@ export default class BaseAPI {
|
|
|
10
9
|
configProvider = configRegistry,
|
|
11
10
|
registryProvider = {
|
|
12
11
|
getRegistryConfig
|
|
13
|
-
}
|
|
14
|
-
urlBuilder = new UrlBuilder()
|
|
12
|
+
}
|
|
15
13
|
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
16
14
|
this.configProvider = configProvider;
|
|
17
15
|
this.registryProvider = registryProvider;
|
|
18
16
|
this.httpClient = this.configProvider.getHttpClient();
|
|
19
17
|
this.baseURL = this.configProvider.getBaseURL();
|
|
20
18
|
this.module = module;
|
|
21
|
-
this.urlBuilder = urlBuilder;
|
|
22
19
|
}
|
|
23
20
|
|
|
24
|
-
|
|
21
|
+
replacePathParams(url, params) {
|
|
22
|
+
let _url = url;
|
|
23
|
+
Object.entries(params).forEach(_ref => {
|
|
24
|
+
let [key, value] = _ref;
|
|
25
|
+
_url = url.replace(`:${key}`, value);
|
|
26
|
+
});
|
|
27
|
+
return _url;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
buildUrl(_ref2) {
|
|
31
|
+
let {
|
|
32
|
+
url,
|
|
33
|
+
params,
|
|
34
|
+
query
|
|
35
|
+
} = _ref2;
|
|
36
|
+
|
|
37
|
+
const _params = params || {};
|
|
38
|
+
|
|
39
|
+
const _query = query || {};
|
|
40
|
+
|
|
41
|
+
let _url = this.replacePathParams(url, _params);
|
|
42
|
+
|
|
43
|
+
if (this.baseURL) {
|
|
44
|
+
_url = `${this.baseURL}${_url}`;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const queryString = this.buildQuery(_query);
|
|
48
|
+
|
|
49
|
+
if (queryString) {
|
|
50
|
+
return `${_url}?${queryString}`;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return _url;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
buildQuery(query) {
|
|
57
|
+
const filteredQuery = Object.entries(query).filter(_ref3 => {
|
|
58
|
+
let [, value] = _ref3;
|
|
59
|
+
return value !== undefined && value !== null && value !== '';
|
|
60
|
+
}).reduce((acc, _ref4) => {
|
|
61
|
+
let [key, value] = _ref4;
|
|
62
|
+
acc[key] = value;
|
|
63
|
+
return acc;
|
|
64
|
+
}, {});
|
|
65
|
+
return Object.entries(filteredQuery).map(_ref5 => {
|
|
66
|
+
let [key, value] = _ref5;
|
|
67
|
+
return `${key}=${value}`;
|
|
68
|
+
}).join('&');
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
async request(_ref6) {
|
|
25
72
|
let {
|
|
26
73
|
request,
|
|
27
74
|
operation,
|
|
28
75
|
header
|
|
29
|
-
} =
|
|
76
|
+
} = _ref6;
|
|
30
77
|
const config = this.registryProvider.getRegistryConfig(this.module, operation);
|
|
31
78
|
|
|
32
79
|
if (!config) {
|
|
33
80
|
throw new Error(`Operation "${operation}" not found in registry for module "${this.module}"`);
|
|
34
81
|
}
|
|
35
82
|
|
|
36
|
-
const url = this.
|
|
83
|
+
const url = this.buildUrl({
|
|
37
84
|
url: config.endpoint,
|
|
38
85
|
params: request.params || {},
|
|
39
86
|
query: request.query || {}
|
|
@@ -74,7 +121,7 @@ export default class BaseAPI {
|
|
|
74
121
|
Object.prototype.hasOwnProperty.call(customPrototype, methodName);
|
|
75
122
|
}
|
|
76
123
|
|
|
77
|
-
async executeAPICall(
|
|
124
|
+
async executeAPICall(_ref7) {
|
|
78
125
|
let {
|
|
79
126
|
operation,
|
|
80
127
|
request,
|
|
@@ -82,7 +129,7 @@ export default class BaseAPI {
|
|
|
82
129
|
customAPI,
|
|
83
130
|
adapter,
|
|
84
131
|
responseType = ResponseTypes.SINGLE
|
|
85
|
-
} =
|
|
132
|
+
} = _ref7;
|
|
86
133
|
const response = await apiProxy[operation](request);
|
|
87
134
|
const isOverridden = this.isMethodOverridden(customAPI, operation);
|
|
88
135
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getMessagesRequest, deleteMessageRequest, getFullContentRequest, resendMessageRequest, sendAttachmentRequest, sendMessageRequest, initiateSessionRequest, searchMessagesRequest
|
|
1
|
+
import { getMessagesRequest, deleteMessageRequest, getFullContentRequest, resendMessageRequest, sendAttachmentRequest, sendMessageRequest, initiateSessionRequest, searchMessagesRequest } from "../../../domain/dto";
|
|
2
2
|
import { IMessageRepository } from "../../../domain/interfaces/repositories";
|
|
3
3
|
export default class MessageAPI extends IMessageRepository {
|
|
4
4
|
async getMessages() {
|
|
@@ -11,16 +11,6 @@ export default class MessageAPI extends IMessageRepository {
|
|
|
11
11
|
return httpRequest;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
async getMessage() {
|
|
15
|
-
let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getMessageRequest();
|
|
16
|
-
const operation = 'getMessage';
|
|
17
|
-
const httpRequest = await this.request({
|
|
18
|
-
operation,
|
|
19
|
-
request
|
|
20
|
-
});
|
|
21
|
-
return httpRequest;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
14
|
async getFullContent() {
|
|
25
15
|
let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getFullContentRequest();
|
|
26
16
|
const operation = 'getFullContent';
|
|
@@ -8,7 +8,8 @@ function getBots() {
|
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
function getBot() {
|
|
11
|
-
return createAPIRegistry(constructBotEndPoint('/:botId'),
|
|
11
|
+
return createAPIRegistry(constructBotEndPoint('/:botId'), // NO I18N
|
|
12
|
+
HTTP_METHODS.GET, getBotRequest());
|
|
12
13
|
}
|
|
13
14
|
|
|
14
15
|
export default {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { HTTP_METHODS } from "../../../../core/constants";
|
|
2
|
-
import { deleteMessageRequest, getFullContentRequest, getMessagesRequest, initiateSessionRequest, resendMessageRequest, sendAttachmentRequest, sendMessageRequest, searchMessagesRequest
|
|
2
|
+
import { deleteMessageRequest, getFullContentRequest, getMessagesRequest, initiateSessionRequest, resendMessageRequest, sendAttachmentRequest, sendMessageRequest, searchMessagesRequest } from "../../../../domain/dto";
|
|
3
3
|
import constructChannelEndPoint from "../channels/constructChannelEndPoint";
|
|
4
4
|
import constructMessageEndPoint from "./constructMessageEndPoint";
|
|
5
5
|
import createAPIRegistry from "../createAPIRegistry";
|
|
@@ -17,10 +17,6 @@ function getMessages() {
|
|
|
17
17
|
return createAPIRegistry(constructMessageEndPoint(MESSAGES_URL), HTTP_METHODS.GET, getMessagesRequest());
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
function getMessage() {
|
|
21
|
-
return createAPIRegistry(constructMessageEndPoint(SINGLE_MESSAGE_URL), HTTP_METHODS.GET, getMessageRequest());
|
|
22
|
-
}
|
|
23
|
-
|
|
24
20
|
function getFullContent() {
|
|
25
21
|
return createAPIRegistry(constructMessageEndPoint(FULL_CONTENT_URL), HTTP_METHODS.GET, getFullContentRequest());
|
|
26
22
|
}
|
|
@@ -51,7 +47,6 @@ function searchMessages() {
|
|
|
51
47
|
|
|
52
48
|
export default {
|
|
53
49
|
getMessages,
|
|
54
|
-
getMessage,
|
|
55
50
|
getFullContent,
|
|
56
51
|
sendMessage,
|
|
57
52
|
sendAttachment,
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
import { HTTP_METHODS } from "../../../../core/constants";
|
|
2
|
-
import { updateSessionAssigneeRequest, getSessionAttachmentsRequest, getSessionLastMessagesRequest, getSessionRequest, getSessionsRequest, markSessionAsReadRequest, updateSessionStatusRequest } from "../../../../domain/dto";
|
|
2
|
+
import { updateSessionAssigneeRequest, getSessionAttachmentsRequest, getSessionLastMessagesRequest, getSessionRequest, getSessionsRequest, markSessionAsReadRequest, updateSessionStatusRequest, pickupSessionRequest } from "../../../../domain/dto";
|
|
3
3
|
import createAPIRegistry from "../createAPIRegistry";
|
|
4
4
|
import constructSessionEndPoint from "./constructSessionEndPoint";
|
|
5
5
|
const SINGLE_SESSION_URL = '/:sessionId';
|
|
6
6
|
const SESSION_ATTACHMENTS_URL = `${SINGLE_SESSION_URL}/attachments`;
|
|
7
7
|
const SESSION_LAST_MESSAGE = '/lastMessages';
|
|
8
8
|
const MARK_AS_READ = `${SINGLE_SESSION_URL}/markAsRead`;
|
|
9
|
+
const PICKUP_SESSION = `${SINGLE_SESSION_URL}/pickup`;
|
|
10
|
+
|
|
11
|
+
function pickupSession() {
|
|
12
|
+
return createAPIRegistry(constructSessionEndPoint(PICKUP_SESSION), HTTP_METHODS.POST, pickupSessionRequest());
|
|
13
|
+
}
|
|
9
14
|
|
|
10
15
|
function updateAssignee() {
|
|
11
16
|
return createAPIRegistry(constructSessionEndPoint(SINGLE_SESSION_URL), HTTP_METHODS.PATCH, updateSessionAssigneeRequest());
|
|
@@ -42,5 +47,6 @@ export default {
|
|
|
42
47
|
getSessionAttachments,
|
|
43
48
|
getSessionLastMessages,
|
|
44
49
|
markSessionAsRead,
|
|
45
|
-
updateSessionStatus
|
|
50
|
+
updateSessionStatus,
|
|
51
|
+
pickupSession
|
|
46
52
|
};
|
|
@@ -1,6 +1,16 @@
|
|
|
1
|
-
import { updateSessionAssigneeRequest, getSessionsRequest, getSessionRequest, getSessionAttachmentsRequest, getSessionLastMessagesRequest, markSessionAsReadRequest, updateSessionStatusRequest } from "../../../domain/dto";
|
|
1
|
+
import { updateSessionAssigneeRequest, getSessionsRequest, getSessionRequest, getSessionAttachmentsRequest, getSessionLastMessagesRequest, markSessionAsReadRequest, updateSessionStatusRequest, pickupSessionRequest } from "../../../domain/dto";
|
|
2
2
|
import { ISessionRepository } from "../../../domain/interfaces/repositories";
|
|
3
3
|
export default class SessionAPI extends ISessionRepository {
|
|
4
|
+
async pickupSession() {
|
|
5
|
+
let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : pickupSessionRequest();
|
|
6
|
+
const operation = 'pickupSession';
|
|
7
|
+
const httpRequest = await this.request({
|
|
8
|
+
request,
|
|
9
|
+
operation
|
|
10
|
+
});
|
|
11
|
+
return httpRequest;
|
|
12
|
+
}
|
|
13
|
+
|
|
4
14
|
async updateAssignee() {
|
|
5
15
|
let request = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : updateSessionAssigneeRequest();
|
|
6
16
|
const operation = 'updateAssignee';
|
|
@@ -43,13 +43,6 @@ export default class MessageRepository extends IMessageRepository {
|
|
|
43
43
|
});
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
async getMessage(request) {
|
|
47
|
-
return this.invokeAPI({
|
|
48
|
-
operation: 'getMessage',
|
|
49
|
-
request
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
|
|
53
46
|
async getFullContent(request) {
|
|
54
47
|
return this.invokeAPI({
|
|
55
48
|
operation: 'getFullContent',
|
|
@@ -105,7 +98,6 @@ export default class MessageRepository extends IMessageRepository {
|
|
|
105
98
|
toJSON() {
|
|
106
99
|
return {
|
|
107
100
|
getMessages: this.getMessages.bind(this),
|
|
108
|
-
getMessage: this.getMessage.bind(this),
|
|
109
101
|
getFullContent: this.getFullContent.bind(this),
|
|
110
102
|
sendMessage: this.sendMessage.bind(this),
|
|
111
103
|
sendAttachment: this.sendAttachment.bind(this),
|
|
@@ -36,6 +36,13 @@ export default class SessionRepository extends ISessionRepository {
|
|
|
36
36
|
});
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
+
async pickupSession(request) {
|
|
40
|
+
return this.invokeAPI({
|
|
41
|
+
operation: 'pickupSession',
|
|
42
|
+
request
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
|
|
39
46
|
async updateAssignee(request) {
|
|
40
47
|
return this.invokeAPI({
|
|
41
48
|
operation: 'updateAssignee',
|
|
@@ -92,6 +99,7 @@ export default class SessionRepository extends ISessionRepository {
|
|
|
92
99
|
|
|
93
100
|
toJSON() {
|
|
94
101
|
return {
|
|
102
|
+
pickupSession: this.pickupSession.bind(this),
|
|
95
103
|
updateAssignee: this.updateAssignee.bind(this),
|
|
96
104
|
getSessions: this.getSessions.bind(this),
|
|
97
105
|
getSession: this.getSession.bind(this),
|
package/package.json
CHANGED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import RequestBuilder from "../RequestBuilder";
|
|
2
|
-
|
|
3
|
-
function getMessageRequest() {
|
|
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 getMessageRequest;
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
export default class UrlBuilder {
|
|
2
|
-
constructor(baseURL) {
|
|
3
|
-
this.baseURL = baseURL;
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
replacePathParams(url, params) {
|
|
7
|
-
let processedUrl = url;
|
|
8
|
-
Object.entries(params).forEach(_ref => {
|
|
9
|
-
let [key, value] = _ref;
|
|
10
|
-
processedUrl = processedUrl.replace(`:${key}`, value);
|
|
11
|
-
});
|
|
12
|
-
return processedUrl;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
buildUrl(_ref2) {
|
|
16
|
-
let {
|
|
17
|
-
url,
|
|
18
|
-
params,
|
|
19
|
-
query
|
|
20
|
-
} = _ref2;
|
|
21
|
-
const paramsObj = params || {};
|
|
22
|
-
const queryObj = query || {};
|
|
23
|
-
let processedUrl = this.replacePathParams(url, paramsObj);
|
|
24
|
-
|
|
25
|
-
if (this.baseURL) {
|
|
26
|
-
processedUrl = `${this.baseURL}${processedUrl}`;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
const queryString = this.buildQuery(queryObj);
|
|
30
|
-
|
|
31
|
-
if (queryString) {
|
|
32
|
-
return `${processedUrl}?${queryString}`;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
return processedUrl;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
buildQuery(query) {
|
|
39
|
-
const filteredQuery = Object.entries(query).filter(_ref3 => {
|
|
40
|
-
let [, value] = _ref3;
|
|
41
|
-
return value !== undefined && value !== null && value !== '';
|
|
42
|
-
}).reduce((acc, _ref4) => {
|
|
43
|
-
let [key, value] = _ref4;
|
|
44
|
-
acc[key] = value;
|
|
45
|
-
return acc;
|
|
46
|
-
}, {});
|
|
47
|
-
return Object.entries(filteredQuery).map(_ref5 => {
|
|
48
|
-
let [key, value] = _ref5;
|
|
49
|
-
return `${key}=${value}`;
|
|
50
|
-
}).join('&');
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
}
|