Commit 188eec064c7916ed3055a2eee80f41aef2231364
1 parent
3d02a3eebf
Exists in
master
and in
1 other branch
Perbaikan coreapi
Showing 1 changed file with 3 additions and 3 deletions Inline Diff
lib/coreapi.js
1 | 'use strict'; | 1 | 'use strict'; |
2 | 2 | ||
3 | const request = require('request'); | 3 | const request = require('request'); |
4 | 4 | ||
5 | const logger = require('komodo-sdk/logger'); | 5 | const logger = require('komodo-sdk/logger'); |
6 | const coreUrl = require('komodo-sdk/core-url'); | 6 | const coreUrl = require('komodo-sdk/core-url'); |
7 | 7 | ||
8 | logger.verbose(`CORE URL: ${coreUrl}`); | 8 | logger.verbose(`CORE URL: ${coreUrl}`); |
9 | 9 | ||
10 | function doRequest(params, cb) { | 10 | function doRequest(params, cb) { |
11 | return new Promise((resolve) => { | 11 | return new Promise((resolve) => { |
12 | const options = { | 12 | const options = { |
13 | url: `${coreUrl}/${params.path.replace(/^\/+/, '')}`, | 13 | url: `${coreUrl}/${params.path.replace(/^\/+/, '')}`, |
14 | method: params.method || 'GET', | 14 | method: params.method || 'GET', |
15 | qs: params.qs || null, | 15 | qs: params.qs || null, |
16 | }; | 16 | }; |
17 | 17 | ||
18 | logger.verbose('Requesting to CORE', { | 18 | logger.verbose('Requesting to CORE', { |
19 | xid: params.xid, method: options.method, fullpath: options.url, qs: options.qs, | 19 | xid: params.xid, method: options.method, fullpath: options.url, qs: options.qs, |
20 | }); | 20 | }); |
21 | 21 | ||
22 | request(options, (err, res, body) => { | 22 | request(options, (err, res, body) => { |
23 | if (err) { | 23 | if (err) { |
24 | logger.warn(`COREAPI: Error doing HTTP ${options.method} to CORE. ${err.toString()}`, { xid: params.xid }); | 24 | logger.warn(`COREAPI: Error doing HTTP ${options.method} to CORE. ${err.toString()}`, { xid: params.xid }); |
25 | resolve(null); | 25 | resolve(null); |
26 | if (typeof cb === 'function') cb(err); | 26 | if (typeof cb === 'function') cb(err); |
27 | return; | 27 | return; |
28 | } | 28 | } |
29 | 29 | ||
30 | if (res.statusCode !== 200) { | 30 | if (res.statusCode !== 200) { |
31 | logger.warn(`COREAPI: CORE returning HTTP STATUS CODE ${res.statusCode}, not 200`, { xid: params.xid, body }); | 31 | logger.warn(`COREAPI: CORE returning HTTP STATUS CODE ${res.statusCode}, not 200`, { xid: params.xid, body }); |
32 | resolve(null); | 32 | resolve(null); |
33 | if (typeof cb === 'function') cb(err); | 33 | if (typeof cb === 'function') cb('NON_HTTP_STATUS_200'); |
34 | return; | 34 | return; |
35 | } | 35 | } |
36 | 36 | ||
37 | let bodyObject; | 37 | let bodyObject; |
38 | try { | 38 | try { |
39 | bodyObject = JSON.parse(body); | 39 | bodyObject = JSON.parse(body); |
40 | } catch (e) { | 40 | } catch (e) { |
41 | logger.verbose('COREAPI: CORE respond is not a JSON string'); | 41 | logger.verbose('COREAPI: CORE respond is not a JSON string'); |
42 | resolve(body); | 42 | resolve(body); |
43 | if (typeof cb === 'function') cb(err); | 43 | if (typeof cb === 'function') cb(e, body); |
44 | return; | 44 | return; |
45 | } | 45 | } |
46 | 46 | ||
47 | resolve(bodyObject); | 47 | resolve(bodyObject); |
48 | if (typeof cb === 'function') cb(err); | 48 | if (typeof cb === 'function') cb(null, bodyObject); |
49 | }); | 49 | }); |
50 | }); | 50 | }); |
51 | } | 51 | } |
52 | 52 | ||
53 | module.exports = doRequest; | 53 | module.exports = doRequest; |
54 | 54 |