diff --git a/src/js/controllers/bitpayCard.js b/src/js/controllers/bitpayCard.js index 48ec83506..40187b4ef 100644 --- a/src/js/controllers/bitpayCard.js +++ b/src/js/controllers/bitpayCard.js @@ -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; } diff --git a/src/js/controllers/preferencesBitpayCard.js b/src/js/controllers/preferencesBitpayCard.js index 33060296d..f97bc255e 100644 --- a/src/js/controllers/preferencesBitpayCard.js +++ b/src/js/controllers/preferencesBitpayCard.js @@ -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'); diff --git a/src/js/services/bitpayCardService.js b/src/js/services/bitpayCardService.js index bd671c02d..1d6d52983 100644 --- a/src/js/services/bitpayCardService.js +++ b/src/js/services/bitpayCardService.js @@ -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(); }); });