UNPKG

architect-sdk

Version:

Essentialz Architect SDK

56 lines (55 loc) 2.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AuthService = void 0; var errors_1 = require("../errors"); var providers_1 = require("./providers"); var types_1 = require("./types"); var AuthService = /** @class */ (function () { function AuthService(httpClient, tokenManager) { this.httpClient = httpClient; this.tokenManager = tokenManager; } AuthService.prototype.login = function (credentials, provider) { var _this = this; var providerService = this.getProvider(provider); return providerService.handleLogin(credentials) .then(function (response) { return _this.handleLoginResponse(response); }); }; AuthService.prototype.logout = function () { this.tokenManager.setToken(null); this.tokenManager.setUserId(null); // TODO: Invalidate token on server-side return Promise.resolve({}); }; AuthService.prototype.isAuthenticated = function () { return !!this.tokenManager.getToken(); }; AuthService.prototype.getUserId = function () { if (this.isAuthenticated()) { return this.tokenManager.getUserId(); } return null; }; AuthService.prototype.handleLoginResponse = function (response) { var id = response.id, token = response.authorization.token; this.tokenManager.setToken(token); this.tokenManager.setUserId(id); return response; }; AuthService.prototype.getProvider = function (provider) { switch (provider) { case types_1.ArchitectAuthProvider.Apple: return new providers_1.AppleProvider(this.httpClient); case types_1.ArchitectAuthProvider.Email: return new providers_1.EmailProvider(this.httpClient); case types_1.ArchitectAuthProvider.Facebook: return new providers_1.FacebookProvider(this.httpClient); case types_1.ArchitectAuthProvider.Google: return new providers_1.GoogleProvider(this.httpClient); default: throw new errors_1.ArchitectError("Unknown auth provider: " + provider); } }; return AuthService; }()); exports.AuthService = AuthService;