add local server and reboot functionality

This commit is contained in:
Josh Harvey 2016-03-17 02:01:13 +02:00
parent bd9cd4f0e9
commit 593bcd6ed0
3 changed files with 129 additions and 4 deletions

View file

@ -17,11 +17,18 @@ module.exports = {
var STALE_TICKER = 180000;
var STALE_BALANCE = 180000;
var pids = {}
var reboots = {}
function poll(req, res) {
var rateRec = plugins.getDeviceRate();
var balanceRec = plugins.getBalance();
var fingerprint = getFingerprint(req)
var pid = req.query.pid
logger.debug('poll request from: %s', getFingerprint(req));
if (pid) pids[fingerprint] = {pid: pid, ts: Date.now()}
logger.debug('poll request from: %s', fingerprint);
// `rateRec` and `balanceRec` are both objects, so there's no danger
// of misinterpreting rate or balance === 0 as 'Server initializing'.
@ -59,6 +66,9 @@ function poll(req, res) {
plugins.pollQueries(session(req), function(err, results) {
if (err) return logger.error(err);
var cartridges = results.cartridges;
var reboot = reboots[fingerprint] === pid
var response = {
err: null,
rate: rate * settings.commission,
@ -70,7 +80,8 @@ function poll(req, res) {
cartridges: cartridges,
twoWayMode: cartridges ? true : false,
zeroConfLimit: settings.zeroConfLimit,
fiatTxLimit: settings.fiatTxLimit
fiatTxLimit: settings.fiatTxLimit,
reboot: reboot
};
if (response.idVerificationEnabled)
@ -185,6 +196,7 @@ function init(localConfig) {
var authMiddleware = localConfig.authMiddleware;
var reloadConfigMiddleware = localConfig.reloadConfigMiddleware;
var app = localConfig.app;
var localApp = localConfig.localApp
app.get('/poll', authMiddleware, reloadConfigMiddleware, poll);
@ -200,6 +212,26 @@ function init(localConfig) {
app.post('/pair', pair);
app.get('/raqia', raqia);
localApp.get('/pid', function (req, res) {
var machineFingerprint = req.query.fingerprint
var pidRec = pids[machineFingerprint]
res.json(pidRec)
})
localApp.post('/reboot', function (req, res) {
console.log('DEBUG1')
var pid = req.body.pid
var fingerprint = req.body.fingerprint
console.log('pid: %s, fingerprint: %s', pid, fingerprint)
if (!fingerprint || !pid) {
return res.send(400)
}
reboots[fingerprint] = pid
res.send(200)
})
return app;
}