Move atm-api.js to routes.js
This commit is contained in:
parent
bd1963fb6a
commit
3932e17b2e
2 changed files with 3 additions and 3 deletions
108
lib/routes.js
Normal file
108
lib/routes.js
Normal file
|
|
@ -0,0 +1,108 @@
|
|||
'use strict';
|
||||
|
||||
var api = exports.api = require('./protocol/api/api');
|
||||
var _config;
|
||||
var _lamassuConfig;
|
||||
var _commission;
|
||||
|
||||
// Make sure these are higher than polling interval
|
||||
// or there will be a lot of errors
|
||||
var STALE_TICKER = 180000;
|
||||
var STALE_BALANCE = 180000;
|
||||
|
||||
Error.prototype.toJSON = function () {
|
||||
var self = this;
|
||||
var ret = {};
|
||||
Object.getOwnPropertyNames(self).forEach(function (key) {
|
||||
ret[key] = self[key];
|
||||
});
|
||||
return ret;
|
||||
};
|
||||
|
||||
var poll = function(req, res) {
|
||||
if (req.device.unpair) {
|
||||
return res.json({
|
||||
unpair: true
|
||||
});
|
||||
}
|
||||
|
||||
var rateRec = api.ticker.rate(req.params.currency);
|
||||
var satoshiBalanceRec = api.balance.balance();
|
||||
|
||||
if (rateRec === null || satoshiBalanceRec === null)
|
||||
return res.json({err: 'Server initializing'});
|
||||
if (Date.now() - rateRec.timestamp > STALE_TICKER)
|
||||
return res.json({err: 'Stale ticker'});
|
||||
if (Date.now() - rateRec.timestamp > STALE_BALANCE)
|
||||
return res.json({err: 'Stale balance'});
|
||||
|
||||
var rate = rateRec.rate;
|
||||
|
||||
res.json({
|
||||
err: null,
|
||||
rate: rate * _commission,
|
||||
fiat: api.fiatBalance(rate, satoshiBalanceRec, 0, 0),
|
||||
currency: req.params.currency,
|
||||
txLimit: parseInt(_config.exchanges.settings.compliance.maximum.limit, 10)
|
||||
});
|
||||
};
|
||||
|
||||
// TODO need to add in a UID for this trade
|
||||
var trade = function(req, res) {
|
||||
api.trade.trade(req.body.fiat, req.body.satoshis, req.body.currency, function(err) {
|
||||
res.json({err: err});
|
||||
});
|
||||
};
|
||||
|
||||
var send = function(req, res) {
|
||||
var fingerprint = req.connection.getPeerCertificate().fingerprint;
|
||||
api.send.sendBitcoins(fingerprint, req.body, function(err, txHash) {
|
||||
res.json({err: err, txHash: txHash});
|
||||
});
|
||||
};
|
||||
|
||||
var pair = function(req, res) {
|
||||
var token = req.body.token;
|
||||
var name = req.body.name;
|
||||
|
||||
_lamassuConfig.pair(
|
||||
token,
|
||||
req.connection.getPeerCertificate().fingerprint,
|
||||
name,
|
||||
function(err) {
|
||||
if (err) res.json(500, { err: err.message });
|
||||
else res.json(200);
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
exports.init = function(app, config, lamassuConfig, authMiddleware) {
|
||||
_config = config;
|
||||
_lamassuConfig = lamassuConfig;
|
||||
|
||||
api.init(_config.exchanges);
|
||||
|
||||
_commission = _config.exchanges.settings.commission;
|
||||
|
||||
exports._tradeExchange = api._tradeExchange;
|
||||
exports._transferExchange = api._transferExchange;
|
||||
|
||||
app.get('/poll/:currency', authMiddleware, poll);
|
||||
app.post('/trade', authMiddleware, trade);
|
||||
app.post('/send', authMiddleware, send);
|
||||
app.post('/pair', pair);
|
||||
|
||||
lamassuConfig.on('configUpdate', function () {
|
||||
_lamassuConfig.load(function(err, config) {
|
||||
if (err) {
|
||||
return console.error('Error while reloading config');
|
||||
}
|
||||
|
||||
_config = config;
|
||||
api.init(_config.exchanges);
|
||||
console.log('Config reloaded');
|
||||
});
|
||||
});
|
||||
|
||||
return app;
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue