request-to-core.js
1.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
const request = require('request');
const logger = require('tektrans-logger');
const core_url = require('../../core-url');
function coreUrl() {
return core_url;
}
function doRequest(core_path, qs, cb) {
let requestOptions = {
url: coreUrl() + core_path,
qs: qs
}
request(requestOptions, function(error, response, body) {
if (error) {
logger.warn('Error requesting to core', {requestOptions: requestOptions, error: error});
if (cb) {
cb(error);
}
return;
}
if (response.statusCode != 200) {
logger.warn('Core return http status code ' + response.statusCode, {requestOptions: requestOptions, httpStatus: response.statusCode});
if (cb) {
cb('ER_HTTP_STATUS');
}
return;
}
logger.verbose('Core response on request');
//logger.verbose('Core response on request', {body: body});
if (cb) {
cb(null, body);
}
});
}
function doRequestAndParse(core_path, qs, cb) {
doRequest(core_path, qs, function(error, core_response_body) {
if (error) {
cb(error);
return;
}
let core_response_object;
try {
core_response_object = JSON.parse(core_response_body);
}
catch(e) {
logger.warn(
'ER_CORE_RESPONSE_IS_NOT_VALID_JSON',
{
error: e,
core_path: core_path,
qs: qs,
core_response_body: core_response_body
}
);
cb('ER_CORE_RESPONSE_IS_NOT_VALID_JSON');
return;
}
cb(null, core_response_object);
});
}
exports.doRequest = doRequest;
exports.doRequestAndParse = doRequestAndParse;