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
JavaScript
;
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;