1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, '__esModule', { value: true });
|
4 |
|
5 | function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
6 |
|
7 | var axios = _interopDefault(require('axios'));
|
8 | var lodash = _interopDefault(require('lodash.get'));
|
9 | var formData = _interopDefault(require('form-data'));
|
10 | var fs = _interopDefault(require('fs'));
|
11 | var path = _interopDefault(require('path'));
|
12 |
|
13 | var formDataFactory = {
|
14 | createFormData() {
|
15 | {
|
16 | const klass = formData;
|
17 | return new klass
|
18 | }
|
19 | }
|
20 | };
|
21 |
|
22 | function getInstance(baseURL) {
|
23 |
|
24 | const instance = axios.create({
|
25 | baseURL
|
26 | });
|
27 |
|
28 | instance.interceptors.response.use(response => {
|
29 | const otcsticket = lodash(response, 'headers.otcsticket');
|
30 |
|
31 | if (otcsticket) {
|
32 | instance.defaults.headers.common['OTCSTicket'] = otcsticket;
|
33 | }
|
34 | return response
|
35 | }, error => {
|
36 | return Promise.reject(error)
|
37 | });
|
38 |
|
39 | return instance
|
40 | }
|
41 |
|
42 | function axiosFactory(options) {
|
43 | const instance = getInstance(options.baseURL);
|
44 |
|
45 | const username = lodash(options, 'username');
|
46 | const password = lodash(options, 'password');
|
47 | const otcsticket = lodash(options, 'otcsticket');
|
48 |
|
49 | if (otcsticket) {
|
50 |
|
51 | instance.defaults.headers.common['OTCSTicket'] = otcsticket;
|
52 |
|
53 | } else if (username && password) {
|
54 |
|
55 | instance.interceptors.request.use(async request => {
|
56 |
|
57 | if (request.headers.common['OTCSTicket']) {
|
58 |
|
59 | return request
|
60 |
|
61 | } else {
|
62 |
|
63 | const formData = formDataFactory.createFormData();
|
64 |
|
65 | formData.append('username', username);
|
66 | formData.append('password', password);
|
67 |
|
68 | let response = await axios.post(`${options.baseURL}/api/v1/auth/`, formData.getBuffer(), { headers: formData.getHeaders() }) ;
|
69 |
|
70 | request.headers.common['OTCSTicket'] = lodash(response, 'data.ticket');
|
71 |
|
72 | return request
|
73 | }
|
74 | });
|
75 | } else {
|
76 | throw 'You must provide an otcsticket or username and password.'
|
77 | }
|
78 |
|
79 | return instance
|
80 | }
|
81 |
|
82 | var auth = axiosFactory;
|
83 |
|
84 | const SubTypes = {
|
85 | FOLDER: 0,
|
86 | DOCUMENT: 144
|
87 | };
|
88 |
|
89 | var nodes = session => ({
|
90 |
|
91 | addablenodetypes(dataid) {
|
92 | return session.get(`api/v1/nodes/${dataid}/addablenodetypes`)
|
93 | },
|
94 |
|
95 | async addDocument(parent_id, fileHandler, fileName = null) {
|
96 |
|
97 | const url = 'api/v1/nodes';
|
98 |
|
99 | const formData = formDataFactory.createFormData();
|
100 |
|
101 | formData.append('type', SubTypes.DOCUMENT);
|
102 | formData.append('parent_id', parent_id);
|
103 |
|
104 | {
|
105 |
|
106 |
|
107 | const fsp = fs.promises;
|
108 | const path$1 = path;
|
109 |
|
110 | let f = await fsp.readFile(fileHandler);
|
111 | let name = fileName || path$1.basename(fileHandler);
|
112 |
|
113 | formData.append('file', f, name);
|
114 | formData.append('name', name);
|
115 |
|
116 | return session.post(url, formData.getBuffer(), { headers: formData.getHeaders() })
|
117 |
|
118 | }
|
119 | },
|
120 |
|
121 | addItem(type, parent_id, name, params = {}) {
|
122 | return session.postForm('api/v2/nodes', {
|
123 | type,
|
124 | parent_id,
|
125 | name,
|
126 | ...params
|
127 | })
|
128 | },
|
129 |
|
130 | node(dataid, params = {}) {
|
131 | return session.get(`api/v2/nodes/${dataid}`, { params })
|
132 | },
|
133 |
|
134 | ancestors(dataid, params = {}) {
|
135 | return session.get(`api/v1/nodes/${dataid}/ancestors`, { params })
|
136 | },
|
137 |
|
138 | volumeInfo(objType) {
|
139 | return session.get(`api/v1/volumes/${objType}`)
|
140 | },
|
141 |
|
142 | volumes() {
|
143 | return session.get('api/v2/volumes')
|
144 | },
|
145 |
|
146 | addFolder(parent_id, name, params = {}) {
|
147 | return this.addItem(SubTypes.FOLDER, parent_id, name, params)
|
148 | },
|
149 |
|
150 | children(dataid, params = {}) {
|
151 |
|
152 | return session.get(`api/v2/nodes/${dataid}/nodes`, { params })
|
153 | },
|
154 |
|
155 | delete(dataid) {
|
156 | return session.delete(`api/v1/nodes/${dataid}`)
|
157 | }
|
158 |
|
159 | });
|
160 |
|
161 | var workflow = session => ({
|
162 |
|
163 | start(map_id) {
|
164 | return this.draftprocesses(map_id)
|
165 | .then(response => lodash(response, 'data.results.draftprocess_id'))
|
166 | .then(draftprocess_id => this.draftprocesses_update(draftprocess_id))
|
167 | },
|
168 |
|
169 | draftprocesses(workflow_id) {
|
170 | return session.postForm('api/v2/draftprocesses', {workflow_id})
|
171 | |
172 |
|
173 |
|
174 |
|
175 |
|
176 |
|
177 |
|
178 |
|
179 | },
|
180 |
|
181 | draftprocesses_update(draftprocess_id) {
|
182 | return session.get('api/v1/forms/draftprocesses/update', {
|
183 | params: {
|
184 | draftprocess_id
|
185 | }
|
186 | })
|
187 | },
|
188 |
|
189 | draftprocesses_put(draftprocess_id, body) {
|
190 | return session.putForm(`api/v2/draftprocesses/${draftprocess_id}`, { body })
|
191 | },
|
192 |
|
193 | draftprocesses_formUpdate(draftprocess_id, values) {
|
194 |
|
195 | const body = {
|
196 | action: "formUpdate",
|
197 | values
|
198 | };
|
199 |
|
200 | return this.draftprocesses_put(draftprocess_id, body)
|
201 | },
|
202 |
|
203 |
|
204 |
|
205 |
|
206 |
|
207 |
|
208 |
|
209 |
|
210 |
|
211 |
|
212 |
|
213 |
|
214 |
|
215 |
|
216 |
|
217 |
|
218 |
|
219 |
|
220 | });
|
221 |
|
222 | var rhcore = session => ({
|
223 | scriptNode(id, params = {}) {
|
224 | return session.get(`api/v1/rhcore/${id}`, {
|
225 | params
|
226 | })
|
227 | }
|
228 | });
|
229 |
|
230 | var members = session => ({
|
231 |
|
232 | USER: 0,
|
233 | GROUP: 1,
|
234 |
|
235 |
|
236 | userQuery(query, options = {}) {
|
237 | const params = {
|
238 | limit: 20,
|
239 | where_type: [this.USER, this.GROUP],
|
240 | query,
|
241 | ...options
|
242 | };
|
243 |
|
244 | return session.get(`api/v2/members`, {params})
|
245 | },
|
246 |
|
247 | member(id) {
|
248 | return session.get(`api/v2/members/${id}`)
|
249 | }
|
250 |
|
251 | });
|
252 |
|
253 | var versions = session => ({
|
254 |
|
255 | async addVersion(dataid, fileHandler, fileName = null) {
|
256 |
|
257 |
|
258 |
|
259 |
|
260 | const url = `api/v1/nodes/${dataid}/versions`;
|
261 |
|
262 | const formData = formDataFactory.createFormData();
|
263 |
|
264 | {
|
265 |
|
266 | const fsp = fs.promises;
|
267 | const path$1 = path;
|
268 |
|
269 | let f = await fsp.readFile(fileHandler);
|
270 | let name = fileName || path$1.basename(fileHandler);
|
271 |
|
272 | formData.append('file', f, name);
|
273 |
|
274 |
|
275 | return session.post(url, formData.getBuffer(), { headers: formData.getHeaders() })
|
276 |
|
277 | }
|
278 | },
|
279 |
|
280 | });
|
281 |
|
282 | var webreports = session => ({
|
283 |
|
284 | run(dataid, params = {}) {
|
285 | const url = `api/v1/nodes/${dataid}/output`;
|
286 | return session.get(url, { params })
|
287 | }
|
288 |
|
289 | });
|
290 |
|
291 | var Session_1 = class Session {
|
292 |
|
293 | constructor(options) {
|
294 | this.axios = auth(options);
|
295 | }
|
296 |
|
297 | get nodes() {
|
298 |
|
299 | if (this._nodes == null) {
|
300 | this._nodes = nodes(this);
|
301 | }
|
302 |
|
303 | return this._nodes
|
304 | }
|
305 |
|
306 | get workflow() {
|
307 |
|
308 | if (this._workflow == null) {
|
309 | this._workflow = workflow(this);
|
310 | }
|
311 |
|
312 | return this._workflow
|
313 | }
|
314 |
|
315 | get rhcore() {
|
316 |
|
317 | if (this._rhcore == null) {
|
318 | this._rhcore = rhcore(this);
|
319 | }
|
320 |
|
321 | return this._rhcore
|
322 | }
|
323 |
|
324 | get members() {
|
325 |
|
326 | if (this._members == null) {
|
327 | this._members = members(this);
|
328 | }
|
329 |
|
330 | return this._members
|
331 | }
|
332 |
|
333 | get webreports() {
|
334 |
|
335 | if (this._webreports == null) {
|
336 | this._webreports = webreports(this);
|
337 | }
|
338 |
|
339 | return this._webreports
|
340 | }
|
341 |
|
342 | get versions() {
|
343 |
|
344 | if (this._versions == null) {
|
345 | this._versions = versions(this);
|
346 | }
|
347 |
|
348 | return this._versions
|
349 | }
|
350 |
|
351 | _isObject(value) {
|
352 | return value && typeof value === 'object' && value.constructor === Object
|
353 | }
|
354 |
|
355 | _objectToForm(obj) {
|
356 |
|
357 | const formData = formDataFactory.createFormData();
|
358 |
|
359 | for (let [key, value] of Object.entries(obj)) {
|
360 | if (Array.isArray(value) || this._isObject(value)) {
|
361 | formData.append(key, JSON.stringify(value));
|
362 | } else {
|
363 | formData.append(key, value);
|
364 | }
|
365 | }
|
366 |
|
367 | return formData
|
368 | }
|
369 |
|
370 | get(...args) {
|
371 | return this.axios.get(...args)
|
372 | }
|
373 |
|
374 | putForm(url, params) {
|
375 | const formData = this._objectToForm(params);
|
376 | return this.put(url, formData.getBuffer(), { headers: formData.getHeaders() })
|
377 | }
|
378 |
|
379 | postForm(url, params) {
|
380 | const formData = this._objectToForm(params);
|
381 | return this.post(url, formData.getBuffer(), { headers: formData.getHeaders() })
|
382 | }
|
383 |
|
384 | patchForm(url, params) {
|
385 | const formData = this._objectToForm(params);
|
386 | return this.patch(url, formData.getBuffer(), { headers: formData.getHeaders() })
|
387 | }
|
388 |
|
389 | post(...args) {
|
390 | return this.axios.post(...args)
|
391 | }
|
392 |
|
393 | put(...args) {
|
394 | return this.axios.put(...args)
|
395 | }
|
396 |
|
397 | delete(...args) {
|
398 | return this.axios.delete(...args)
|
399 | }
|
400 |
|
401 | options(...args) {
|
402 | return this.axios.options(...args)
|
403 | }
|
404 |
|
405 | patch(...args) {
|
406 | return this.axios.patch(...args)
|
407 | }
|
408 |
|
409 | };
|
410 |
|
411 | var src = {auth, Session: Session_1};
|
412 | var src_1 = src.auth;
|
413 | var src_2 = src.Session;
|
414 |
|
415 | exports.Session = src_2;
|
416 | exports.auth = src_1;
|
417 | exports.default = src;
|
418 |
|