whitef0x0/tellform

View on GitHub
public/modules/users/config/users.client.routes.js

Summary

Maintainability
A
35 mins
Test Coverage
'use strict';

// Setting up route
angular.module('users').config(['$stateProvider',
    function($stateProvider) {

    var checkLoggedin = function($q, $timeout, $state, User, Auth) {
      var deferred = $q.defer();
        
      if (Auth.currentUser && Auth.currentUser.email) {
        $timeout(deferred.resolve);
      }
      else {
        Auth.currentUser = User.getCurrent(
            function() {
              Auth.login();
              $timeout(deferred.resolve());
            },
            function() {
              Auth.logout();
              $timeout(deferred.reject());
              $state.go('signin', {reload: true});
            });
      }

      return deferred.promise;
    };

    var checkSignupDisabled = function($window, $timeout, $q) {
        var deferred = $q.defer();
        if($window.signupDisabled) {
            $timeout(deferred.reject());
        } else {
            $timeout(deferred.resolve());
        }
        return deferred.promise;
    };

    // Users state routing
    $stateProvider.
        state('profile', {
            resolve: {
                  loggedin: checkLoggedin
            },
            url: '/settings/profile',
            templateUrl: 'modules/users/views/settings/edit-profile.client.view.html'
        }).
        state('password', {
            resolve: {
                  loggedin: checkLoggedin
            },
            url: '/settings/password',
            templateUrl: 'modules/users/views/settings/change-password.client.view.html'
        }).
        state('accounts', {
            resolve: {
                  loggedin: checkLoggedin
            },
            url: '/settings/accounts',
            templateUrl: 'modules/users/views/settings/social-accounts.client.view.html'
        }).
        state('signup', {
            resolve: {
                isDisabled: checkSignupDisabled
            },
            url: '/signup',
            templateUrl: 'modules/users/views/authentication/signup.client.view.html'
        }).
        state('signup-success', {
            resolve: {
                isDisabled: checkSignupDisabled
            },
            url: '/signup-success',
            templateUrl: 'modules/users/views/authentication/signup-success.client.view.html'
        }).
        state('signin', {
            url: '/signin',
            templateUrl: 'modules/users/views/authentication/signin.client.view.html'
        }).
        state('access_denied', {
            url: '/access_denied',
            templateUrl: 'modules/users/views/authentication/access-denied.client.view.html'
        }).
        state('verify', {
            resolve: {
                isDisabled: checkSignupDisabled
            },
            url: '/verify/:token',
            templateUrl: 'modules/users/views/verify/verify-account.client.view.html'
        }).
        state('resendVerifyEmail', {
            resolve: {
                isDisabled: checkSignupDisabled
            },
            url: '/verify',
            templateUrl: 'modules/users/views/verify/resend-verify-email.client.view.html'
        }).
        state('forgot', {
            url: '/password/forgot',
            templateUrl: 'modules/users/views/password/forgot-password.client.view.html'
        }).
        state('reset-invalid', {
            url: '/password/reset/invalid',
            templateUrl: 'modules/users/views/password/reset-password-invalid.client.view.html'
        }).
        state('reset-success', {
            url: '/password/reset/success',
            templateUrl: 'modules/users/views/password/reset-password-success.client.view.html'
        }).
        state('reset', {
            url: '/password/reset/:token',
            templateUrl: 'modules/users/views/password/reset-password.client.view.html'
        });
    }
]);