From 3bd3ea2b1f5115126aa6f66cbe741cc1e76e706a Mon Sep 17 00:00:00 2001 From: Ian Coleman Date: Fri, 21 Mar 2014 12:57:34 +1100 Subject: [PATCH] AddressProperty route for /addr/[:addr]/property eg /addr[:addr]/balance will return just the balance for the address. This needs expanding but is a good basis upon which to expand. --- app/controllers/addressProperties.js | 34 ++++++++++++++++++++++++++++ config/routes.js | 4 ++++ 2 files changed, 38 insertions(+) create mode 100644 app/controllers/addressProperties.js diff --git a/app/controllers/addressProperties.js b/app/controllers/addressProperties.js new file mode 100644 index 00000000..f3f9a26d --- /dev/null +++ b/app/controllers/addressProperties.js @@ -0,0 +1,34 @@ +'use strict'; + +/** + * Module dependencies. + */ + +var Address = require('../models/Address'), + common = require('./common'); + +var getAddr = function(req, res, next) { + var a; + try { + var addr = req.param('addr'); + a = new Address(addr); + } catch (e) { + common.handleErrors({message: 'Invalid address:' + e.message, code: 1}, res, next); + return null; + } + return a; +}; + + +exports.balance = function(req, res, next) { + var a = getAddr(req, res, next); + if (a) + a.update(function(err) { + if (err) { + return common.handleErrors(err, res); + } + else { + return res.jsonp(a.balanceSat); + } + }); +}; diff --git a/config/routes.js b/config/routes.js index 4ccb56e8..f4ac5807 100644 --- a/config/routes.js +++ b/config/routes.js @@ -32,6 +32,10 @@ module.exports = function(app) { app.get(apiPrefix + '/addr/:addr', addresses.show); app.get(apiPrefix + '/addr/:addr/utxo', addresses.utxo); + // Address property routes + var addressProperties = require('../app/controllers/addressProperties.js'); + app.get(apiPrefix + '/addr/:addr/balance', addressProperties.balance); + // Status route var st = require('../app/controllers/status'); app.get(apiPrefix + '/status', st.show);