Merge pull request #5094 from ajp8164/bug/improve-remove-card-error-handling

Improve the error handling to expose and log errors if removing a car…
This commit is contained in:
Gustavo Maximiliano Cortez 2016-11-22 09:52:03 -03:00 committed by GitHub
commit 523379c6a3
3 changed files with 19 additions and 6 deletions

View File

@ -63,7 +63,9 @@ angular.module('copayApp.controllers').controller('bitpayCardController', functi
if (err) { if (err) {
$log.error(err); $log.error(err);
$scope.error = gettextCatalog.getString('Could not get transactions'); self.bitpayCardTransactionHistory = null;
self.bitpayCardCurrentBalance = null;
popupService.showAlert(gettextCatalog.getString('Error'), gettextCatalog.getString('Could not get transactions'));
return; return;
} }

View File

@ -11,7 +11,10 @@ angular.module('copayApp.controllers').controller('preferencesBitpayCardControll
}; };
var remove = function(card) { var remove = function(card) {
bitpayCardService.remove(card, function() { bitpayCardService.remove(card, function(err) {
if (err) {
return popupService.showAlert(gettextCatalog.getString('Error'), gettextCatalog.getString('Could not remove card'));
}
$ionicHistory.clearHistory(); $ionicHistory.clearHistory();
$timeout(function() { $timeout(function() {
$state.go('tabs.home'); $state.go('tabs.home');

View File

@ -33,7 +33,7 @@ angular.module('copayApp.services').factory('bitpayCardService', function($http,
var _setError = function(msg, e) { var _setError = function(msg, e) {
$log.error(msg); $log.error(msg);
var error = e.data ? e.data.error : msg; var error = (e && e.data && e.data.error) ? e.data.error : msg;
return error; return error;
}; };
@ -175,7 +175,7 @@ angular.module('copayApp.services').factory('bitpayCardService', function($http,
root.getBitpayDebitCards(function(err, data) { root.getBitpayDebitCards(function(err, data) {
if (err) return cb(err); if (err) return cb(err);
var card = lodash.find(data, {id : cardId}); var card = lodash.find(data, {id : cardId});
if (!card) return cb(_setError('Not card found')); if (!card) return cb(_setError('Card not found'));
// Get invoices // Get invoices
$http(_post('/api/v2/' + card.token, json, credentials)).then(function(data) { $http(_post('/api/v2/' + card.token, json, credentials)).then(function(data) {
$log.info('BitPay Get Invoices: SUCCESS'); $log.info('BitPay Get Invoices: SUCCESS');
@ -212,7 +212,7 @@ angular.module('copayApp.services').factory('bitpayCardService', function($http,
root.getBitpayDebitCards(function(err, data) { root.getBitpayDebitCards(function(err, data) {
if (err) return cb(err); if (err) return cb(err);
var card = lodash.find(data, {id : cardId}); var card = lodash.find(data, {id : cardId});
if (!card) return cb(_setError('Not card found')); if (!card) return cb(_setError('Card not found'));
$http(_post('/api/v2/' + card.token, json, credentials)).then(function(data) { $http(_post('/api/v2/' + card.token, json, credentials)).then(function(data) {
$log.info('BitPay TopUp: SUCCESS'); $log.info('BitPay TopUp: SUCCESS');
if(data.data.error) { if(data.data.error) {
@ -290,8 +290,16 @@ angular.module('copayApp.services').factory('bitpayCardService', function($http,
root.remove = function(card, cb) { root.remove = function(card, cb) {
storageService.removeBitpayDebitCard(BITPAY_CARD_NETWORK, card, function(err) { storageService.removeBitpayDebitCard(BITPAY_CARD_NETWORK, card, function(err) {
if (err) {
$log.error('Error removing BitPay debit card: ' + err);
// Continue, try to remove/cleanup card history
}
storageService.removeBitpayDebitCardHistory(BITPAY_CARD_NETWORK, card, function(err) { storageService.removeBitpayDebitCardHistory(BITPAY_CARD_NETWORK, card, function(err) {
$log.info('BitPay Debit Card(s) Removed: SUCCESS'); if (err) {
$log.error('Error removing BitPay debit card transaction history: ' + err);
return cb(err);
}
$log.info('Successfully removed BitPay debit card');
return cb(); return cb();
}); });
}); });