@docbrasil/api-systemmanager 1.0.107 → 1.0.108

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.
Files changed (73) hide show
  1. package/.github/workflows/static.yml +43 -0
  2. package/api/external.js +41 -0
  3. package/dist/bundle.cjs +41 -0
  4. package/dist/bundle.mjs +1 -1
  5. package/doc/api.md +382 -0
  6. package/docs/Admin.html +336 -0
  7. package/docs/AdminDocuments.html +2235 -0
  8. package/docs/AdminForm.html +934 -0
  9. package/docs/AdminLists.html +895 -0
  10. package/docs/AdminMessage.html +1490 -0
  11. package/docs/AdminNotification.html +1636 -0
  12. package/docs/AdminPlugin.html +696 -0
  13. package/docs/AdminPolicy.html +451 -0
  14. package/docs/AdminProcesses.html +692 -0
  15. package/docs/AdminTask.html +740 -0
  16. package/docs/AdminUser.html +1203 -0
  17. package/docs/Datasource.html +660 -0
  18. package/docs/Dispatch.html +624 -0
  19. package/docs/Documents.html +4875 -0
  20. package/docs/External.html +1203 -0
  21. package/docs/GeoLocation.html +503 -0
  22. package/docs/Login.html +1839 -0
  23. package/docs/Notification.html +625 -0
  24. package/docs/Organization.html +2767 -0
  25. package/docs/Process.html +1598 -0
  26. package/docs/Register.html +1604 -0
  27. package/docs/Session.html +482 -0
  28. package/docs/Task.html +1394 -0
  29. package/docs/TaskAvailable.html +893 -0
  30. package/docs/User.html +2002 -0
  31. package/docs/Users.html +569 -0
  32. package/docs/admin_doctypes.js.html +193 -0
  33. package/docs/admin_document.js.html +449 -0
  34. package/docs/admin_form.js.html +268 -0
  35. package/docs/admin_index.js.html +163 -0
  36. package/docs/admin_list.js.html +250 -0
  37. package/docs/admin_message.js.html +311 -0
  38. package/docs/admin_notification.js.html +350 -0
  39. package/docs/admin_organization.js.html +241 -0
  40. package/docs/admin_plugin.js.html +233 -0
  41. package/docs/admin_policy.js.html +195 -0
  42. package/docs/admin_processes.js.html +487 -0
  43. package/docs/admin_task.js.html +242 -0
  44. package/docs/admin_user.js.html +302 -0
  45. package/docs/dispatch.js.html +218 -0
  46. package/docs/external.js.html +333 -0
  47. package/docs/general_geoLocation.js.html +205 -0
  48. package/docs/general_index.js.html +140 -0
  49. package/docs/index.html +129 -0
  50. package/docs/login.js.html +384 -0
  51. package/docs/scripts/app.min.js +1 -0
  52. package/docs/scripts/linenumber.js +26 -0
  53. package/docs/scripts/search.js +39 -0
  54. package/docs/session.js.html +202 -0
  55. package/docs/styles/app.min.css +1 -0
  56. package/docs/styles/iframe.css +13 -0
  57. package/docs/styles/prettify-jsdoc.css +111 -0
  58. package/docs/styles/prettify-tomorrow.css +132 -0
  59. package/docs/styles/reset.css +44 -0
  60. package/docs/user_datasource.js.html +261 -0
  61. package/docs/user_document.js.html +847 -0
  62. package/docs/user_index.js.html +156 -0
  63. package/docs/user_notification.js.html +218 -0
  64. package/docs/user_organization.js.html +347 -0
  65. package/docs/user_process.js.html +352 -0
  66. package/docs/user_register.js.html +322 -0
  67. package/docs/user_task.js.html +319 -0
  68. package/docs/user_task_available.js.html +252 -0
  69. package/docs/user_user.js.html +404 -0
  70. package/docs/utils_promises.js.html +235 -0
  71. package/package.json +7 -4
  72. package/readme.md +7 -8
  73. package/doc.md +0 -653
