major refactoring to use session object

This commit is contained in:
Josh Harvey 2014-11-25 11:54:03 -05:00
parent fe008a9db6
commit 0b438a62e5
4 changed files with 94 additions and 120 deletions

View file

@ -28,9 +28,6 @@ try {
function poll(req, res) {
var rateRec = plugins.getDeviceRate();
var balanceRec = plugins.getBalance();
var fingerprint = getFingerprint(req);
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'.
@ -63,7 +60,7 @@ function poll(req, res) {
config.exchanges.settings.commission;
var sessionId = req.get('session-id');
plugins.dispenseStatus(fingerprint, sessionId, function(err, dispenseStatus) {
plugins.dispenseStatus(session(req), function(err, dispenseStatus) {
if (err) return logger.error(err);
var response = {
err: null,
@ -86,14 +83,14 @@ function poll(req, res) {
}
function trade(req, res) {
plugins.trade(getFingerprint(req), req.body, function(err) {
plugins.trade(session(req), req.body, function(err) {
var statusCode = err ? 500 : 201;
res.json(statusCode, {err: err});
});
}
function send(req, res) {
plugins.sendBitcoins(getFingerprint(req), req.body, function(err, status) {
plugins.sendBitcoins(session(req), req.body, function(err, status) {
// TODO: use status.statusCode here after confirming machine compatibility
// FIX: (joshm) set txHash to status.txId instead of previous status.txHash which wasn't being set
// Need to clean up txHash vs txId
@ -108,7 +105,7 @@ function send(req, res) {
function cashOut(req, res) {
logger.info({tx: req.body, cmd: 'cashOut'});
plugins.cashOut(getFingerprint(req), req.body, function(err, bitcoinAddress) {
plugins.cashOut(session(req), req.body, function(err, bitcoinAddress) {
if (err) logger.error(err);
res.json({
@ -120,12 +117,12 @@ function cashOut(req, res) {
}
function dispenseAck(req, res) {
plugins.dispenseAck(getFingerprint(req), req.body);
plugins.dispenseAck(session(req), req.body);
res.json(200);
}
function deviceEvent(req, res) {
plugins.logEvent(req.body, getFingerprint(req));
plugins.logEvent(session(req), req.body);
res.json({err: null});
}
@ -195,6 +192,10 @@ function init(localConfig) {
return app;
}
function session(req) {
return {fingerprint: getFingerprint(req), id: req.get('session-id')};
}
function getFingerprint(req) {
return typeof req.connection.getPeerCertificate === 'function' &&
req.connection.getPeerCertificate().fingerprint;