added rates to tx history

This commit is contained in:
Ivan Socolsky 2014-11-28 11:23:08 -03:00
commit bdec000af5
7 changed files with 24 additions and 19 deletions

View file

@ -140,19 +140,18 @@ angular.module('copayApp.controllers').controller('HistoryController',
}
var items = res.items;
var now = new Date();
_.each(items, function(tx) {
tx.ts = tx.minedTs || tx.sentTs;
tx.rateTs = Math.floor((tx.ts || now) / 1000);
});
var index = _.indexBy(res.items, function(tx) {
return Math.floor(tx.ts / 1000);
});
var index = _.indexBy(items, 'rateTs');
rateService.getHistoricRates(w.settings.alternativeIsoCode, _.keys(index), function(err, res) {
console.log(res);
if (!err && res) {
_.each(res, function(r) {
var tx = index[r.ts];
tx.alternativeAmount = tx.amountSat * rateService.SAT_TO_BTC * r.rate;
tx.alternativeAmount = r.rate != null ? tx.amountSat * rateService.SAT_TO_BTC * r.rate : null;
});
setTimeout(function() {
$scope.$digest();

View file

@ -1,8 +1,6 @@
'use strict';
angular.module('copayApp.controllers').controller('SettingsController', function($scope, $rootScope, $window, $route, $location, $anchorScroll, controllerUtils, notification) {
controllerUtils.redirIfLogged();
$scope.title = 'Settings';
@ -93,6 +91,9 @@ angular.module('copayApp.controllers').controller('SettingsController', function
EncryptedInsightStorage: _.extend(config.EncryptedInsightStorage, {
url: insightSettings.livenet.url + '/api/email'
}),
rates: _.extend(config.rates, {
url: insightSettings.livenet.url + '/api/rates'
}),
}));
// Go home reloading the application

View file

@ -21,6 +21,8 @@ var RateService = function(opts) {
self.UNAVAILABLE_ERROR = 'Service is not available - check for service.isAvailable() or use service.whenAvailable()';
self.UNSUPPORTED_CURRENCY_ERROR = 'Currency not supported';
self._url = opts.url || 'https://insight.bitpay.com:443/api/rates';
self._isAvailable = false;
self._rates = {};
self._alternatives = [];
@ -86,7 +88,7 @@ RateService.prototype.getHistoricRate = function(code, date, cb) {
var self = this;
self.request.get({
url: 'http://localhost:3001/api/rates/' + code + '?ts=' + date,
url: self._url + '/' + code + '?ts=' + date,
json: true
}, function(err, res, body) {
if (err || res.statusCode != 200 || !body) return cb(err || res);
@ -97,12 +99,15 @@ RateService.prototype.getHistoricRate = function(code, date, cb) {
RateService.prototype.getHistoricRates = function(code, dates, cb) {
var self = this;
dates = [].concat(dates).join(',');
var tsList = dates.join(',');
self.request.get({
url: 'http://localhost:3001/api/rates/' + code + '?ts=' + dates,
url: self._url + '/' + code + '?ts=' + tsList,
json: true
}, function(err, res, body) {
if (err || res.statusCode != 200 || !body) return cb(err || res);
if (!_.isArray(body)) {
body = [{ ts: dates[0], rate: body.rate }];
}
return cb(null, body);
});
};

View file

@ -1,7 +1,8 @@
'use strict';
angular.module('copayApp.services').factory('rateService', function(request) {
return copay.RateService.singleton({
var cfg = _.extend(config.rates, {
request: request
});
return copay.RateService.singleton(cfg);
});