61 lines
1.4 KiB
JavaScript
61 lines
1.4 KiB
JavaScript
'use strict';
|
|
|
|
var config = require('../../config/config');
|
|
|
|
// Set the initial vars
|
|
var timestamp = +new Date(),
|
|
delay = config.currencyRefresh * 60000,
|
|
bitstampRate = 0;
|
|
|
|
exports.index = function(req, res) {
|
|
|
|
var _xhr = function() {
|
|
if (typeof XMLHttpRequest !== 'undefined' && XMLHttpRequest !== null) {
|
|
return new XMLHttpRequest();
|
|
} else if (typeof require !== 'undefined' && require !== null) {
|
|
var XMLhttprequest = require('xmlhttprequest').XMLHttpRequest;
|
|
return new XMLhttprequest();
|
|
}
|
|
};
|
|
|
|
var _request = function(url, cb) {
|
|
var request;
|
|
request = _xhr();
|
|
request.open('GET', url, true);
|
|
request.onreadystatechange = function() {
|
|
if (request.readyState === 4) {
|
|
if (request.status === 200) {
|
|
return cb(false, request.responseText);
|
|
}
|
|
|
|
return cb(true, {
|
|
status: request.status,
|
|
message: 'Request error'
|
|
});
|
|
}
|
|
};
|
|
|
|
return request.send(null);
|
|
};
|
|
|
|
// Init
|
|
var currentTime = +new Date();
|
|
if (bitstampRate === 0 || currentTime >= (timestamp + delay)) {
|
|
timestamp = currentTime;
|
|
|
|
_request('https://www.bitstamp.net/api/ticker/', function(err, data) {
|
|
if (!err) bitstampRate = parseFloat(JSON.parse(data).last);
|
|
|
|
res.jsonp({
|
|
status: 200,
|
|
data: { bitstamp: bitstampRate }
|
|
});
|
|
});
|
|
} else {
|
|
res.jsonp({
|
|
status: 200,
|
|
data: { bitstamp: bitstampRate }
|
|
});
|
|
}
|
|
};
|