diff --git a/js/controllers/createProfile.js b/js/controllers/createProfile.js index 20d9da77e..5dae983b9 100644 --- a/js/controllers/createProfile.js +++ b/js/controllers/createProfile.js @@ -1,23 +1,10 @@ 'use strict'; -angular.module('copayApp.controllers').controller('CreateProfileController', function($scope, $rootScope, $location, notification, controllerUtils, pluginManager) { +angular.module('copayApp.controllers').controller('CreateProfileController', function($scope, $rootScope, $location, notification, controllerUtils, pluginManager, identityService) { controllerUtils.redirIfLogged(); $scope.retreiving = true; - - copay.Identity.anyProfile({ - pluginManager: pluginManager, - }, function(anyProfile) { - copay.Identity.anyWallet({ - pluginManager: pluginManager, - }, function(anyWallet) { - $scope.retreiving = false; - $scope.anyProfile = anyProfile; - $scope.anyWallet = anyWallet; - }); - - }); - + identityService.check($scope); $scope.createProfile = function(form) { if (form && form.$invalid) { @@ -25,15 +12,7 @@ angular.module('copayApp.controllers').controller('CreateProfileController', fun return; } $scope.loading = true; - copay.Identity.create(form.email.$modelValue, form.password.$modelValue, { - pluginManager: pluginManager, - network: config.network, - networkName: config.networkName, - walletDefaults: config.wallet, - passphraseConfig: config.passphraseConfig, - }, function(err, iden, firstWallet) { - controllerUtils.bindProfile($scope, iden, firstWallet); - }); + identityService.create($scope, form); } }); diff --git a/js/controllers/home.js b/js/controllers/home.js index 46ac43ac0..96f893fe4 100644 --- a/js/controllers/home.js +++ b/js/controllers/home.js @@ -1,9 +1,10 @@ 'use strict'; -angular.module('copayApp.controllers').controller('HomeController', function($scope, $rootScope, $location, notification, controllerUtils, pluginManager) { +angular.module('copayApp.controllers').controller('HomeController', function($scope, $rootScope, $location, notification, controllerUtils, pluginManager, identityService) { controllerUtils.redirIfLogged(); + $scope.retreiving = true; - $scope.retreiving = false; + identityService.check($scope); $scope.openProfile = function(form) { if (form && form.$invalid) { @@ -11,20 +12,6 @@ angular.module('copayApp.controllers').controller('HomeController', function($sc return; } $scope.loading = true; - copay.Identity.open(form.email.$modelValue, form.password.$modelValue, { - pluginManager: pluginManager, - network: config.network, - networkName: config.networkName, - walletDefaults: config.wallet, - passphraseConfig: config.passphraseConfig, - }, function(err, iden, lastFocusedWallet) { - if (err && !iden) { - console.log('Error:' + err) - controllerUtils.onErrorDigest( - $scope, (err.toString() || '').match('PNOTFOUND') ? 'Profile not found' : 'Unknown error'); - } else { - controllerUtils.bindProfile($scope, iden, lastFocusedWallet); - } - }); + identityService.open($scope, form); } }); diff --git a/js/services/identity.js b/js/services/identity.js deleted file mode 100644 index e69de29bb..000000000 diff --git a/js/services/identityService.js b/js/services/identityService.js new file mode 100644 index 000000000..c2fe34f93 --- /dev/null +++ b/js/services/identityService.js @@ -0,0 +1,60 @@ +'use strict'; + +angular.module('copayApp.services') +.factory('identityService', function($rootScope, $location, pluginManager, controllerUtils) { + var root = {}; + + root.check = function (scope) { + copay.Identity.anyProfile({ + pluginManager: pluginManager, + }, function(anyProfile) { + copay.Identity.anyWallet({ + pluginManager: pluginManager, + }, function(anyWallet) { + scope.retreiving = false; + scope.anyProfile = anyProfile ? true : false; + scope.anyWallet = anyWallet ? true : false; + + if (!scope.anyProfile) { + $location.path('/createProfile'); + } + }); + }); + }; + + root.create = function (scope, form) { + copay.Identity.create(form.email.$modelValue, form.password.$modelValue, { + pluginManager: pluginManager, + network: config.network, + networkName: config.networkName, + walletDefaults: config.wallet, + passphraseConfig: config.passphraseConfig, + }, function(err, iden, firstWallet) { + controllerUtils.bindProfile(scope, iden, firstWallet); + scope.loading = false; + }); + }; + + + root.open = function (scope, form) { + copay.Identity.open(form.email.$modelValue, form.password.$modelValue, { + pluginManager: pluginManager, + network: config.network, + networkName: config.networkName, + walletDefaults: config.wallet, + passphraseConfig: config.passphraseConfig, + }, function(err, iden, lastFocusedWallet) { + if (err && !iden) { + console.log('Error:' + err) + controllerUtils.onErrorDigest( + scope, (err.toString() || '').match('PNOTFOUND') ? 'Profile not found' : 'Unknown error'); + } else { + controllerUtils.bindProfile(scope, iden, lastFocusedWallet); + } + scope.loading = false; + }); + } + + return root; +}); +