silvrgit/lib/btc.js
2017-06-12 13:47:24 +01:00

63 lines
1.5 KiB
JavaScript

let http = require('http');
let btcCache = {};
exports.doBTC = function (req, res) {
console.log('Bitcoin request');
function btcQuery (callback, r) {
var req = r;
var options = {
host: 'api.coindesk.com',
// port: 80,
path: '/v1/bpi/currentprice.json',
// method: 'GET',
headers: {
/* 'Content-Type': 'application/json',
'Content-Length': Buffer.byteLength(data)*/
}
};
try {
http.request(options).on('response', function (response) {
var data = '';
response.on('data', function (chunk) {
data += chunk;
});
response.on('end', function () {
console.log('>> data', data);
let cData = {};
try {
cData = JSON.parse(data);
}
catch (e) {
console.error(e);
}
finally{
callback(cData, r);
}
});
response.on('error', function (e) {
console.error(e);
});
}).end();
} catch (e) {
console.error(e);
}
}
let now = new Date();
if (now - GLOBAL.lastcheck > (59000 )) {
btcQuery(function (a) {
// console.log(a);
console.log('Got btc data.');
btcCache = a;
GLOBAL.lastcheck = now;
res.setHeader('Content-Type', 'application/json');
res.end(JSON.stringify(btcCache));
}, res);
} else {
console.log('Using cache');
res.setHeader('Content-Type', 'application/json');
res.end(JSON.stringify(btcCache));
}
};