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) {
$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;
}

View File

@ -11,7 +11,10 @@ angular.module('copayApp.controllers').controller('preferencesBitpayCardControll
};
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();
$timeout(function() {
$state.go('tabs.home');

View File

@ -33,7 +33,7 @@ angular.module('copayApp.services').factory('bitpayCardService', function($http,
var _setError = function(msg, e) {
$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;
};
@ -175,7 +175,7 @@ angular.module('copayApp.services').factory('bitpayCardService', function($http,
root.getBitpayDebitCards(function(err, data) {
if (err) return cb(err);
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
$http(_post('/api/v2/' + card.token, json, credentials)).then(function(data) {
$log.info('BitPay Get Invoices: SUCCESS');
@ -212,7 +212,7 @@ angular.module('copayApp.services').factory('bitpayCardService', function($http,
root.getBitpayDebitCards(function(err, data) {
if (err) return cb(err);
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) {
$log.info('BitPay TopUp: SUCCESS');
if(data.data.error) {
@ -290,8 +290,16 @@ angular.module('copayApp.services').factory('bitpayCardService', function($http,
root.remove = function(card, cb) {
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) {
$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();
});
});