@webitel/ui-sdk 3.1.110 → 3.2.0
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/package.json +2 -1
- package/src/api/axios/generateInstance.js +11 -0
- package/src/api/defaults/getDefaultGetListResponse/getDefaultGetListResponse.js +6 -0
- package/src/api/defaults/getDefaultGetParams/getDefaultGetParams.js +9 -0
- package/src/api/defaults/index.js +7 -0
- package/src/api/transformers/applyTransform.js +8 -0
- package/src/api/transformers/camelToSnake/camelToSnake.transformer.js +4 -0
- package/src/api/transformers/handleUnauthorized/handleUnauthorized.transformer.js +9 -0
- package/src/api/transformers/index.js +21 -0
- package/src/api/transformers/log/log.transformer.js +6 -0
- package/src/api/transformers/merge/merge.transformer.js +5 -0
- package/src/api/transformers/notify/notify.transformer.js +13 -0
- package/src/api/transformers/sanitize/sanitize.transformer.js +12 -0
- package/src/api/transformers/snakeToCamel/snakeToCamel.transformer.js +4 -0
- package/src/api/transformers/starToSearch/starToSearch.transformer.js +12 -0
- package/src/modules/Userinfo/api/auth.js +8 -1
- package/src/modules/Userinfo/api/userinfo.js +19 -4
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webitel/ui-sdk",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.2.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"scripts": {
|
|
6
6
|
"serve-lib": "vue-cli-service serve",
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
"main": "./dist/@webitel/ui-sdk.common.js",
|
|
16
16
|
"files": [
|
|
17
17
|
"dist/*",
|
|
18
|
+
"src/api/*",
|
|
18
19
|
"src/locale/*",
|
|
19
20
|
"src/css/*",
|
|
20
21
|
"src/components/*",
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import axios from 'axios';
|
|
2
|
+
|
|
3
|
+
// 'X-Webitel-Access' ~ 'X-Access-Token'
|
|
4
|
+
const generateInstance = () => axios.create({
|
|
5
|
+
baseURL: process.env.VUE_APP_API_URL,
|
|
6
|
+
headers: {
|
|
7
|
+
'X-Webitel-Access': localStorage.getItem('access-token') || '',
|
|
8
|
+
},
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
export default generateInstance;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const applyTransform = (target, transformers, { debug = false } = {}) => {
|
|
2
|
+
return transformers.reduce((result, transformer, index) => {
|
|
3
|
+
if (debug) console.info(`applyTransform debug on step ${index}`, result);
|
|
4
|
+
return transformer(result);
|
|
5
|
+
}, target);
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
export default applyTransform;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import applyTransform from './applyTransform';
|
|
2
|
+
import log from './log/log.transformer';
|
|
3
|
+
import merge from './merge/merge.transformer';
|
|
4
|
+
import starToSearch from './starToSearch/starToSearch.transformer';
|
|
5
|
+
import camelToSnake from './camelToSnake/camelToSnake.transformer';
|
|
6
|
+
import snakeToCamel from './snakeToCamel/snakeToCamel.transformer';
|
|
7
|
+
import handleUnauthorized from './handleUnauthorized/handleUnauthorized.transformer';
|
|
8
|
+
import notify from './notify/notify.transformer';
|
|
9
|
+
import sanitize from './sanitize/sanitize.transformer';
|
|
10
|
+
|
|
11
|
+
export default applyTransform;
|
|
12
|
+
export {
|
|
13
|
+
log,
|
|
14
|
+
merge,
|
|
15
|
+
notify,
|
|
16
|
+
starToSearch,
|
|
17
|
+
camelToSnake,
|
|
18
|
+
snakeToCamel,
|
|
19
|
+
handleUnauthorized,
|
|
20
|
+
sanitize,
|
|
21
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import eventBus from '../../../scripts/eventBus';
|
|
2
|
+
|
|
3
|
+
const notifyTransformer = (payload) => {
|
|
4
|
+
if (payload instanceof Error) {
|
|
5
|
+
eventBus.$emit('notification', {
|
|
6
|
+
type: 'error',
|
|
7
|
+
text: payload.response.data.detail || payload.response.data.message,
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
return payload;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export default notifyTransformer;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
const sanitizeTransformer = (fieldsToSend) => (item) => {
|
|
2
|
+
return Object.keys(item).reduce((sanitizedItem, key) => {
|
|
3
|
+
if (fieldsToSend.indexOf(key) === -1) return sanitizedItem;
|
|
4
|
+
|
|
5
|
+
return {
|
|
6
|
+
...sanitizedItem,
|
|
7
|
+
[key]: item[key],
|
|
8
|
+
};
|
|
9
|
+
}, {});
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export default sanitizeTransformer;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import deepcopy from 'deep-copy';
|
|
2
|
+
import get from 'lodash/get';
|
|
3
|
+
import updateObject from '../../../scripts/updateObject';
|
|
4
|
+
|
|
5
|
+
const starToSearchTransformer = (path = 'search') => (params) => {
|
|
6
|
+
const copy = deepcopy(params);
|
|
7
|
+
const value = get(copy, path);
|
|
8
|
+
if (!value || value.slice(-1) === '*') return copy;
|
|
9
|
+
return updateObject({ obj: copy, path, value: `${value}*` });
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export default starToSearchTransformer;
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import BaseAPIService from './BaseAPIService';
|
|
2
|
+
import applyTransform, {
|
|
3
|
+
handleUnauthorized,
|
|
4
|
+
notify,
|
|
5
|
+
} from '../../../api/transformers';
|
|
2
6
|
|
|
3
7
|
class AuthAPI extends BaseAPIService {
|
|
4
8
|
async setToken(token) {
|
|
@@ -19,7 +23,10 @@ class AuthAPI extends BaseAPIService {
|
|
|
19
23
|
await this._instance.post(url, {});
|
|
20
24
|
this.removeToken();
|
|
21
25
|
} catch (err) {
|
|
22
|
-
throw err
|
|
26
|
+
throw applyTransform(err, [
|
|
27
|
+
handleUnauthorized,
|
|
28
|
+
notify,
|
|
29
|
+
]);
|
|
23
30
|
}
|
|
24
31
|
}
|
|
25
32
|
}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import applyTransform, {
|
|
2
|
+
handleUnauthorized,
|
|
3
|
+
notify,
|
|
4
|
+
snakeToCamel,
|
|
5
|
+
} from '../../../api/transformers';
|
|
1
6
|
import BaseAPIService from './BaseAPIService';
|
|
2
7
|
|
|
3
8
|
class UserinfoAPI extends BaseAPIService {
|
|
@@ -9,9 +14,14 @@ class UserinfoAPI extends BaseAPIService {
|
|
|
9
14
|
const url = '/userinfo';
|
|
10
15
|
try {
|
|
11
16
|
const response = await this._instance.get(url);
|
|
12
|
-
return response
|
|
17
|
+
return applyTransform(response.data, [
|
|
18
|
+
snakeToCamel(),
|
|
19
|
+
]);
|
|
13
20
|
} catch (err) {
|
|
14
|
-
throw err
|
|
21
|
+
throw applyTransform(err, [
|
|
22
|
+
handleUnauthorized,
|
|
23
|
+
notify,
|
|
24
|
+
]);
|
|
15
25
|
}
|
|
16
26
|
// }
|
|
17
27
|
}
|
|
@@ -20,9 +30,14 @@ class UserinfoAPI extends BaseAPIService {
|
|
|
20
30
|
const url = 'role/metadata/access';
|
|
21
31
|
try {
|
|
22
32
|
const response = await this._instance.get(url);
|
|
23
|
-
return response
|
|
33
|
+
return applyTransform(response.data, [
|
|
34
|
+
snakeToCamel(),
|
|
35
|
+
]);
|
|
24
36
|
} catch (err) {
|
|
25
|
-
throw err
|
|
37
|
+
throw applyTransform(err, [
|
|
38
|
+
handleUnauthorized,
|
|
39
|
+
notify,
|
|
40
|
+
]);
|
|
26
41
|
}
|
|
27
42
|
}
|
|
28
43
|
}
|