Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // services.js partial
- //
- .factory('userService', function($rootScope, $q, $http, $window, $timeout, firebaseRef, firebaseUserRef, myStocksArrayService, myStocksCacheService, notesCacheService, modalService) {
- var login = function(user, signup) {
- var deferred = $q.defer();
- firebaseRef.authWithPassword({
- email : user.email,
- password : user.password
- }, function(error, authData) {
- if (error) {
- deferred.resolve(error);
- }
- else {
- deferred.reject();
- $rootScope.currentUser = authData;
- if(signup) {
- modalService.closeModal();
- }
- else {
- myStocksCacheService.removeAll();
- notesCacheService.removeAll();
- loadUserData(authData);
- modalService.closeModal();
- $timeout(function() {
- $window.location.reload(true);
- }, 400);
- }
- }
- });
- return deferred.promise;
- };
- var signup = function(user) {
- var deferred = $q.defer();
- firebaseRef.createUser({
- email : user.email,
- password : user.password
- }, function(error, userData) {
- if (error) {
- console.log("Error creating user:", error);
- if(error.code == "INVALID_EMAIL") {
- deferred.resolve("Please enter a valid email address");
- }
- else if(error.code == "INVALID_PASSWORD") {
- deferred.resolve("Please enter a valid password");
- }
- else if(error.code == "EMAIL_TAKEN") {
- deferred.resolve("This email address is already in use.");
- }
- else {
- deferred.resolve("Unknown error, please try again.");
- }
- } else {...} // not relevant
- });
- return deferred.promise;
- };
- var logout = function() {
- firebaseRef.unauth();
- notesCacheService.removeAll();
- myStocksCacheService.removeAll();
- $window.location.reload(true);
- $rootScope.currentUser = '';
- };
- var updateStocks = function(stocks) {...} // not relevant
- var updateNotes = function(ticker, notes) {...} // not relevant
- var loadUserData = function(authData) {...} // not relevant
- var getUser = function() {
- return firebaseRef.getAuth();
- };
- if(getUser()) {
- $rootScope.currentUser = getUser();
- }
- return {
- login: login,
- signup: signup,
- logout: logout,
- updateStocks: updateStocks,
- updateNotes: updateNotes,
- getUser: getUser
- };
- })
- //
- // controllers.js partial
- //
- .controller('LoginSignupCtrl', ['$scope', '$timeout', 'modalService', 'userService',
- function($scope, $timeout, modalService, userService) {
- $scope.user = {email: '', password: ''};
- $scope.closeModal = function() {...} // not relevant
- $scope.signup = function(user) {
- var signup = userService.signup(user);
- signup.then(function(error) {
- $scope.signupError = error;
- $timeout(function() {
- $scope.signupError = null;
- }, 1000);
- });
- };
- $scope.login = function(form) {
- if(form.email.$pristine || !form.email.$valid) {
- $scope.formError = 'Please enter a valid email address';
- $timeout(function () {
- $scope.formError = null;
- }, 2000);
- }
- else {
- if(form.password.$pristine || !form.password.$dirty || !$scope.user.password) {
- $scope.formError = 'Please enter a password';
- $timeout(function () {
- $scope.formError = null;
- }, 2000);
- }
- else {
- var user = {
- email: $scope.user.email,
- password: $scope.user.password
- };
- userService.login(user, false).then(function(error) {
- $scope.loginError = true;
- $timeout(function() {
- $scope.loginError = null;
- }, 750);
- });
- }
- }
- };
- }])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement