UNPKG

baasic-sdk-javascript

Version:

JavaScript SDK provides core functionality for building web and mobile applications on [Baasic](http://www.baasic.com/).

63 lines (62 loc) 2.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var contracts_1 = require("./contracts"); var inversify_1 = require("inversify"); var UserHandler = /** @class */ (function () { function UserHandler(eventHandler, storageHandler, application) { var _this = this; this.eventHandler = eventHandler; this.storageHandler = storageHandler; this.application = application; this.messageTypes = { userChanged: 'userChanged' }; this.userInfoKey = 'baasic-user-info-' + this.application.getApiKey(); this.user = { isAuthenticated: function () { var token = _this.application.getAccessToken(); return token !== undefined && token !== null && (token.expireTime === undefined || token.expireTime === null || (token.expireTime - new Date().getTime()) > 0); } }; } UserHandler.prototype.getUser = function () { var userInfo; var json = this.storageHandler.get(this.userInfoKey); if (typeof json === 'string') { userInfo = JSON.parse(json); } else { userInfo = json; } if (userInfo) { this.user.user = userInfo; } else { delete this.user.user; } return this.user; }; UserHandler.prototype.setUser = function (userInfo) { if (userInfo === undefined || userInfo === null) { this.storageHandler.remove(this.userInfoKey); } else { this.storageHandler.set(this.userInfoKey, userInfo); } this.eventHandler.pushMessage({ type: this.messageTypes.userChanged }, { user: this.getUser() }); }; UserHandler = tslib_1.__decorate([ inversify_1.injectable(), tslib_1.__param(0, inversify_1.inject(contracts_1.TYPES.IEventHandler)), tslib_1.__param(1, inversify_1.inject(contracts_1.TYPES.IStorageHandler)), tslib_1.__param(2, inversify_1.inject(contracts_1.TYPES.IBaasicApp)), tslib_1.__metadata("design:paramtypes", [Object, Object, Object]) ], UserHandler); return UserHandler; }()); exports.UserHandler = UserHandler;