@docbrasil/api-systemmanager 1.0.64 → 1.0.67
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/api/user/index.js +2 -0
- package/api/user/notification.js +99 -0
- package/api/user/user.js +1 -1
- package/dist/bundle.cjs +96 -1
- package/dist/bundle.mjs +1 -1
- package/doc/api.md +46 -0
- package/package.json +1 -1
package/api/user/index.js
CHANGED
|
@@ -7,6 +7,7 @@ import Process from './process';
|
|
|
7
7
|
import Task from './task';
|
|
8
8
|
import User from './user';
|
|
9
9
|
import Register from './register';
|
|
10
|
+
import Notification from './notification';
|
|
10
11
|
|
|
11
12
|
/**
|
|
12
13
|
* @class API request, user permission level
|
|
@@ -29,6 +30,7 @@ class Users {
|
|
|
29
30
|
self.task = new Task(options);
|
|
30
31
|
self.user = self.profile = new User(options);
|
|
31
32
|
self.register = new Register(options);
|
|
33
|
+
self.notification = new Notification(options);
|
|
32
34
|
}
|
|
33
35
|
}
|
|
34
36
|
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import _ from 'lodash';
|
|
2
|
+
import Boom from '@hapi/boom';
|
|
3
|
+
import Joi from 'joi';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Class for user registration in a user
|
|
7
|
+
* @class
|
|
8
|
+
*/
|
|
9
|
+
class Notification {
|
|
10
|
+
|
|
11
|
+
constructor(options) {
|
|
12
|
+
Joi.assert(options, Joi.object().required());
|
|
13
|
+
Joi.assert(options.parent, Joi.object().required());
|
|
14
|
+
|
|
15
|
+
const self = this;
|
|
16
|
+
self.parent = options.parent;
|
|
17
|
+
self._client = self.parent.dispatch.getClient();
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* @author Augusto Pissarra <abernardo.br@gmail.com>
|
|
22
|
+
* @description Get the return data and check for errors
|
|
23
|
+
* @param {object} retData Response HTTP
|
|
24
|
+
* @return {*}
|
|
25
|
+
* @private
|
|
26
|
+
*/
|
|
27
|
+
_returnData(retData, def = {}) {
|
|
28
|
+
if (retData.status !== 200) {
|
|
29
|
+
return Boom.badRequest(_.get(retData, 'message', 'No error message reported!'))
|
|
30
|
+
} else {
|
|
31
|
+
return _.get(retData, 'data', def);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* @author CloudBrasil <abernardo.br@gmail.com>
|
|
37
|
+
* @description Set header with new session
|
|
38
|
+
* @param {string} session Session, token JWT
|
|
39
|
+
* @return {object} header with new session
|
|
40
|
+
* @private
|
|
41
|
+
*/
|
|
42
|
+
_setHeader(session) {
|
|
43
|
+
return {
|
|
44
|
+
headers: {
|
|
45
|
+
authorization: session,
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Notification token types
|
|
52
|
+
* @return {{FCM_CAPACITOR: string, FCM_WEB: string}}
|
|
53
|
+
*/
|
|
54
|
+
get tokenTypes () {
|
|
55
|
+
return {
|
|
56
|
+
FCM_WEB: 'FCM_WEB',
|
|
57
|
+
FCM_CAPACITOR: 'FCM_CAPACITOR'
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* @author CloudBrasil <abernardo.br@gmail.com>
|
|
63
|
+
* @description Method to add a notification token
|
|
64
|
+
* @param {object} params Params to add notification token
|
|
65
|
+
* @param {string} params.token The token
|
|
66
|
+
* @param {object} params.type The token type
|
|
67
|
+
* @returns {promise<object>} data
|
|
68
|
+
* @returns {boolean} data._id the id of the added token
|
|
69
|
+
* @public
|
|
70
|
+
* @example
|
|
71
|
+
*
|
|
72
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
73
|
+
* const api = new API();
|
|
74
|
+
* const params = {
|
|
75
|
+
* token: 'V6OSBr4aEVoiE9H1b4xzLe+vqmXB+ShVNc/FvJGxnIz4tZv6jBJkk4aQzz2',
|
|
76
|
+
* type: 'FCM_WEB'
|
|
77
|
+
* };
|
|
78
|
+
* const retData = await api.user.notification.addToken(params);
|
|
79
|
+
*/
|
|
80
|
+
async addToken(params = {}) {
|
|
81
|
+
const self = this;
|
|
82
|
+
|
|
83
|
+
try {
|
|
84
|
+
Joi.assert(params, Joi.object().required(), 'Params to get task');
|
|
85
|
+
Joi.assert(params.token, Joi.string().required(), 'Token is required');
|
|
86
|
+
Joi.assert(params.type, Joi.string().required(), ' The token type');
|
|
87
|
+
|
|
88
|
+
const apiCall = self._client
|
|
89
|
+
.put(`/users/notifications/token`, params);
|
|
90
|
+
|
|
91
|
+
const retData = self._returnData(await apiCall);
|
|
92
|
+
return retData;
|
|
93
|
+
} catch (ex) {
|
|
94
|
+
throw ex;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export default Notification;
|
package/api/user/user.js
CHANGED
|
@@ -276,7 +276,7 @@ class User {
|
|
|
276
276
|
Joi.assert(id, Joi.string().required());
|
|
277
277
|
Joi.assert(session, Joi.string().required());
|
|
278
278
|
|
|
279
|
-
const apiCall = self._client.put(`/organizations/${id}/change`, self._setHeader(session));
|
|
279
|
+
const apiCall = self._client.put(`/organizations/${id}/change`, null, self._setHeader(session));
|
|
280
280
|
return self._returnData(await apiCall);
|
|
281
281
|
} catch (ex) {
|
|
282
282
|
throw ex;
|
package/dist/bundle.cjs
CHANGED
|
@@ -1927,7 +1927,7 @@ class User {
|
|
|
1927
1927
|
Joi__default["default"].assert(id, Joi__default["default"].string().required());
|
|
1928
1928
|
Joi__default["default"].assert(session, Joi__default["default"].string().required());
|
|
1929
1929
|
|
|
1930
|
-
const apiCall = self._client.put(`/organizations/${id}/change`, self._setHeader(session));
|
|
1930
|
+
const apiCall = self._client.put(`/organizations/${id}/change`, null, self._setHeader(session));
|
|
1931
1931
|
return self._returnData(await apiCall);
|
|
1932
1932
|
} catch (ex) {
|
|
1933
1933
|
throw ex;
|
|
@@ -8870,6 +8870,100 @@ class Register {
|
|
|
8870
8870
|
}
|
|
8871
8871
|
}
|
|
8872
8872
|
|
|
8873
|
+
/**
|
|
8874
|
+
* Class for user registration in a user
|
|
8875
|
+
* @class
|
|
8876
|
+
*/
|
|
8877
|
+
class Notification {
|
|
8878
|
+
|
|
8879
|
+
constructor(options) {
|
|
8880
|
+
Joi__default["default"].assert(options, Joi__default["default"].object().required());
|
|
8881
|
+
Joi__default["default"].assert(options.parent, Joi__default["default"].object().required());
|
|
8882
|
+
|
|
8883
|
+
const self = this;
|
|
8884
|
+
self.parent = options.parent;
|
|
8885
|
+
self._client = self.parent.dispatch.getClient();
|
|
8886
|
+
}
|
|
8887
|
+
|
|
8888
|
+
/**
|
|
8889
|
+
* @author Augusto Pissarra <abernardo.br@gmail.com>
|
|
8890
|
+
* @description Get the return data and check for errors
|
|
8891
|
+
* @param {object} retData Response HTTP
|
|
8892
|
+
* @return {*}
|
|
8893
|
+
* @private
|
|
8894
|
+
*/
|
|
8895
|
+
_returnData(retData, def = {}) {
|
|
8896
|
+
if (retData.status !== 200) {
|
|
8897
|
+
return Boom__default["default"].badRequest(___default["default"].get(retData, 'message', 'No error message reported!'))
|
|
8898
|
+
} else {
|
|
8899
|
+
return ___default["default"].get(retData, 'data', def);
|
|
8900
|
+
}
|
|
8901
|
+
}
|
|
8902
|
+
|
|
8903
|
+
/**
|
|
8904
|
+
* @author CloudBrasil <abernardo.br@gmail.com>
|
|
8905
|
+
* @description Set header with new session
|
|
8906
|
+
* @param {string} session Session, token JWT
|
|
8907
|
+
* @return {object} header with new session
|
|
8908
|
+
* @private
|
|
8909
|
+
*/
|
|
8910
|
+
_setHeader(session) {
|
|
8911
|
+
return {
|
|
8912
|
+
headers: {
|
|
8913
|
+
authorization: session,
|
|
8914
|
+
}
|
|
8915
|
+
};
|
|
8916
|
+
}
|
|
8917
|
+
|
|
8918
|
+
/**
|
|
8919
|
+
* Notification token types
|
|
8920
|
+
* @return {{FCM_CAPACITOR: string, FCM_WEB: string}}
|
|
8921
|
+
*/
|
|
8922
|
+
get tokenTypes () {
|
|
8923
|
+
return {
|
|
8924
|
+
FCM_WEB: 'FCM_WEB',
|
|
8925
|
+
FCM_CAPACITOR: 'FCM_CAPACITOR'
|
|
8926
|
+
};
|
|
8927
|
+
}
|
|
8928
|
+
|
|
8929
|
+
/**
|
|
8930
|
+
* @author CloudBrasil <abernardo.br@gmail.com>
|
|
8931
|
+
* @description Method to add a notification token
|
|
8932
|
+
* @param {object} params Params to add notification token
|
|
8933
|
+
* @param {string} params.token The token
|
|
8934
|
+
* @param {object} params.type The token type
|
|
8935
|
+
* @returns {promise<object>} data
|
|
8936
|
+
* @returns {boolean} data._id the id of the added token
|
|
8937
|
+
* @public
|
|
8938
|
+
* @example
|
|
8939
|
+
*
|
|
8940
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
8941
|
+
* const api = new API();
|
|
8942
|
+
* const params = {
|
|
8943
|
+
* token: 'V6OSBr4aEVoiE9H1b4xzLe+vqmXB+ShVNc/FvJGxnIz4tZv6jBJkk4aQzz2',
|
|
8944
|
+
* type: 'FCM_WEB'
|
|
8945
|
+
* };
|
|
8946
|
+
* const retData = await api.user.notification.addToken(params);
|
|
8947
|
+
*/
|
|
8948
|
+
async addToken(params = {}) {
|
|
8949
|
+
const self = this;
|
|
8950
|
+
|
|
8951
|
+
try {
|
|
8952
|
+
Joi__default["default"].assert(params, Joi__default["default"].object().required(), 'Params to get task');
|
|
8953
|
+
Joi__default["default"].assert(params.token, Joi__default["default"].string().required(), 'Token is required');
|
|
8954
|
+
Joi__default["default"].assert(params.type, Joi__default["default"].string().required(), ' The token type');
|
|
8955
|
+
|
|
8956
|
+
const apiCall = self._client
|
|
8957
|
+
.put(`/users/notifications/token`, params);
|
|
8958
|
+
|
|
8959
|
+
const retData = self._returnData(await apiCall);
|
|
8960
|
+
return retData;
|
|
8961
|
+
} catch (ex) {
|
|
8962
|
+
throw ex;
|
|
8963
|
+
}
|
|
8964
|
+
}
|
|
8965
|
+
}
|
|
8966
|
+
|
|
8873
8967
|
/**
|
|
8874
8968
|
* @class API request, user permission level
|
|
8875
8969
|
*/
|
|
@@ -8891,6 +8985,7 @@ class Users {
|
|
|
8891
8985
|
self.task = new Task(options);
|
|
8892
8986
|
self.user = self.profile = new User(options);
|
|
8893
8987
|
self.register = new Register(options);
|
|
8988
|
+
self.notification = new Notification(options);
|
|
8894
8989
|
}
|
|
8895
8990
|
}
|
|
8896
8991
|
|