client-ui
Version:
Testing implementation of nodeJs Backend, angular frontend, and hopefully in a way that this can be deployed to s3/cloudfront
92 lines (89 loc) • 3.83 kB
JavaScript
(function () {
'use strict';
angular.module(moduleName).factory('AuthStateFactory', AuthStateFactory);
AuthStateFactory.$inject = ['$http', 'rootConstants', 'client', 'loan', '$q', "errorHandler"];
function AuthStateFactory($http, rootConstants, client, loan, $q, errorHandler) {
var self = {
isLoggedIn: false,
check: function () {
if (client.getClientStore()) {
self.isLoggedIn = true;
} else {
self.isLoggedIn = false;
}
return self.isLoggedIn;
},
performLogin: function(clientData) {
client.setClientStore(clientData);
self.check();
},
login: function (credentials) {
var deferred = $q.defer();
$http.post(rootConstants.server + 'login', {
email: credentials.email,
password: credentials.password
}).then(function(clientData) {
self.performLogin(clientData.data);
return deferred.resolve(clientData.data);
}, function(error) {
return deferred.reject(error.data);
});
return deferred.promise;
},
logout: function () {
var deferred = $q.defer();
$http.post(rootConstants.server + 'logout', {})
.then(function () {
self.performLogout();
return deferred.resolve('logged out');
}, function(error) {
errorHandler.handleError(error.data, {fallback: "LOGOUT_FAILURE"}, function() {
deferred.reject(error.data);
});
});
return deferred.promise;
},
performLogout: function() {
client.unsetClientStore();
loan.unsetCurrentLoanStore();
if (window.sessionStorage) {
window.sessionStorage.removeItem('prospect');
}
self.check();
},
requestPasswordReset: function (email) {
var deferred = $q.defer();
$http.post(rootConstants.server + 'requestPasswordReset', {
email: email
}).then(function (res) {
return deferred.resolve(res.data);
}, function (err) {
return deferred.reject(err.data);
});
return deferred.promise;
},
passwordReset: function(clientId, passwordResetHash, password) {
var deferred = $q.defer();
$http.post(rootConstants.server + "passwordReset", {clientId: clientId, passwordResetHash: passwordResetHash, password: password})
.then(function (clientData) {
self.performLogin(clientData.data);
return deferred.resolve(clientData.data);
}, function (error) {
return deferred.reject(error.data);
});
return deferred.promise;
}
// keepSessionAlive: function() {
// var deferred = $q.defer();
// $http.get(rootConstants.server + "status")
// .then(function (res) {
// deferred.resolve();
// }, function (err) {
// deferred.reject();
// });
// return deferred.promise;
// }
};
return self;
}
})();