From 3e1c91f19d4e501f4bc8d57fed55a758638a28ad Mon Sep 17 00:00:00 2001 From: Javier Date: Fri, 22 Jan 2016 18:16:50 -0300 Subject: [PATCH] handling new errors --- src/js/controllers/index.js | 7 ++++--- src/js/controllers/walletHome.js | 13 ++++++------- src/js/services/addressService.js | 12 +++++++----- src/js/services/profileService.js | 9 +++++---- src/js/services/pushNotificationsService.js | 2 +- 5 files changed, 23 insertions(+), 20 deletions(-) diff --git a/src/js/controllers/index.js b/src/js/controllers/index.js index 842cc04dc..928c830e9 100644 --- a/src/js/controllers/index.js +++ b/src/js/controllers/index.js @@ -1,8 +1,9 @@ 'use strict'; -angular.module('copayApp.controllers').controller('indexController', function($rootScope, $scope, $log, $filter, $timeout, pushNotificationsService, lodash, go, profileService, configService, isCordova, rateService, storageService, addressService, gettext, gettextCatalog, amMoment, nodeWebkit, addonManager, feeService, isChromeApp, bwsError, txFormatService, uxLanguage, $state, glideraService, isMobile, addressbookService) { +angular.module('copayApp.controllers').controller('indexController', function($rootScope, $scope, $log, $filter, $timeout, bwcService, pushNotificationsService, lodash, go, profileService, configService, isCordova, rateService, storageService, addressService, gettext, gettextCatalog, amMoment, nodeWebkit, addonManager, feeService, isChromeApp, bwsError, txFormatService, uxLanguage, $state, glideraService, isMobile, addressbookService) { var self = this; var SOFT_CONFIRMATION_LIMIT = 12; + var errors = bwcService.getErrors(); self.isCordova = isCordova; self.isChromeApp = isChromeApp; self.isSafari = isMobile.Safari(); @@ -470,10 +471,10 @@ angular.module('copayApp.controllers').controller('indexController', function($r // Debounce function avoids multiple popups var _handleError = function(err) { $log.warn('Client ERROR: ', err); - if (err.code === 'NOT_AUTHORIZED') { + if (err instanceof errors.NOT_AUTHORIZED) { self.notAuthorized = true; go.walletHome(); - } else if (err.code === 'NOT_FOUND') { + } else if (err instanceof errors.NOT_FOUND) { self.showErrorPopup(gettext('Could not access Wallet Service: Not found')); } else { var msg = "" diff --git a/src/js/controllers/walletHome.js b/src/js/controllers/walletHome.js index f9cce3bba..737849652 100644 --- a/src/js/controllers/walletHome.js +++ b/src/js/controllers/walletHome.js @@ -286,8 +286,7 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi $rootScope.$on(eventName, function() { fc.getTx($scope.tx.id, function(err, tx) { if (err) { - - if (err.code && err.code == 'TX_NOT_FOUND' && + if (err.message && err.message == 'TX_NOT_FOUND' && (eventName == 'transactionProposalRemoved' || eventName == 'TxProposalRemoved')) { $scope.tx.removed = true; $scope.tx.canBeRemoved = false; @@ -1100,15 +1099,15 @@ angular.module('copayApp.controllers').controller('walletHomeController', functi $scope.settings = walletSettings; $scope.color = fc.backgroundColor; $scope.copayerId = fc.credentials.copayerId; - $scope.isShared = fc.credentials.n > 1; + $scope.isShared = fc.credentials.n > 1; $scope.getAlternativeAmount = function() { var satToBtc = 1 / 100000000; - fc.getFiatRate({ - code : self.alternativeIsoCode, - ts : btx.time * 1000 + fc.getFiatRate({ + code: self.alternativeIsoCode, + ts: btx.time * 1000 }, function(err, res) { - if (err) { + if (err) { $log.debug('Could not get historic rate'); return; } diff --git a/src/js/services/addressService.js b/src/js/services/addressService.js index f2027c7dc..f81225ccc 100644 --- a/src/js/services/addressService.js +++ b/src/js/services/addressService.js @@ -4,9 +4,8 @@ angular.module('copayApp.services') .factory('addressService', function(storageService, profileService, $log, $timeout, lodash, bwsError, gettextCatalog) { var root = {}; - - root.expireAddress = function(walletId,cb) { - $log.debug('Cleaning Address ' + walletId ); + root.expireAddress = function(walletId, cb) { + $log.debug('Cleaning Address ' + walletId); storageService.clearLastAddress(walletId, function(err) { return cb(err); }); @@ -34,10 +33,13 @@ angular.module('copayApp.services') return $timeout(function() { root._createAddress(walletId, cb); }, 5000); - } else if (err.code && err.code == 'MAIN_ADDRESS_GAP_REACHED') { + } else if (err.message && err.message == 'MAIN_ADDRESS_GAP_REACHED') { $log.warn(err.message); prefix = null; - client.getMainAddresses({reverse: true, limit : 1}, function(err, addr) { + client.getMainAddresses({ + reverse: true, + limit: 1 + }, function(err, addr) { if (err) return cb(err); return cb(null, addr[0].address); }); diff --git a/src/js/services/profileService.js b/src/js/services/profileService.js index 57076382a..165c9616c 100644 --- a/src/js/services/profileService.js +++ b/src/js/services/profileService.js @@ -3,6 +3,7 @@ angular.module('copayApp.services') .factory('profileService', function profileServiceFactory($rootScope, $location, $timeout, $filter, $log, lodash, storageService, bwcService, configService, notificationService, pushNotificationsService, isChromeApp, isCordova, gettext, gettextCatalog, nodeWebkit, bwsError, uxLanguage, bitcore) { var root = {}; + var errors = bwcService.getErrors(); var FOREGROUND_UPDATE_PERIOD = 5; var BACKGROUND_UPDATE_PERIOD = 30; @@ -284,8 +285,8 @@ angular.module('copayApp.services') // check if exist if (lodash.find(root.profile.credentials, { - 'walletId': walletData.walletId - })) { + 'walletId': walletData.walletId + })) { return cb(gettext('Cannot join the same wallet more that once')); } } catch (ex) { @@ -509,8 +510,8 @@ angular.module('copayApp.services') if (err) { // in HW wallets, req key is always the same. They can't addAccess. - if (err.code == 'NOT_AUTHORIZED') - err.code = 'WALLET_DOES_NOT_EXIST'; + if (err instanceof errors.NOT_AUTHORIZED) + err.name = 'WALLET_DOES_NOT_EXIST'; return bwsError.cb(err, gettext('Could not import'), cb); } diff --git a/src/js/services/pushNotificationsService.js b/src/js/services/pushNotificationsService.js index 132ccb43d..8dc7a9c53 100644 --- a/src/js/services/pushNotificationsService.js +++ b/src/js/services/pushNotificationsService.js @@ -48,7 +48,7 @@ angular.module('copayApp.services') opts.type = isMobile.iOS() ? "ios" : isMobile.Android() ? "android" : null; opts.token = token; root.subscribe(opts, walletClient, function(err, response) { - if (err) $log.warn('Subscription error: ' + err.code); + if (err) $log.warn('Subscription error: ' + err.message); else $log.debug('Subscribed to push notifications service: ' + JSON.stringify(response)); }); });