Newer
Older
ubFramework / Portal / docroot / modules / auth / services.js
@Christopher W. Olsen Christopher W. Olsen on 10 Dec 2017 1 KB Cleaning Up Making It A Sub Module
'use strict';

angular.module('Auth').factory("AuthSvc", function($http, $q, $window) {

  var userInfo = {
    authenticated : false
  };

  function login(username, password) {

    var deferred = $q.defer();
    
    $http.post("/api/login", {
        username: username,
        password: password
    }).then(function(result) {
      userInfo = {
        accessToken : result.data.access_token,
        userName : result.data.userName,
        authenticated : result.data.authenticated
      };
      $window.sessionStorage["userInfo"] = JSON.stringify(userInfo);
      deferred.resolve(userInfo);
    }, function(error) {

      deferred.reject(error);
    });

    return deferred.promise;
  }

  function logout() {

    var deferred = $q.defer();

    $http({
      method : "POST",
      url : "/api/logout",
      headers : {
        "access_token" : userInfo.accessToken
      }
    }).then(function(result) {

      userInfo = null;
      $window.sessionStorage["userInfo"] = null;
      deferred.resolve(result);
    }, function(error) {

      deferred.reject(error);
    });

    return deferred.promise;
  }

  function getUserInfo() {

    // if (typeof userInfo === "undefined")
    // alert("TURKEY");
    // if (typeof userInfo.authenticated === "undefined")
    // alert("TURKEY2");
    // else
    // alert("TURKEY2.1: " + userInfo.authenticated);

    // alert("TURKEY3");

    return userInfo;
  }

  function init() {

    if ($window.sessionStorage["userInfo"]) {
      userInfo = JSON.parse($window.sessionStorage["userInfo"]);
      if (typeof userInfo.authenticated === 'undefined')
        userInfo.authenticated = false;
    }
  }
  init();

  return {
    login : login,
    logout : logout,
    getUserInfo : getUserInfo
  };
});