-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
44 lines (36 loc) · 1010 Bytes
/
index.js
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
var request = require("request");
module.exports = {
"handle": function(parameters){
return new Promise(function(resolve, reject){
request(parameters, function(err, response, body){
if(err){
reject(formatError(err));
} else {
resolve(formatResponse(response));
}
});
});
}
};
function formatError(error, response) {
return {
error: error,
response: response,
};
}
function formatResponse(response){
return {
"headers": response.headers,
"status": {
"code": response.statusCode,
"message": response.statusMessage
},
"body": response.body,
"data": formatBody(response)
};
}
function formatBody(response){
if (response.headers["content-type"] && response.headers["content-type"].split(";")[0] === "application/json") {
return JSON.parse(response.body);
}
}