Coinbase connection issues and logout from tab-setting

This commit is contained in:
Gustavo Maximiliano Cortez 2016-12-08 13:06:01 -03:00
commit 539583a2af
No known key found for this signature in database
GPG key ID: 15EDAD8D9F2EB1AF
9 changed files with 130 additions and 127 deletions

View file

@ -1,20 +0,0 @@
'use strict';
angular.module('copayApp.controllers').controller('coinbaseConfirmationController', function($scope, $timeout, coinbaseService, applicationService) {
$scope.ok = function() {
coinbaseService.logout($scope.network, function() {
$timeout(function() {
applicationService.restart();
}, 1000);
});
$scope.cancel();
};
$scope.cancel = function() {
$scope.coinbaseConfirmationModal.hide();
};
});

View file

@ -1,18 +1,42 @@
'use strict';
angular.module('copayApp.controllers').controller('preferencesCoinbaseController',
function($scope, $timeout, $ionicModal, applicationService, coinbaseService) {
angular.module('copayApp.controllers').controller('preferencesCoinbaseController', function($scope, $timeout, $state, $ionicHistory, lodash, ongoingProcess, popupService, coinbaseService) {
this.revokeToken = function(testnet) {
$scope.network = testnet ? 'testnet' : 'livenet';
$scope.revokeToken = function() {
popupService.showConfirm('Coinbase', 'Are you sure you would like to log out of your Coinbase account?', null, null, function(res) {
if (res) {
coinbaseService.logout(function() {
$ionicHistory.clearHistory();
$timeout(function() {
$state.go('tabs.home');
}, 100);
});
}
});
};
$ionicModal.fromTemplateUrl('views/modals/coinbase-confirmation.html', {
scope: $scope,
animation: 'slide-in-up'
}).then(function(modal) {
$scope.coinbaseConfirmationModal = modal;
$scope.coinbaseConfirmationModal.show();
$scope.$on("$ionicView.enter", function(event, data){
coinbaseService.setCredentials();
$scope.network = coinbaseService.getEnvironment();
ongoingProcess.set('connectingCoinbase', true);
coinbaseService.init($scope.accessToken, function(err, data) {
ongoingProcess.set('connectingCoinbase', false);
if (err || lodash.isEmpty(data)) {
ongoingProcess.set('connectingCoinbase', false);
if (err) {
popupService.showAlert(gettextCatalog.getString('Error'), err);
}
return;
}
var accessToken = data.accessToken;
var accountId = data.accountId;
coinbaseService.getAccount(accessToken, accountId, function(err, account) {
$scope.coinbaseAccount = account.data;
});
};
coinbaseService.getCurrentUser(accessToken, function(err, user) {
$scope.coinbaseUser = user.data;
});
});
});
});

View file

@ -1,6 +1,6 @@
'use strict';
angular.module('copayApp.controllers').controller('tabSettingsController', function($scope, appConfigService, $ionicModal, $log, lodash, uxLanguage, platformInfo, profileService, feeService, configService, externalLinkService, bitpayCardService, storageService, glideraService, gettextCatalog) {
angular.module('copayApp.controllers').controller('tabSettingsController', function($scope, appConfigService, $window, $log, lodash, uxLanguage, platformInfo, profileService, feeService, configService, externalLinkService, bitpayCardService, storageService, glideraService, coinbaseService, gettextCatalog) {
var updateConfig = function() {
var isCordova = platformInfo.isCordova;
@ -26,6 +26,7 @@ angular.module('copayApp.controllers').controller('tabSettingsController', funct
$scope.bitpayCardEnabled = config.bitpayCard.enabled;
$scope.glideraEnabled = config.glidera.enabled && !isWindowsPhoneApp;
$scope.coinbaseEnabled = config.coinbase.enabled && !isWindowsPhoneApp;
if ($scope.bitpayCardEnabled) {
bitpayCardService.getBitpayDebitCards(function(err, cards) {
@ -41,6 +42,14 @@ angular.module('copayApp.controllers').controller('tabSettingsController', funct
});
}
if ($scope.coinbaseEnabled) {
coinbaseService.setCredentials();
storageService.getCoinbaseToken(coinbaseService.getEnvironment(), function(err, token) {
if (err) $log.error(err);
$scope.coinbaseToken = token;
});
}
});
};

View file

@ -926,24 +926,25 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr
*
*/
.state('tabs.buyandsell.coinbase', {
url: '/coinbase',
views: {
'tab-home@tabs': {
controller: 'coinbaseController',
controllerAs: 'coinbase',
templateUrl: 'views/coinbase.html'
}
}
})
.state('tabs.buyandsell.coinbase.preferences', {
url: '/preferences',
.state('tabs.buyandsell.coinbase', {
url: '/coinbase',
views: {
'tab-home@tabs': {
controller: 'preferencesCoinbaseController',
controller: 'coinbaseController',
controllerAs: 'coinbase',
templateUrl: 'views/coinbase.html'
}
}
})
.state('tabs.preferences.coinbase', {
url: '/coinbase',
views: {
'tab-settings@tabs': {
controller: 'preferencesCoinbaseController',
templateUrl: 'views/preferencesCoinbase.html'
}
})
}
})
.state('tabs.buyandsell.coinbase.buy', {
url: '/buy',
'tab-home@tabs': {

View file

@ -177,7 +177,10 @@ angular.module('copayApp.services').factory('coinbaseService', function($http, $
if (err) return cb(err);
_refreshToken(refreshToken, function(err, newToken) {
if (err) return cb(err);
return cb(null, {accessToken: newToken, accountId: accountId});
_getMainAccountId(newToken, function(err, accountId) {
if (err) return cb(err);
return cb(null, {accessToken: newToken, accountId: accountId});
});
});
});
} else {