@docbrasil/api-systemmanager 1.1.3 → 1.1.5
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/document.js +8 -10
- package/api/user/my_tasks.js +95 -0
- package/api/user/task.js +2 -0
- package/dist/bundle.cjs +91 -0
- package/dist/bundle.mjs +1 -1
- package/doc/api.md +540 -1233
- package/docs/Application.html +2 -2
- package/docs/Documents.html +9 -9
- package/docs/user_application.js.html +2 -0
- package/docs/user_document.js.html +8 -10
- package/docs/user_index.js.html +1 -1
- package/package.json +1 -1
- package/.project +0 -11
package/api/user/document.js
CHANGED
|
@@ -79,12 +79,15 @@ class Documents {
|
|
|
79
79
|
*/
|
|
80
80
|
_formatDocument(params) {
|
|
81
81
|
try {
|
|
82
|
+
const document = _.get(params, 'document');
|
|
83
|
+
const urlType = _.isEmpty(document) ? '' : _.get(params, 'urlType', 'S3');
|
|
84
|
+
const addType = _.isEmpty(document) ? '' : _.get(params, 'addType', 'S3_SIGNED');
|
|
82
85
|
return {
|
|
83
86
|
orgname: _.get(params, 'orgname'),
|
|
84
87
|
areaId: _.get(params, 'areaId'),
|
|
85
88
|
docId: _.get(params, 'docId'),
|
|
86
89
|
documentDate: _.get(params, 'documentDate', Moment().format()),
|
|
87
|
-
document
|
|
90
|
+
document,
|
|
88
91
|
type: _.get(params, 'type'),
|
|
89
92
|
name: _.get(params, 'name'),
|
|
90
93
|
content: _.get(params, 'content', ''),
|
|
@@ -101,8 +104,8 @@ class Documents {
|
|
|
101
104
|
docTypeFields: _.get(params, 'docTypeFields', []), // {"extraId": userId},
|
|
102
105
|
docTypeFieldsData: _.get(params, 'docTypeFieldsData', {}), // {"extraId": userId},
|
|
103
106
|
signedUrl: _.get(params, 'signedUrl', ''),
|
|
104
|
-
urlType
|
|
105
|
-
addType
|
|
107
|
+
urlType,
|
|
108
|
+
addType
|
|
106
109
|
};
|
|
107
110
|
} catch (ex) {
|
|
108
111
|
throw ex;
|
|
@@ -187,17 +190,12 @@ class Documents {
|
|
|
187
190
|
*/
|
|
188
191
|
async add(params, session) {
|
|
189
192
|
const self = this;
|
|
190
|
-
|
|
191
193
|
try {
|
|
192
194
|
Joi.assert(params, Joi.object().required().error(new Error('params is required')));
|
|
193
|
-
Joi.assert(params.
|
|
195
|
+
Joi.assert(params.orgId, Joi.string().required().error(new Error('orgId is required')));
|
|
194
196
|
Joi.assert(params.areaId, Joi.string().required().error(new Error('areaId is required')));
|
|
195
|
-
Joi.assert(params.
|
|
196
|
-
Joi.assert(params.type, Joi.string().required().error(new Error('type is required')));
|
|
197
|
-
Joi.assert(params.name, Joi.string().required().error(new Error('name is required')));
|
|
197
|
+
Joi.assert(params.orgname, Joi.string().required().error(new Error('orgname is required')));
|
|
198
198
|
Joi.assert(params.docTypeId, Joi.string().required().error(new Error('docTypeId is required')));
|
|
199
|
-
Joi.assert(params.bytes, Joi.number().required().error(new Error('bytes is required')));
|
|
200
|
-
Joi.assert(params.orgId, Joi.string().required().error(new Error('orgId is required')));
|
|
201
199
|
Joi.assert(session, Joi.string().required().error(new Error('session is required')));
|
|
202
200
|
|
|
203
201
|
// Get fields required, and set data default to create document
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import _ from 'lodash';
|
|
2
|
+
import Boom from '@hapi/boom';
|
|
3
|
+
import Joi from 'joi';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Class for my tasks, permission user
|
|
7
|
+
* @class
|
|
8
|
+
*/
|
|
9
|
+
class MyTasks {
|
|
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
|
+
* @author CloudBrasil <abernardo.br@gmail.com>
|
|
52
|
+
* @description Method to find my tasks for a user
|
|
53
|
+
* @param {object} params Params to get tasks
|
|
54
|
+
* @param {object} params.query Search my tasks query
|
|
55
|
+
* @param {object} params.orgId Organization id (_id database)
|
|
56
|
+
* @param {string} session Session, token JWT
|
|
57
|
+
* @returns {promise} returned data from the search
|
|
58
|
+
* @returns {number} count the count of items searched
|
|
59
|
+
* @returns {array<object>} items the items returned from search
|
|
60
|
+
* @returns {number} page the page of the search (on pagination), zero indexed
|
|
61
|
+
* @returns {number} perPage how many items per page
|
|
62
|
+
* @public
|
|
63
|
+
* @example
|
|
64
|
+
*
|
|
65
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
66
|
+
* const api = new API();
|
|
67
|
+
* const params = {
|
|
68
|
+
* query: {"s":[{"historyBegin":{"order":"desc"}}],"i":1,"p":20},
|
|
69
|
+
* orgId: '55e4a3bd6be6b45210833fae',
|
|
70
|
+
* };
|
|
71
|
+
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
72
|
+
* const retSearch = await api.user.task.mytasks.find(params, session);
|
|
73
|
+
*/
|
|
74
|
+
async find(params, session) {
|
|
75
|
+
const self = this;
|
|
76
|
+
|
|
77
|
+
try {
|
|
78
|
+
Joi.assert(params, Joi.object().required(), 'Params to get my tasks');
|
|
79
|
+
Joi.assert(params.query, Joi.object().required(), 'The query for the search');
|
|
80
|
+
Joi.assert(params.orgId, Joi.string().required(), 'Organization id (_id database)');
|
|
81
|
+
Joi.assert(session, Joi.string().required(), 'Session token JWT');
|
|
82
|
+
|
|
83
|
+
const {query, orgId} = params;
|
|
84
|
+
const queryString = JSON.stringify(query);
|
|
85
|
+
const apiCall = self._client
|
|
86
|
+
.post(`/organizations/${orgId}/users/tasks/advsearch?query=${queryString}`, {}, self._setHeader(session));
|
|
87
|
+
|
|
88
|
+
return self._returnData(await apiCall);
|
|
89
|
+
} catch (ex) {
|
|
90
|
+
throw ex;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
export default MyTasks;
|
package/api/user/task.js
CHANGED
|
@@ -2,6 +2,7 @@ import _ from 'lodash';
|
|
|
2
2
|
import Boom from '@hapi/boom';
|
|
3
3
|
import Joi from 'joi';
|
|
4
4
|
import TaskAvailable from './task_available.js';
|
|
5
|
+
import MyTasks from './my_tasks.js';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Class for task, permission user
|
|
@@ -17,6 +18,7 @@ class Task {
|
|
|
17
18
|
self.parent = options.parent;
|
|
18
19
|
self._client = self.parent.dispatch.getClient();
|
|
19
20
|
self.available = new TaskAvailable(options);
|
|
21
|
+
self.mytasks = new MyTasks(options);
|
|
20
22
|
}
|
|
21
23
|
|
|
22
24
|
/**
|
package/dist/bundle.cjs
CHANGED
|
@@ -2071,6 +2071,96 @@ class TaskAvailable {
|
|
|
2071
2071
|
}
|
|
2072
2072
|
}
|
|
2073
2073
|
|
|
2074
|
+
/**
|
|
2075
|
+
* Class for my tasks, permission user
|
|
2076
|
+
* @class
|
|
2077
|
+
*/
|
|
2078
|
+
class MyTasks {
|
|
2079
|
+
|
|
2080
|
+
constructor(options) {
|
|
2081
|
+
Joi__default["default"].assert(options, Joi__default["default"].object().required());
|
|
2082
|
+
Joi__default["default"].assert(options.parent, Joi__default["default"].object().required());
|
|
2083
|
+
|
|
2084
|
+
const self = this;
|
|
2085
|
+
self.parent = options.parent;
|
|
2086
|
+
self._client = self.parent.dispatch.getClient();
|
|
2087
|
+
}
|
|
2088
|
+
|
|
2089
|
+
/**
|
|
2090
|
+
* @author Augusto Pissarra <abernardo.br@gmail.com>
|
|
2091
|
+
* @description Get the return data and check for errors
|
|
2092
|
+
* @param {object} retData Response HTTP
|
|
2093
|
+
* @return {*}
|
|
2094
|
+
* @private
|
|
2095
|
+
*/
|
|
2096
|
+
_returnData(retData, def = {}) {
|
|
2097
|
+
if (retData.status !== 200) {
|
|
2098
|
+
return Boom__default["default"].badRequest(___default["default"].get(retData, 'message', 'No error message reported!'))
|
|
2099
|
+
} else {
|
|
2100
|
+
return ___default["default"].get(retData, 'data', def);
|
|
2101
|
+
}
|
|
2102
|
+
}
|
|
2103
|
+
|
|
2104
|
+
/**
|
|
2105
|
+
* @author CloudBrasil <abernardo.br@gmail.com>
|
|
2106
|
+
* @description Set header with new session
|
|
2107
|
+
* @param {string} session Session, token JWT
|
|
2108
|
+
* @return {object} header with new session
|
|
2109
|
+
* @private
|
|
2110
|
+
*/
|
|
2111
|
+
_setHeader(session) {
|
|
2112
|
+
return {
|
|
2113
|
+
headers: {
|
|
2114
|
+
authorization: session,
|
|
2115
|
+
}
|
|
2116
|
+
};
|
|
2117
|
+
}
|
|
2118
|
+
|
|
2119
|
+
/**
|
|
2120
|
+
* @author CloudBrasil <abernardo.br@gmail.com>
|
|
2121
|
+
* @description Method to find my tasks for a user
|
|
2122
|
+
* @param {object} params Params to get tasks
|
|
2123
|
+
* @param {object} params.query Search my tasks query
|
|
2124
|
+
* @param {object} params.orgId Organization id (_id database)
|
|
2125
|
+
* @param {string} session Session, token JWT
|
|
2126
|
+
* @returns {promise} returned data from the search
|
|
2127
|
+
* @returns {number} count the count of items searched
|
|
2128
|
+
* @returns {array<object>} items the items returned from search
|
|
2129
|
+
* @returns {number} page the page of the search (on pagination), zero indexed
|
|
2130
|
+
* @returns {number} perPage how many items per page
|
|
2131
|
+
* @public
|
|
2132
|
+
* @example
|
|
2133
|
+
*
|
|
2134
|
+
* const API = require('@docbrasil/api-systemmanager');
|
|
2135
|
+
* const api = new API();
|
|
2136
|
+
* const params = {
|
|
2137
|
+
* query: {"s":[{"historyBegin":{"order":"desc"}}],"i":1,"p":20},
|
|
2138
|
+
* orgId: '55e4a3bd6be6b45210833fae',
|
|
2139
|
+
* };
|
|
2140
|
+
* const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
|
|
2141
|
+
* const retSearch = await api.user.task.mytasks.find(params, session);
|
|
2142
|
+
*/
|
|
2143
|
+
async find(params, session) {
|
|
2144
|
+
const self = this;
|
|
2145
|
+
|
|
2146
|
+
try {
|
|
2147
|
+
Joi__default["default"].assert(params, Joi__default["default"].object().required(), 'Params to get my tasks');
|
|
2148
|
+
Joi__default["default"].assert(params.query, Joi__default["default"].object().required(), 'The query for the search');
|
|
2149
|
+
Joi__default["default"].assert(params.orgId, Joi__default["default"].string().required(), 'Organization id (_id database)');
|
|
2150
|
+
Joi__default["default"].assert(session, Joi__default["default"].string().required(), 'Session token JWT');
|
|
2151
|
+
|
|
2152
|
+
const {query, orgId} = params;
|
|
2153
|
+
const queryString = JSON.stringify(query);
|
|
2154
|
+
const apiCall = self._client
|
|
2155
|
+
.post(`/organizations/${orgId}/users/tasks/advsearch?query=${queryString}`, {}, self._setHeader(session));
|
|
2156
|
+
|
|
2157
|
+
return self._returnData(await apiCall);
|
|
2158
|
+
} catch (ex) {
|
|
2159
|
+
throw ex;
|
|
2160
|
+
}
|
|
2161
|
+
}
|
|
2162
|
+
}
|
|
2163
|
+
|
|
2074
2164
|
/**
|
|
2075
2165
|
* Class for task, permission user
|
|
2076
2166
|
* @class
|
|
@@ -2085,6 +2175,7 @@ class Task {
|
|
|
2085
2175
|
self.parent = options.parent;
|
|
2086
2176
|
self._client = self.parent.dispatch.getClient();
|
|
2087
2177
|
self.available = new TaskAvailable(options);
|
|
2178
|
+
self.mytasks = new MyTasks(options);
|
|
2088
2179
|
}
|
|
2089
2180
|
|
|
2090
2181
|
/**
|