From c0c08eeb59b128695e5aa097df1d8e6f7583d55d Mon Sep 17 00:00:00 2001 From: Marty Alcala Date: Wed, 26 Oct 2016 16:03:20 -0400 Subject: [PATCH] fetch paypro details before navigating to confirm view for a topup --- src/js/controllers/amount.js | 27 +++++++++++++++++++-------- src/js/controllers/confirm.js | 14 -------------- src/js/services/incomingData.js | 6 +----- src/js/services/payproService.js | 11 ++++++++--- 4 files changed, 28 insertions(+), 30 deletions(-) diff --git a/src/js/controllers/amount.js b/src/js/controllers/amount.js index 609b7a6d2..af7e7b9fd 100644 --- a/src/js/controllers/amount.js +++ b/src/js/controllers/amount.js @@ -1,6 +1,6 @@ 'use strict'; -angular.module('copayApp.controllers').controller('amountController', function($rootScope, $scope, $filter, $timeout, $ionicScrollDelegate, gettextCatalog, platformInfo, lodash, configService, rateService, $stateParams, $window, $state, $log, txFormatService, ongoingProcess, bitpayCardService, popupService, bwcError) { +angular.module('copayApp.controllers').controller('amountController', function($rootScope, $scope, $filter, $timeout, $ionicScrollDelegate, gettextCatalog, platformInfo, lodash, configService, rateService, $stateParams, $window, $state, $log, txFormatService, ongoingProcess, bitpayCardService, popupService, bwcError, payproService) { var unitToSatoshi; var satToUnit; @@ -203,7 +203,6 @@ angular.module('copayApp.controllers').controller('amountController', function($ $timeout(function() { bitpayCardService.topUp($scope.cardId, dataSrc, function(err, invoiceId) { - console.log('hereerere'); if (err) { ongoingProcess.set('Preparing transaction...', false); popupService.showAlert(gettextCatalog.getString('Error'), bwcError.msg(err)); @@ -211,18 +210,30 @@ angular.module('copayApp.controllers').controller('amountController', function($ } bitpayCardService.getInvoice(invoiceId, function(err, data) { - ongoingProcess.set('Preparing transaction...', false); if (err) { + ongoingProcess.set('Preparing transaction...', false); popupService.showAlert(gettextCatalog.getString('Error'), bwcError.msg(err)); return; } var payProUrl = data.paymentUrls.BIP73; - $state.transitionTo('tabs.bitpayCard.confirm', { - cardId: $scope.cardId, - toName: $scope.toName, - payProUrl: payProUrl - }); + payproService.getPayProDetails(payProUrl, function(err, payProDetails) { + ongoingProcess.set('Preparing transaction...', false); + if (err) { + popupService.showAlert(gettextCatalog.getString('Error'), bwcError.msg(err)); + return; + } + var stateParams = { + cardId: $scope.cardId, + toName: $scope.toName, + toAmount: payProDetails.amount, + toAddress: payProDetails.toAddress, + description: payProDetails.memo, + paypro: payProDetails + }; + + $state.transitionTo('tabs.bitpayCard.confirm', stateParams); + }, true); }); }); }); diff --git a/src/js/controllers/confirm.js b/src/js/controllers/confirm.js index 276dcf625..aee55ad26 100644 --- a/src/js/controllers/confirm.js +++ b/src/js/controllers/confirm.js @@ -15,7 +15,6 @@ angular.module('copayApp.controllers').controller('confirmController', function( $scope.toEmail = data.stateParams.toEmail; $scope.description = data.stateParams.description; $scope.paypro = data.stateParams.paypro; - $scope.payProUrl = data.stateParams.payProUrl; $scope._paypro = $scope.paypro; $scope.paymentExpired = { value: false @@ -27,19 +26,6 @@ angular.module('copayApp.controllers').controller('confirmController', function( }); var initConfirm = function() { - console.log('in init confirm'); - console.log('$scope.paypro', $scope.paypro); - if($scope.payProUrl && !$scope.paypro) { - console.log('getting paypro details', $scope.payProUrl); - payproService.getPayProDetails($scope.payProUrl, function(err, details) { - console.log('paypro details', details); - $scope.toAmount = details.amount; - $scope.toAddress = details.toAddress; - $scope.description = details.memo; - $scope.paypro = details; - return initConfirm(); - }); - } // TODO (URL , etc) if (!$scope.toAddress || !$scope.toAmount) { $log.error('Bad params at amount'); diff --git a/src/js/services/incomingData.js b/src/js/services/incomingData.js index 4b54adcad..30df1f9c5 100644 --- a/src/js/services/incomingData.js +++ b/src/js/services/incomingData.js @@ -8,10 +8,6 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat $rootScope.$broadcast('incomingDataMenu.showMenu', data); }; - // $timeout(function() { - // root.redir(); - // }, 2000); - root.redir = function(data) { $log.debug('Processing incoming data: ' + data); @@ -51,7 +47,7 @@ angular.module('copayApp.services').factory('incomingData', function($log, $stat } data = sanitizeUri(data); - data = 'https://test.bitpay.com:443/i/YSHFLkxxVAZhQMGFi9Ptq9'; + //data = 'https://test.bitpay.com:443/i/YSHFLkxxVAZhQMGFi9Ptq9'; // BIP21 if (bitcore.URI.isValid(data)) { diff --git a/src/js/services/payproService.js b/src/js/services/payproService.js index f5fd85a02..a8796ba62 100644 --- a/src/js/services/payproService.js +++ b/src/js/services/payproService.js @@ -5,7 +5,7 @@ function($window, profileService, platformInfo, popupService, gettextCatalog, on var ret = {}; - ret.getPayProDetails = function(uri, cb) { + ret.getPayProDetails = function(uri, cb, disableLoader) { if (!cb) cb = function() {}; var wallet = profileService.getWallets({ @@ -21,13 +21,18 @@ function($window, profileService, platformInfo, popupService, gettextCatalog, on $log.debug('Fetch PayPro Request...', uri); - ongoingProcess.set('fetchingPayPro', true); + if(!disableLoader) { + ongoingProcess.set('fetchingPayPro', true); + } wallet.fetchPayPro({ payProUrl: uri, }, function(err, paypro) { - ongoingProcess.set('fetchingPayPro', false); + if(!disableLoader) { + ongoingProcess.set('fetchingPayPro', false); + } + if (err) { return cb(true); }