@@ -0,0 +1,241 @@
1
+
2
+
3
+ <!DOCTYPE html>
4
+ <html lang="en">
5
+
6
+ <head>
7
+
8
+ <meta charset="utf-8">
9
+ <meta name="viewport" content="width=device-width, initial-scale=1">
10
+ <title> admin/organization.js</title>
11
+
12
+ <script src="https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/run_prettify.js"></script>
13
+ <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
14
+ <script src="./build/entry.js"></script>
15
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
16
+ <!--[if lt IE 9]>
17
+ <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
18
+ <![endif]-->
19
+ <link href="https://fonts.googleapis.com/css?family=Roboto:100,400,700|Inconsolata,700" rel="stylesheet">
20
+ <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css" integrity="sha384-UHRtZLI+pbxtHCWp1t77Bi1L4ZtiqrqD80Kn4Z8NTSRyMA2Fd33n5dQ8lWUE00s/" crossorigin="anonymous">
21
+ <link type="text/css" rel="stylesheet" href="https://jmblog.github.io/color-themes-for-google-code-prettify/themes/tomorrow-night.min.css">
22
+ <link type="text/css" rel="stylesheet" href="styles/app.min.css">
23
+ <link type="text/css" rel="stylesheet" href="styles/iframe.css">
24
+ <link type="text/css" rel="stylesheet" href="">
25
+ <script async defer src="https://buttons.github.io/buttons.js"></script>
26
+
27
+
28
+ </head>
29
+
30
+
31
+
32
+ <body class="layout small-header">
33
+ <div id="stickyNavbarOverlay"></div>
34
+
35
+
36
+ <div class="top-nav">
37
+ <div class="inner">
38
+ <a id="hamburger" role="button" class="navbar-burger" aria-label="menu" aria-expanded="false">
39
+ <span aria-hidden="true"></span>
40
+ <span aria-hidden="true"></span>
41
+ <span aria-hidden="true"></span>
42
+ </a>
43
+ <div class="logo">
44
+
45
+
46
+ </div>
47
+ <div class="menu">
48
+
49
+ <div class="navigation">
50
+ <a
51
+ href="index.html"
52
+ class="link"
53
+ >
54
+ Documentation
55
+ </a>
56
+
57
+
58
+
59
+ </div>
60
+ </div>
61
+ </div>
62
+ </div>
63
+ <div id="main">
64
+ <div
65
+ class="sidebar "
66
+ id="sidebarNav"
67
+ >
68
+
69
+ <nav>
70
+
71
+ <h2><a href="index.html">Documentation</a></h2><div class="category"><h3>Classes</h3><ul><li><a href="Admin.html">Admin</a></li><li><a href="AdminDocuments.html">AdminDocuments</a></li><li><a href="AdminForm.html">AdminForm</a></li><li><a href="AdminLists.html">AdminLists</a></li><li><a href="AdminMessage.html">AdminMessage</a></li><li><a href="AdminNotification.html">AdminNotification</a></li><li><a href="AdminPlugin.html">AdminPlugin</a></li><li><a href="AdminPolicy.html">AdminPolicy</a></li><li><a href="AdminProcesses.html">AdminProcesses</a></li><li><a href="AdminTask.html">AdminTask</a></li><li><a href="AdminUser.html">AdminUser</a></li><li><a href="Datasource.html">Datasource</a></li><li><a href="Dispatch.html">Dispatch</a></li><li><a href="Documents.html">Documents</a></li><li><a href="External.html">External</a></li><li><a href="GeoLocation.html">GeoLocation</a></li><li><a href="Login.html">Login</a></li><li><a href="Notification.html">Notification</a></li><li><a href="Organization.html">Organization</a></li><li><a href="Process.html">Process</a></li><li><a href="Register.html">Register</a></li><li><a href="Session.html">Session</a></li><li><a href="Task.html">Task</a></li><li><a href="TaskAvailable.html">TaskAvailable</a></li><li><a href="User.html">User</a></li><li><a href="Users.html">Users</a></li></ul></div>
72
+
73
+ </nav>
74
+ </div>
75
+ <div class="core" id="main-content-wrapper">
76
+ <div class="content">
77
+ <header class="page-title">
78
+ <p>Source</p>
79
+ <h1>admin/organization.js</h1>
80
+ </header>
81
+
82
+
83
+
84
+
85
+
86
+ <section>
87
+ <article>
88
+ <pre class="prettyprint source linenums"><code>import _ from 'lodash';
89
+ import Boom from '@hapi/boom';
90
+ import Joi from 'joi';
91
+
92
+ /**
93
+ * Class for organizations, permission user
94
+ * @class
95
+ */
96
+ class Organization {
97
+
98
+ constructor(options) {
99
+ Joi.assert(options, Joi.object().required());
100
+ Joi.assert(options.parent, Joi.object().required());
101
+
102
+ const self = this;
103
+ self.parent = options.parent;
104
+ self._client = self.parent.dispatch.getClient();
105
+ }
106
+
107
+ /**
108
+ * @author Augusto Pissarra &lt;abernardo.br@gmail.com>
109
+ * @description Get the return data and check for errors
110
+ * @param {object} retData Response HTTP
111
+ * @return {*}
112
+ * @private
113
+ */
114
+ _returnData(retData, def = {}) {
115
+ if (retData.status !== 200) {
116
+ throw Boom.badRequest(_.get(retData, 'message', 'No error message reported!'))
117
+ } else {
118
+ return _.get(retData, 'data', def);
119
+ }
120
+ }
121
+
122
+ /**
123
+ * @author CloudBrasil &lt;abernardo.br@gmail.com>
124
+ * @description Set header with new session
125
+ * @param {string} session Session, token JWT
126
+ * @return {object} header with new session
127
+ * @private
128
+ */
129
+ _setHeader(session) {
130
+ return {
131
+ headers: {
132
+ authorization: session,
133
+ }
134
+ };
135
+ }
136
+
137
+ /**
138
+ * @author CloudBrasil &lt;abernardo.br@gmail.com>
139
+ * @description Update avatar of organization by session of user not allow session user SU
140
+ * @param {object} params Params to update avatar
141
+ * @param {string} params.orgId - Organization id
142
+ * @param {string} params.avatar - Image in base64 to update
143
+ * @param {string} params.type - MimeType (image/png)
144
+ * @param {string} session - Is token JWT of user SU
145
+ * @return {Promise}
146
+ * @public
147
+ * @async
148
+ * @example
149
+ *
150
+ * const API = require('@docbrasil/api-systemmanager');
151
+ * const api = new API();
152
+ * const params = {
153
+ * orgId: '5dadd01dc4af3941d42f8c5c',
154
+ * avatar: 'iVBORw0KGgoAAAANSUhEUgAAAasAAAHnCAYAAAAGi3J6AAA9BElEQVR...He3/kk/m7kl35S8AAAAASUVORK5CYII=',
155
+ * type: 'image/png',
156
+ * };
157
+ * const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
158
+ * await api.admin.organizations.upsertAvatar(params, session);
159
+ */
160
+ async upsertAvatar(params = {}, session) {
161
+ const self = this;
162
+
163
+ try {
164
+ Joi.assert(params, Joi.object().required());
165
+ Joi.assert(params.orgId, Joi.string().required(), 'Organization id');
166
+ Joi.assert(params.avatar, Joi.string().required(), 'Image in base64 to update');
167
+ Joi.assert(params.type, Joi.string().required(), 'MimeType (image/png)');
168
+ Joi.assert(session, Joi.string().required(), 'Is token JWT of user SU');
169
+
170
+ const {orgId, avatar, type} = params;
171
+ const payload = {avatar, type};
172
+
173
+ const apiCall = self._client.put(`/admin/organizations/${orgId}/logo`, payload, self._setHeader(session));
174
+ return self._returnData(await apiCall);
175
+ } catch (ex) {
176
+ throw ex;
177
+ }
178
+ }
179
+
180
+ /**
181
+ * @author CloudBrasil &lt;abernardo.br@gmail.com>
182
+ * @description Remove avatar of user by session of user not allow session user SU
183
+ * @param {string} params.orgId - Organization id
184
+ * @param {string} session - Is token JWT of user SU
185
+ * @return {Promise}
186
+ * @public
187
+ * @async
188
+ * @example
189
+ *
190
+ * const API = require('@docbrasil/api-systemmanager');
191
+ * const api = new API();
192
+ * const orgId = '5dadd01dc4af3941d42f8c5c';
193
+ * const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
194
+ * await api.admin.organizations.removeAvatar(orgId, session);
195
+ */
196
+ async removeAvatar(orgId, session) {
197
+ const self = this;
198
+
199
+ try {
200
+ Joi.assert(orgId, Joi.string().required(), 'Organization id');
201
+ Joi.assert(session, Joi.string().required(), 'Is token JWT of user SU');
202
+
203
+ const apiCall = self._client.delete(`/admin/organizations/${orgId}/logo`, self._setHeader(session));
204
+ return self._returnData(await apiCall);
205
+ } catch (ex) {
206
+ throw ex;
207
+ }
208
+ }
209
+ }
210
+
211
+ export default Organization;
212
+ </code></pre>
213
+ </article>
214
+ </section>
215
+
216
+
217
+
218
+
219
+ </div>
220
+
221
+ <footer class="footer">
222
+ <div class="content has-text-centered">
223
+ <p>Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a></p>
224
+ <p class="sidebar-created-by">
225
+ <a href="https://github.com/SoftwareBrothers/better-docs" target="_blank">BetterDocs theme</a> provided with <i class="fas fa-heart"></i> by
226
+ <a href="http://softwarebrothers.co" target="_blank">SoftwareBrothers - JavaScript Development Agency</a>
227
+ </p>
228
+ </div>
229
+ </footer>
230
+
231
+ </div>
232
+ <div id="side-nav" class="side-nav">
233
+ </div>
234
+ </div>
235
+ <script src="scripts/app.min.js"></script>
236
+ <script>PR.prettyPrint();</script>
237
+ <script src="scripts/linenumber.js"> </script>
238
+
239
+
240
+ </body>
241
+ </html>
@@ -0,0 +1,233 @@
1
+
2
+
3
+ <!DOCTYPE html>
4
+ <html lang="en">
5
+
6
+ <head>
7
+
8
+ <meta charset="utf-8">
9
+ <meta name="viewport" content="width=device-width, initial-scale=1">
10
+ <title> admin/plugin.js</title>
11
+
12
+ <script src="https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/run_prettify.js"></script>
13
+ <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
14
+ <script src="./build/entry.js"></script>
15
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
16
+ <!--[if lt IE 9]>
17
+ <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
18
+ <![endif]-->
19
+ <link href="https://fonts.googleapis.com/css?family=Roboto:100,400,700|Inconsolata,700" rel="stylesheet">
20
+ <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css" integrity="sha384-UHRtZLI+pbxtHCWp1t77Bi1L4ZtiqrqD80Kn4Z8NTSRyMA2Fd33n5dQ8lWUE00s/" crossorigin="anonymous">
21
+ <link type="text/css" rel="stylesheet" href="https://jmblog.github.io/color-themes-for-google-code-prettify/themes/tomorrow-night.min.css">
22
+ <link type="text/css" rel="stylesheet" href="styles/app.min.css">
23
+ <link type="text/css" rel="stylesheet" href="styles/iframe.css">
24
+ <link type="text/css" rel="stylesheet" href="">
25
+ <script async defer src="https://buttons.github.io/buttons.js"></script>
26
+
27
+
28
+ </head>
29
+
30
+
31
+
32
+ <body class="layout small-header">
33
+ <div id="stickyNavbarOverlay"></div>
34
+
35
+
36
+ <div class="top-nav">
37
+ <div class="inner">
38
+ <a id="hamburger" role="button" class="navbar-burger" aria-label="menu" aria-expanded="false">
39
+ <span aria-hidden="true"></span>
40
+ <span aria-hidden="true"></span>
41
+ <span aria-hidden="true"></span>
42
+ </a>
43
+ <div class="logo">
44
+
45
+
46
+ </div>
47
+ <div class="menu">
48
+
49
+ <div class="navigation">
50
+ <a
51
+ href="index.html"
52
+ class="link"
53
+ >
54
+ Documentation
55
+ </a>
56
+
57
+
58
+
59
+ </div>
60
+ </div>
61
+ </div>
62
+ </div>
63
+ <div id="main">
64
+ <div
65
+ class="sidebar "
66
+ id="sidebarNav"
67
+ >
68
+
69
+ <nav>
70
+
71
+ <h2><a href="index.html">Documentation</a></h2><div class="category"><h3>Classes</h3><ul><li><a href="Admin.html">Admin</a></li><li><a href="AdminDocuments.html">AdminDocuments</a></li><li><a href="AdminForm.html">AdminForm</a></li><li><a href="AdminLists.html">AdminLists</a></li><li><a href="AdminMessage.html">AdminMessage</a></li><li><a href="AdminNotification.html">AdminNotification</a></li><li><a href="AdminPlugin.html">AdminPlugin</a></li><li><a href="AdminPolicy.html">AdminPolicy</a></li><li><a href="AdminProcesses.html">AdminProcesses</a></li><li><a href="AdminTask.html">AdminTask</a></li><li><a href="AdminUser.html">AdminUser</a></li><li><a href="Datasource.html">Datasource</a></li><li><a href="Dispatch.html">Dispatch</a></li><li><a href="Documents.html">Documents</a></li><li><a href="External.html">External</a></li><li><a href="GeoLocation.html">GeoLocation</a></li><li><a href="Login.html">Login</a></li><li><a href="Notification.html">Notification</a></li><li><a href="Organization.html">Organization</a></li><li><a href="Process.html">Process</a></li><li><a href="Register.html">Register</a></li><li><a href="Session.html">Session</a></li><li><a href="Task.html">Task</a></li><li><a href="TaskAvailable.html">TaskAvailable</a></li><li><a href="User.html">User</a></li><li><a href="Users.html">Users</a></li></ul></div>
72
+
73
+ </nav>
74
+ </div>
75
+ <div class="core" id="main-content-wrapper">
76
+ <div class="content">
77
+ <header class="page-title">
78
+ <p>Source</p>
79
+ <h1>admin/plugin.js</h1>
80
+ </header>
81
+
82
+
83
+
84
+
85
+
86
+ <section>
87
+ <article>
88
+ <pre class="prettyprint source linenums"><code>import _ from 'lodash';
89
+ import Boom from '@hapi/boom';
90
+ import Joi from 'joi';
91
+
92
+ /**
93
+ * Admin Class for plugin, permission admin
94
+ * @class
95
+ */
96
+ class AdminPlugin {
97
+
98
+ constructor(options) {
99
+ Joi.assert(options, Joi.object().required());
100
+ Joi.assert(options.parent, Joi.object().required());
101
+
102
+ const self = this;
103
+ self.parent = options.parent;
104
+ self._client = self.parent.dispatch.getClient();
105
+ }
106
+
107
+ /**
108
+ * @author Augusto Pissarra &lt;abernardo.br@gmail.com>
109
+ * @description Get the return data and check for errors
110
+ * @param {object} retData Response HTTP
111
+ * @return {*}
112
+ * @private
113
+ */
114
+ _returnData(retData, def = {}) {
115
+ if (retData.status !== 200) {
116
+ return Boom.badRequest(_.get(retData, 'message', 'No error message reported!'))
117
+ } else {
118
+ return _.get(retData, 'data', def);
119
+ }
120
+ }
121
+
122
+ /**
123
+ * @author CloudBrasil &lt;abernardo.br@gmail.com>
124
+ * @description Set header with new session
125
+ * @param {string} session Session, token JWT
126
+ * @return {object} header with new session
127
+ * @private
128
+ */
129
+ _setHeader(session) {
130
+ return {
131
+ headers: {
132
+ authorization: session,
133
+ }
134
+ };
135
+ }
136
+
137
+ /**
138
+ * @author Augusto Pissarra &lt;abernardo.br@gmail.com>
139
+ * @description Find plugins
140
+ * @param {object} params - Params to search plugins
141
+ * @param {number} params.page - Start page to pagination
142
+ * @param {number} params.perPage - Items per page
143
+ * @public
144
+ * @async
145
+ * @example
146
+ *
147
+ * const API = require('@docbrasil/api-systemmanager');
148
+ * const api = new API();
149
+ * const params = {page: 1, perPage: 200};
150
+ * const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
151
+ * await api.user.organization.findById(params, session);
152
+ */
153
+ async find(params, session) {
154
+ const self = this;
155
+
156
+ try {
157
+ Joi.assert(params, Joi.object().required(), 'Params to search plugins');
158
+ Joi.assert(params.page, Joi.number(), 'Start page to pagination');
159
+ Joi.assert(params.perPage, Joi.number(), 'Items per page');
160
+ Joi.assert(session, Joi.string().required(), 'SM session (JWT) to call API');
161
+
162
+ const {page = 1, perPage = 300} = params
163
+ const queryString = `page=${page}&amp;perPage=${perPage}`;
164
+
165
+ const apiCall = self._client.post(`/admin/plugins?${queryString}`, {}, self._setHeader(session));
166
+ return self._returnData(await apiCall);
167
+ } catch (ex) {
168
+ throw ex;
169
+ }
170
+ }
171
+
172
+ /**
173
+ * @author CloudBrasil &lt;abernardo.br@gmail.com>
174
+ * @description Get plugin by ID
175
+ * @param {string} id Plugin Id (_id database)
176
+ * @param {string} session Session, token JWT
177
+ * @return {Promise}
178
+ * @public
179
+ * @async
180
+ * @example
181
+ *
182
+ * const API = require('@docbrasil/api-systemmanager');
183
+ * const api = new API();
184
+ * const id ='55e4a3bd6be6b45210833fae',
185
+ * const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
186
+ * await api.admin.plugin.findById(id, session);
187
+ */
188
+ async findById(id, session) {
189
+ const self = this;
190
+
191
+ try {
192
+ Joi.assert(id, Joi.string().required());
193
+ Joi.assert(session, Joi.string().required());
194
+
195
+ const apiCall = self._client.get(`/admin/plugins/${id}`, self._setHeader(session));
196
+ return self._returnData(await apiCall);
197
+ } catch (ex) {
198
+ throw ex;
199
+ }
200
+ }
201
+ }
202
+
203
+ export default AdminPlugin;
204
+ </code></pre>
205
+ </article>
206
+ </section>
207
+
208
+
209
+
210
+
211
+ </div>
212
+
213
+ <footer class="footer">
214
+ <div class="content has-text-centered">
215
+ <p>Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a></p>
216
+ <p class="sidebar-created-by">
217
+ <a href="https://github.com/SoftwareBrothers/better-docs" target="_blank">BetterDocs theme</a> provided with <i class="fas fa-heart"></i> by
218
+ <a href="http://softwarebrothers.co" target="_blank">SoftwareBrothers - JavaScript Development Agency</a>
219
+ </p>
220
+ </div>
221
+ </footer>
222
+
223
+ </div>
224
+ <div id="side-nav" class="side-nav">
225
+ </div>
226
+ </div>
227
+ <script src="scripts/app.min.js"></script>
228
+ <script>PR.prettyPrint();</script>
229
+ <script src="scripts/linenumber.js"> </script>
230
+
231
+
232
+ </body>
233
+ </html>
@@ -0,0 +1,195 @@
1
+
2
+
3
+ <!DOCTYPE html>
4
+ <html lang="en">
5
+
6
+ <head>
7
+
8
+ <meta charset="utf-8">
9
+ <meta name="viewport" content="width=device-width, initial-scale=1">
10
+ <title> admin/policy.js</title>
11
+
12
+ <script src="https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/run_prettify.js"></script>
13
+ <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
14
+ <script src="./build/entry.js"></script>
15
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
16
+ <!--[if lt IE 9]>
17
+ <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
18
+ <![endif]-->
19
+ <link href="https://fonts.googleapis.com/css?family=Roboto:100,400,700|Inconsolata,700" rel="stylesheet">
20
+ <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css" integrity="sha384-UHRtZLI+pbxtHCWp1t77Bi1L4ZtiqrqD80Kn4Z8NTSRyMA2Fd33n5dQ8lWUE00s/" crossorigin="anonymous">
21
+ <link type="text/css" rel="stylesheet" href="https://jmblog.github.io/color-themes-for-google-code-prettify/themes/tomorrow-night.min.css">
22
+ <link type="text/css" rel="stylesheet" href="styles/app.min.css">
23
+ <link type="text/css" rel="stylesheet" href="styles/iframe.css">
24
+ <link type="text/css" rel="stylesheet" href="">
25
+ <script async defer src="https://buttons.github.io/buttons.js"></script>
26
+
27
+
28
+ </head>
29
+
30
+
31
+
32
+ <body class="layout small-header">
33
+ <div id="stickyNavbarOverlay"></div>
34
+
35
+
36
+ <div class="top-nav">
37
+ <div class="inner">
38
+ <a id="hamburger" role="button" class="navbar-burger" aria-label="menu" aria-expanded="false">
39
+ <span aria-hidden="true"></span>
40
+ <span aria-hidden="true"></span>
41
+ <span aria-hidden="true"></span>
42
+ </a>
43
+ <div class="logo">
44
+
45
+
46
+ </div>
47
+ <div class="menu">
48
+
49
+ <div class="navigation">
50
+ <a
51
+ href="index.html"
52
+ class="link"
53
+ >
54
+ Documentation
55
+ </a>
56
+
57
+
58
+
59
+ </div>
60
+ </div>
61
+ </div>
62
+ </div>
63
+ <div id="main">
64
+ <div
65
+ class="sidebar "
66
+ id="sidebarNav"
67
+ >
68
+
69
+ <nav>
70
+
71
+ <h2><a href="index.html">Documentation</a></h2><div class="category"><h3>Classes</h3><ul><li><a href="Admin.html">Admin</a></li><li><a href="AdminDocuments.html">AdminDocuments</a></li><li><a href="AdminForm.html">AdminForm</a></li><li><a href="AdminLists.html">AdminLists</a></li><li><a href="AdminMessage.html">AdminMessage</a></li><li><a href="AdminNotification.html">AdminNotification</a></li><li><a href="AdminPlugin.html">AdminPlugin</a></li><li><a href="AdminPolicy.html">AdminPolicy</a></li><li><a href="AdminProcesses.html">AdminProcesses</a></li><li><a href="AdminTask.html">AdminTask</a></li><li><a href="AdminUser.html">AdminUser</a></li><li><a href="Datasource.html">Datasource</a></li><li><a href="Dispatch.html">Dispatch</a></li><li><a href="Documents.html">Documents</a></li><li><a href="External.html">External</a></li><li><a href="GeoLocation.html">GeoLocation</a></li><li><a href="Login.html">Login</a></li><li><a href="Notification.html">Notification</a></li><li><a href="Organization.html">Organization</a></li><li><a href="Process.html">Process</a></li><li><a href="Register.html">Register</a></li><li><a href="Session.html">Session</a></li><li><a href="Task.html">Task</a></li><li><a href="TaskAvailable.html">TaskAvailable</a></li><li><a href="User.html">User</a></li><li><a href="Users.html">Users</a></li></ul></div>
72
+
73
+ </nav>
74
+ </div>
75
+ <div class="core" id="main-content-wrapper">
76
+ <div class="content">
77
+ <header class="page-title">
78
+ <p>Source</p>
79
+ <h1>admin/policy.js</h1>
80
+ </header>
81
+
82
+
83
+
84
+
85
+
86
+ <section>
87
+ <article>
88
+ <pre class="prettyprint source linenums"><code>import _ from 'lodash';
89
+ import Boom from '@hapi/boom';
90
+ import Joi from 'joi';
91
+
92
+ /**
93
+ * Admin Class for policy, permission admin
94
+ * @class
95
+ */
96
+ class AdminPolicy {
97
+
98
+ constructor(options) {
99
+ Joi.assert(options, Joi.object().required());
100
+ Joi.assert(options.parent, Joi.object().required());
101
+
102
+ const self = this;
103
+ self.parent = options.parent;
104
+ self._client = self.parent.dispatch.getClient();
105
+ }
106
+
107
+ /**
108
+ * @author CloudBrasil &lt;abernardo.br@gmail.com>
109
+ * @description Get the return data and check for errors
110
+ * @param {object} retData Response HTTP
111
+ * @return {*}
112
+ * @private
113
+ */
114
+ _returnData(retData, def = {}) {
115
+ if (retData.status !== 200) {
116
+ return Boom.badRequest(_.get(retData, 'message', 'No error message reported!'))
117
+ } else {
118
+ return _.get(retData, 'data', def);
119
+ }
120
+ }
121
+
122
+ /**
123
+ * @author CloudBrasil &lt;abernardo.br@gmail.com>
124
+ * @description Set header with new session
125
+ * @param {string} session Session, token JWT
126
+ * @return {object} header with new session
127
+ * @private
128
+ */
129
+ _setHeader(session) {
130
+ return {
131
+ headers: {
132
+ authorization: session,
133
+ }
134
+ };
135
+ }
136
+
137
+ /**
138
+ * @author CloudBrasil &lt;abernardo.br@gmail.com>
139
+ * @description Find all policies
140
+ * @param {string} session Session, token JWT
141
+ * @return {Promise}
142
+ * @public
143
+ * @async
144
+ * @example
145
+ *
146
+ * const API = require('@docbrasil/api-systemmanager');
147
+ * const api = new API();
148
+ * const session = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
149
+ * await api.admin.policy.find(session);
150
+ */
151
+ async find(session) {
152
+ const self = this;
153
+
154
+ try {
155
+ Joi.assert(session, Joi.string().required());
156
+
157
+ const apiCall = self._client.get('/admin/policies', self._setHeader(session));
158
+ return self._returnData(await apiCall);
159
+ } catch (ex) {
160
+ throw ex;
161
+ }
162
+ }
163
+ }
164
+
165
+ export default AdminPolicy;
166
+ </code></pre>
167
+ </article>
168
+ </section>
169
+
170
+
171
+
172
+
173
+ </div>
174
+
175
+ <footer class="footer">
176
+ <div class="content has-text-centered">
177
+ <p>Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a></p>
178
+ <p class="sidebar-created-by">
179
+ <a href="https://github.com/SoftwareBrothers/better-docs" target="_blank">BetterDocs theme</a> provided with <i class="fas fa-heart"></i> by
180
+ <a href="http://softwarebrothers.co" target="_blank">SoftwareBrothers - JavaScript Development Agency</a>
181
+ </p>
182
+ </div>
183
+ </footer>
184
+
185
+ </div>
186
+ <div id="side-nav" class="side-nav">
187
+ </div>
188
+ </div>
189
+ <script src="scripts/app.min.js"></script>
190
+ <script>PR.prettyPrint();</script>
191
+ <script src="scripts/linenumber.js"> </script>
192
+
193
+
194
+ </body>
195
+ </html>