@webitel/ui-sdk 24.12.24 → 24.12.25
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/CHANGELOG.md +6 -0
- package/dist/ui-sdk.js +2 -2
- package/dist/ui-sdk.umd.cjs +1 -1
- package/package.json +1 -1
- package/src/api/clients/index.js +5 -1
- package/src/api/clients/skills/skills.js +98 -0
- package/src/api/clients/teams/teams.js +133 -0
package/package.json
CHANGED
package/src/api/clients/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import agents from './agents/agents.js';
|
|
2
1
|
import agentChats from './agents/agentChats.js';
|
|
2
|
+
import agents from './agents/agents.js';
|
|
3
3
|
import buckets from './buckets/buckets.js';
|
|
4
4
|
import calendars from './calendars/calendars.js';
|
|
5
5
|
import catalog from './catalog/catalog.js';
|
|
@@ -12,6 +12,8 @@ import lists from './lists/blacklists.js';
|
|
|
12
12
|
import media from './media/media.js';
|
|
13
13
|
import queues from './queues/queues.js';
|
|
14
14
|
import roles from './roles/roles.js';
|
|
15
|
+
import skills from './skills/skills.js';
|
|
16
|
+
import teams from './teams/teams.js';
|
|
15
17
|
import users from './users/users.js';
|
|
16
18
|
import { contactChatMessagesHistory, contacts } from './сontacts/index.js';
|
|
17
19
|
|
|
@@ -25,6 +27,8 @@ export {
|
|
|
25
27
|
communications,
|
|
26
28
|
flows,
|
|
27
29
|
gateways,
|
|
30
|
+
teams,
|
|
31
|
+
skills,
|
|
28
32
|
lists,
|
|
29
33
|
media,
|
|
30
34
|
queues,
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { SkillServiceApiFactory } from 'webitel-sdk';
|
|
2
|
+
import {
|
|
3
|
+
getDefaultGetListResponse,
|
|
4
|
+
getDefaultGetParams,
|
|
5
|
+
getDefaultInstance,
|
|
6
|
+
getDefaultOpenAPIConfig,
|
|
7
|
+
} from '../../defaults/index.js';
|
|
8
|
+
import applyTransform, {
|
|
9
|
+
camelToSnake,
|
|
10
|
+
merge,
|
|
11
|
+
notify,
|
|
12
|
+
sanitize,
|
|
13
|
+
snakeToCamel,
|
|
14
|
+
starToSearch,
|
|
15
|
+
} from '../../transformers/index.js';
|
|
16
|
+
|
|
17
|
+
const instance = getDefaultInstance();
|
|
18
|
+
const configuration = getDefaultOpenAPIConfig();
|
|
19
|
+
|
|
20
|
+
const skillService = new SkillServiceApiFactory(configuration, '', instance);
|
|
21
|
+
|
|
22
|
+
const getSkillsList = async (params) => {
|
|
23
|
+
const { page, size, search, sort, fields, id } = applyTransform(params, [
|
|
24
|
+
merge(getDefaultGetParams()),
|
|
25
|
+
starToSearch('search'),
|
|
26
|
+
]);
|
|
27
|
+
|
|
28
|
+
try {
|
|
29
|
+
const response = await skillService.searchSkill(page, size, search, sort, fields, id);
|
|
30
|
+
const { items, next } = applyTransform(response.data, [
|
|
31
|
+
snakeToCamel(),
|
|
32
|
+
merge(getDefaultGetListResponse()),
|
|
33
|
+
]);
|
|
34
|
+
return {
|
|
35
|
+
items,
|
|
36
|
+
next,
|
|
37
|
+
};
|
|
38
|
+
} catch (err) {
|
|
39
|
+
throw applyTransform(err, [notify]);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
const getSkill = async ({ itemId: id }) => {
|
|
44
|
+
try {
|
|
45
|
+
const response = await skillService.readSkill(id);
|
|
46
|
+
return applyTransform(response.data, [snakeToCamel()]);
|
|
47
|
+
} catch (err) {
|
|
48
|
+
throw applyTransform(err, [notify]);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
const fieldsToSend = ['name', 'description'];
|
|
53
|
+
|
|
54
|
+
const addSkill = async ({ itemInstance }) => {
|
|
55
|
+
const item = applyTransform(itemInstance, [sanitize(fieldsToSend), camelToSnake()]);
|
|
56
|
+
try {
|
|
57
|
+
const response = await skillService.createSkill(item);
|
|
58
|
+
return applyTransform(response.data, [snakeToCamel()]);
|
|
59
|
+
} catch (err) {
|
|
60
|
+
throw applyTransform(err, [notify]);
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
const updateSkill = async ({ itemInstance, itemId: id }) => {
|
|
65
|
+
const item = applyTransform(itemInstance, [sanitize(fieldsToSend), camelToSnake()]);
|
|
66
|
+
try {
|
|
67
|
+
const response = await skillService.updateSkill(id, item);
|
|
68
|
+
return applyTransform(response.data, [snakeToCamel()]);
|
|
69
|
+
} catch (err) {
|
|
70
|
+
throw applyTransform(err, [notify]);
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
const deleteSkill = async ({ id }) => {
|
|
75
|
+
try {
|
|
76
|
+
const response = await skillService.deleteSkill(id);
|
|
77
|
+
return applyTransform(response.data, []);
|
|
78
|
+
} catch (err) {
|
|
79
|
+
throw applyTransform(err, [notify]);
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
const getSkillsLookup = (params) =>
|
|
84
|
+
getSkillsList({
|
|
85
|
+
...params,
|
|
86
|
+
fields: params.fields || ['id', 'name'],
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
const SkillsAPI = {
|
|
90
|
+
getList: getSkillsList,
|
|
91
|
+
get: getSkill,
|
|
92
|
+
add: addSkill,
|
|
93
|
+
update: updateSkill,
|
|
94
|
+
delete: deleteSkill,
|
|
95
|
+
getLookup: getSkillsLookup,
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
export default SkillsAPI;
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { AgentTeamServiceApiFactory } from 'webitel-sdk';
|
|
2
|
+
import {
|
|
3
|
+
getDefaultGetListResponse,
|
|
4
|
+
getDefaultGetParams,
|
|
5
|
+
getDefaultInstance,
|
|
6
|
+
getDefaultOpenAPIConfig,
|
|
7
|
+
} from '../../defaults/index.js';
|
|
8
|
+
import applyTransform, {
|
|
9
|
+
camelToSnake,
|
|
10
|
+
merge,
|
|
11
|
+
notify,
|
|
12
|
+
sanitize,
|
|
13
|
+
snakeToCamel,
|
|
14
|
+
starToSearch,
|
|
15
|
+
} from '../../transformers/index.js';
|
|
16
|
+
|
|
17
|
+
const instance = getDefaultInstance();
|
|
18
|
+
const configuration = getDefaultOpenAPIConfig();
|
|
19
|
+
|
|
20
|
+
const teamService = new AgentTeamServiceApiFactory(configuration, '', instance);
|
|
21
|
+
|
|
22
|
+
const fieldsToSend = [
|
|
23
|
+
'name',
|
|
24
|
+
'description',
|
|
25
|
+
'strategy',
|
|
26
|
+
'admin',
|
|
27
|
+
'maxNoAnswer',
|
|
28
|
+
'wrapUpTime',
|
|
29
|
+
'noAnswerDelayTime',
|
|
30
|
+
'taskAcceptTimeout',
|
|
31
|
+
'callTimeout',
|
|
32
|
+
'inviteChatTimeout',
|
|
33
|
+
];
|
|
34
|
+
|
|
35
|
+
const getTeamsList = async (params) => {
|
|
36
|
+
const { page, size, search, sort, fields, id, strategy, adminId } = applyTransform(params, [
|
|
37
|
+
merge(getDefaultGetParams()),
|
|
38
|
+
starToSearch('search'),
|
|
39
|
+
]);
|
|
40
|
+
|
|
41
|
+
try {
|
|
42
|
+
const response = await teamService.searchAgentTeam(
|
|
43
|
+
page,
|
|
44
|
+
size,
|
|
45
|
+
search,
|
|
46
|
+
sort,
|
|
47
|
+
fields,
|
|
48
|
+
id,
|
|
49
|
+
strategy,
|
|
50
|
+
adminId,
|
|
51
|
+
);
|
|
52
|
+
const { items, next } = applyTransform(response.data, [
|
|
53
|
+
snakeToCamel(),
|
|
54
|
+
merge(getDefaultGetListResponse()),
|
|
55
|
+
]);
|
|
56
|
+
return {
|
|
57
|
+
items,
|
|
58
|
+
next,
|
|
59
|
+
};
|
|
60
|
+
} catch (err) {
|
|
61
|
+
throw applyTransform(err, [notify]);
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
const getTeam = async ({ itemId: id }) => {
|
|
66
|
+
const defaultObject = {
|
|
67
|
+
name: '',
|
|
68
|
+
strategy: {},
|
|
69
|
+
admin: [],
|
|
70
|
+
description: '',
|
|
71
|
+
busyDelayTime: 0,
|
|
72
|
+
callTimeout: 0,
|
|
73
|
+
maxNoAnswer: 0,
|
|
74
|
+
noAnswerDelayTime: 0,
|
|
75
|
+
taskAcceptTimeout: 0,
|
|
76
|
+
inviteChatTimeout: 0,
|
|
77
|
+
rejectDelayTime: 0,
|
|
78
|
+
wrapUpTime: 0,
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
try {
|
|
82
|
+
const response = await teamService.readAgentTeam(id);
|
|
83
|
+
return applyTransform(response.data, [snakeToCamel(), merge(defaultObject)]);
|
|
84
|
+
} catch (err) {
|
|
85
|
+
throw applyTransform(err, [notify]);
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
const addTeam = async ({ itemInstance }) => {
|
|
90
|
+
const item = applyTransform(itemInstance, [sanitize(fieldsToSend), camelToSnake()]);
|
|
91
|
+
try {
|
|
92
|
+
const response = await teamService.createAgentTeam(item);
|
|
93
|
+
return applyTransform(response.data, [snakeToCamel()]);
|
|
94
|
+
} catch (err) {
|
|
95
|
+
throw applyTransform(err, [notify]);
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
const updateTeam = async ({ itemInstance, itemId: id }) => {
|
|
100
|
+
const item = applyTransform(itemInstance, [sanitize(fieldsToSend), camelToSnake()]);
|
|
101
|
+
try {
|
|
102
|
+
const response = await teamService.updateAgentTeam(id, item);
|
|
103
|
+
return applyTransform(response.data, [snakeToCamel()]);
|
|
104
|
+
} catch (err) {
|
|
105
|
+
throw applyTransform(err, [notify]);
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
const deleteTeam = async ({ id }) => {
|
|
110
|
+
try {
|
|
111
|
+
const response = await teamService.deleteAgentTeam(id);
|
|
112
|
+
return applyTransform(response.data, []);
|
|
113
|
+
} catch (err) {
|
|
114
|
+
throw applyTransform(err, [notify]);
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
const getTeamsLookup = (params) =>
|
|
119
|
+
getTeamsList({
|
|
120
|
+
...params,
|
|
121
|
+
fields: params.fields || ['id', 'name'],
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
const TeamsAPI = {
|
|
125
|
+
getList: getTeamsList,
|
|
126
|
+
get: getTeam,
|
|
127
|
+
add: addTeam,
|
|
128
|
+
update: updateTeam,
|
|
129
|
+
delete: deleteTeam,
|
|
130
|
+
getLookup: getTeamsLookup,
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
export default TeamsAPI;
|