UNPKG

air-lib

Version:

This is Air's angular component library

178 lines 14.7 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Injectable } from '@angular/core'; import { CookieService } from 'ngx-cookie-service'; import { Router } from '@angular/router'; import { User } from '../entities/user'; import { BusMessageType } from '../entities/bus-message-type'; import { SessionContext } from './../entities/session-context'; import * as moment from 'moment'; // add this 1 of 4 // add this 1 of 4 import { CommunicationService } from './communication.service'; import * as i0 from "@angular/core"; import * as i1 from "ngx-cookie-service/cookie-service/cookie.service"; import * as i2 from "@angular/router"; import * as i3 from "../entities/session-context"; export class SessionService { /** * @param {?} cookiesService * @param {?} router * @param {?} sessionContext */ constructor(cookiesService, router, sessionContext) { this.cookiesService = cookiesService; this.router = router; this.sessionContext = sessionContext; this.userKey = 'AirUser'; this.adminAccessTokenKey = 'AirAdminToken'; this.adminReturnUrlKey = 'AirAdminReturnUrl'; this.isImpersonatedKey = 'AirIsImpersonated'; this.apiServer = sessionContext.apiServer; /** @type {?} */ const userJson = localStorage.getItem(this.userKey); this.user = userJson ? JSON.parse(userJson) : new User(); this.InitComponent(); this.isAuthenticated = false; this.accessToken = '' + localStorage.getItem(SessionService.AccessTokenKey); this.activities = new Array(); this.subscribeMessageBus = CommunicationService.getMessageBus() .subscribe((msg) => { if (msg.name === BusMessageType.NewUserLogin) { this.referralTree = null; } }); } /** * @return {?} */ ngOnDestroy() { if (this.subscribeMessageBus) { this.subscribeMessageBus.unsubscribe(); } } /** * @param {?} activity * @return {?} */ hasActivity(activity) { if (this.isAuthenticated && !this.activities.length) { this.getActivitiesFromCookie(); } if (!this.activities || !activity || !this.isAuthenticated) { return false; } return this.activities.indexOf(activity) !== -1; } /** * @param {?} userData * @return {?} */ setUser(userData) { this.user = userData; /** @type {?} */ const userJson = JSON.stringify(this.user); localStorage.setItem(this.userKey, userJson); this.InitComponent(); } /** * @param {?} userProfileData * @return {?} */ setUserProfile(userProfileData) { this.userProfile = userProfileData; CommunicationService.get().emit(this.userProfile); } /** * @param {?} referralTree * @return {?} */ setReferralTree(referralTree) { this.referralTree = referralTree; CommunicationService.get().emit(this.referralTree); } /** * @private * @return {?} */ InitComponent() { moment.locale(this.user.locale ? this.user.locale : 'ru'); } /** * @private * @return {?} */ getActivitiesFromCookie() { /** @type {?} */ const activities = this.cookiesService.get('Activities'); this.activities = activities ? JSON.parse(activities) : []; } /** * @return {?} */ isImpersonated() { return Boolean(localStorage.getItem(this.isImpersonatedKey) === 'true' ? localStorage.getItem(this.isImpersonatedKey) : false); } } SessionService.AccessTokenKey = 'AirToken'; SessionService.decorators = [ { type: Injectable, args: [{ providedIn: 'root' },] } ]; SessionService.ctorParameters = () => [ { type: CookieService }, { type: Router }, { type: SessionContext } ]; /** @nocollapse */ SessionService.ngInjectableDef = i0.defineInjectable({ factory: function SessionService_Factory() { return new SessionService(i0.inject(i1.CookieService), i0.inject(i2.Router), i0.inject(i3.SessionContext)); }, token: SessionService, providedIn: "root" }); if (false) { /** @type {?} */ SessionService.AccessTokenKey; /** @type {?} */ SessionService.prototype.user; /** @type {?} */ SessionService.prototype.isAuthenticated; /** @type {?} */ SessionService.prototype.userProfile; /** @type {?} */ SessionService.prototype.referralTree; /** @type {?} */ SessionService.prototype.userKey; /** @type {?} */ SessionService.prototype.adminAccessTokenKey; /** @type {?} */ SessionService.prototype.adminReturnUrlKey; /** @type {?} */ SessionService.prototype.isImpersonatedKey; /** @type {?} */ SessionService.prototype.apiServer; /** @type {?} */ SessionService.prototype.accessToken; /** @type {?} */ SessionService.prototype.activities; /** * @type {?} * @private */ SessionService.prototype.subscribeMessageBus; /** * @type {?} * @private */ SessionService.prototype.cookiesService; /** * @type {?} * @private */ SessionService.prototype.router; /** * @type {?} * @private */ SessionService.prototype.sessionContext; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYWlyLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9zZXNzaW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHeEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUUvRCxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQyxDQUFDLGtCQUFrQjs7QUFDcEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7O0FBTS9ELE1BQU07Ozs7OztJQW1CSixZQUNVLGNBQTZCLEVBQzdCLE1BQWMsRUFDZCxjQUE4QjtRQUY5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBZmpDLFlBQU8sR0FBRyxTQUFTLENBQUM7UUFFcEIsd0JBQW1CLEdBQUcsZUFBZSxDQUFDO1FBQ3RDLHNCQUFpQixHQUFHLG1CQUFtQixDQUFDO1FBQ3hDLHNCQUFpQixHQUFHLG1CQUFtQixDQUFDO1FBYTdDLElBQUksQ0FBQyxTQUFTLEdBQUcsY0FBYyxDQUFDLFNBQVMsQ0FBQzs7Y0FFcEMsUUFBUSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNuRCxJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxD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LENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztZQUM5QyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDYixDQUFDOztBQXBGYSw2QkFBYyxHQUFHLFVBQVUsQ0FBQzs7WUFMM0MsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFkUSxhQUFhO1lBQ2IsTUFBTTtZQU1OLGNBQWM7Ozs7O0lBVXJCLDhCQUEwQzs7SUFFMUMsOEJBQWtCOztJQUNsQix5Q0FBZ0M7O0lBQ2hDLHFDQUF1Qzs7SUFDdkMsc0NBQXlCOztJQUN6QixpQ0FBMkI7O0lBRTNCLDZDQUE2Qzs7SUFDN0MsMkNBQStDOztJQUMvQywyQ0FBK0M7O0lBRy9DLG1DQUF5Qjs7SUFDekIscUNBQTJCOztJQUMzQixvQ0FBaUM7Ozs7O0lBQ2pDLDZDQUEwQzs7Ozs7SUFHeEMsd0NBQXFDOzs7OztJQUNyQyxnQ0FBc0I7Ozs7O0lBQ3RCLHdDQUFzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb29raWVTZXJ2aWNlIH0gZnJvbSAnbmd4LWNvb2tpZS1zZXJ2aWNlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi9lbnRpdGllcy91c2VyJztcclxuaW1wb3J0IHsgVXNlclByb2ZpbGUgfSBmcm9tICcuLi9lbnRpdGllcy91c2VyLXByb2ZpbGUnO1xyXG5pbXBvcnQgeyBCdXNNZXNzYWdlIH0gZnJvbSAnLi4vZW50aXRpZXMvYnVzLW1lc3NhZ2UnO1xyXG5pbXBvcnQgeyBCdXNNZXNzYWdlVHlwZSB9IGZyb20gJy4uL2VudGl0aWVzL2J1cy1tZXNzYWdlLXR5cGUnO1xyXG5pbXBvcnQgeyBTZXNzaW9uQ29udGV4dCB9IGZyb20gJy4vLi4vZW50aXRpZXMvc2Vzc2lvbi1jb250ZXh0JztcclxuXHJcbmltcG9ydCAqIGFzIG1vbWVudCBmcm9tICdtb21lbnQnOyAvLyBhZGQgdGhpcyAxIG9mIDRcclxuaW1wb3J0IHsgQ29tbXVuaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuL2NvbW11bmljYXRpb24uc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgU2Vzc2lvblNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyBzdGF0aWMgQWNjZXNzVG9rZW5LZXkgPSAnQWlyVG9rZW4nO1xyXG5cclxuICBwdWJsaWMgdXNlcjogVXNlcjtcclxuICBwdWJsaWMgaXNBdXRoZW50aWNhdGVkOiBib29sZWFuO1xyXG4gIHB1YmxpYyB1c2VyUHJvZmlsZTogVXNlclByb2ZpbGUgfCBudWxsO1xyXG4gIHB1YmxpYyByZWZlcnJhbFRyZWU6IGFueTtcclxuICBwdWJsaWMgdXNlcktleSA9ICdBaXJVc2VyJztcclxuXHJcbiAgcHVibGljIGFkbWluQWNjZXNzVG9rZW5LZXkgPSAnQWlyQWRtaW5Ub2tlbic7XHJcbiAgcHVibGljIGFkbWluUmV0dXJuVXJsS2V5ID0gJ0FpckFkbWluUmV0dXJuVXJsJztcclxuICBwdWJsaWMgaXNJbXBlcnNvbmF0ZWRLZXkgPSAnQWlySXNJbXBlcnNvbmF0ZWQnO1xyXG5cclxuXHJcbiAgcHVibGljIGFwaVNlcnZlcjogc3RyaW5nO1xyXG4gIHB1YmxpYyBhY2Nlc3NUb2tlbjogc3RyaW5nO1xyXG4gIHB1YmxpYyBhY3Rpdml0aWVzOiBBcnJheTxzdHJpbmc+O1xyXG4gIHByaXZhdGUgc3Vic2NyaWJlTWVzc2FnZUJ1czogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY29va2llc1NlcnZpY2U6IENvb2tpZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBzZXNzaW9uQ29udGV4dDogU2Vzc2lvbkNvbnRleHRcclxuICApIHtcclxuICAgIHRoaXMuYXBpU2VydmVyID0gc2Vzc2lvbkNvbnRleHQuYXBpU2VydmVyO1xyXG5cclxuICAgIGNvbnN0IHVzZXJKc29uID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy51c2VyS2V5KTtcclxuICAgIHRoaXMudXNlciA9IHVzZXJKc29uID8gSlNPTi5wYXJzZSh1c2VySnNvbikgOiBuZXcgVXNlcigpO1xyXG4gICAgdGhpcy5Jbml0Q29tcG9uZW50KCk7XHJcblxyXG4gICAgdGhpcy5pc0F1dGhlbnRpY2F0ZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuYWNjZXNzVG9rZW4gPSAnJyArIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFNlc3Npb25TZXJ2aWNlLkFjY2Vzc1Rva2VuS2V5KTtcclxuICAgIHRoaXMuYWN0aXZpdGllcyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpYmVNZXNzYWdlQnVzID0gQ29tbXVuaWNhdGlvblNlcnZpY2UuZ2V0TWVzc2FnZUJ1cygpXHJcbiAgICAuc3Vic2NyaWJlKChtc2c6IEJ1c01lc3NhZ2UpID0+IHtcclxuICAgICAgaWYgKG1zZy5uYW1lID09PSBCdXNNZXNzYWdlVHlwZS5OZXdVc2VyTG9naW4pIHtcclxuICAgICAgICB0aGlzLnJlZmVycmFsVHJlZSA9IG51bGw7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zdWJzY3JpYmVNZXNzYWdlQnVzKSB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaWJlTWVzc2FnZUJ1cy51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFzQWN0aXZpdHkoYWN0aXZpdHk6IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMuaXNBdXRoZW50aWNhdGVkICYmICF0aGlzLmFjdGl2aXRpZXMubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuZ2V0QWN0aXZpdGllc0Zyb21Db29raWUoKTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5hY3Rpdml0aWVzIHx8ICFhY3Rpdml0eSB8fCAhdGhpcy5pc0F1dGhlbnRpY2F0ZWQpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuYWN0aXZpdGllcy5pbmRleE9mKGFjdGl2aXR5KSAhPT0gLTE7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VXNlcih1c2VyRGF0YTogVXNlcikge1xyXG4gICAgdGhpcy51c2VyID0gdXNlckRhdGE7XHJcbiAgICBjb25zdCB1c2VySnNvbiA9IEpTT04uc3RyaW5naWZ5KHRoaXMudXNlcik7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnVzZXJLZXksIHVzZXJKc29uKTtcclxuICAgIHRoaXMuSW5pdENvbXBvbmVudCgpO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0VXNlclByb2ZpbGUodXNlclByb2ZpbGVEYXRhOiBVc2VyUHJvZmlsZSkge1xyXG4gICAgdGhpcy51c2VyUHJvZmlsZSA9IHVzZXJQcm9maWxlRGF0YTtcclxuICAgIENvbW11bmljYXRpb25TZXJ2aWNlLmdldCgpLmVtaXQodGhpcy51c2VyUHJvZmlsZSk7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXRSZWZlcnJhbFRyZWUocmVmZXJyYWxUcmVlOiBhbnkpIHtcclxuICAgIHRoaXMucmVmZXJyYWxUcmVlID0gcmVmZXJyYWxUcmVlO1xyXG4gICAgQ29tbXVuaWNhdGlvblNlcnZpY2UuZ2V0KCkuZW1pdCh0aGlzLnJlZmVycmFsVHJlZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIEluaXRDb21wb25lbnQoKSB7XHJcbiAgICBtb21lbnQubG9jYWxlKHRoaXMudXNlci5sb2NhbGUgPyB0aGlzLnVzZXIubG9jYWxlIDogJ3J1Jyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEFjdGl2aXRpZXNGcm9tQ29va2llKCkge1xyXG4gICAgY29uc3QgYWN0aXZpdGllcyA9IHRoaXMuY29va2llc1NlcnZpY2UuZ2V0KCdBY3Rpdml0aWVzJyk7XHJcbiAgICB0aGlzLmFjdGl2aXRpZXMgPSBhY3Rpdml0aWVzID8gSlNPTi5wYXJzZShhY3Rpdml0aWVzKSA6IFtdO1xyXG4gIH1cclxuICBwdWJsaWMgaXNJbXBlcnNvbmF0ZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gQm9vbGVhbihsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmlzSW1wZXJzb25hdGVkS2V5KSA9PT0gJ3RydWUnXHJcbiAgICAgID8gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pc0ltcGVyc29uYXRlZEtleSlcclxuICAgICAgOiBmYWxzZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==