Commit 188eec064c7916ed3055a2eee80f41aef2231364

Authored by Adhidarma Hadiwinoto
1 parent 3d02a3eebf
Exists in master and in 1 other branch dev

Perbaikan coreapi

Showing 1 changed file with 3 additions and 3 deletions Inline Diff

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