UNPKG

@alauda-fe/common

Version:

Alauda frontend team common codes.

53 lines 7.09 kB
/** * @packageDocumentation * @module license */ import { HttpClient } from '@angular/common/http'; import { Inject, Injectable, InjectionToken } from '@angular/core'; import { catchError, map, of, shareReplay } from 'rxjs'; import { K8sUtilService } from '../core/public-api'; import { formatProductName, LICENSE_FEATURE_GATE } from './license-api'; import { LicenseProductName, LicenseStatus } from './license.type'; import * as i0 from "@angular/core"; import * as i1 from "@angular/common/http"; import * as i2 from "../core/public-api"; import * as i3 from "./license.type"; // each platform inject this token to specify product name export const LICENSE_PRODUCT_NAME_TOKEN = new InjectionToken('product_name'); const FAILED_STATUS_MAPPER = { Expired: LicenseStatus.EXPIRED, Forbidden: LicenseStatus.NO_PERMISSION, NotExist: LicenseStatus.UNAUTHORIZED, }; export class LicenseService { constructor(productName, http, k8sUtil) { this.productName = productName; this.http = http; this.k8sUtil = k8sUtil; this.status$ = this.getStatus(); } getStatus() { return this.http .get(LICENSE_FEATURE_GATE, { params: { product: formatProductName(this.productName) }, }) .pipe(catchError(() => of(null)), map(featureGate => { if (featureGate?.status?.enabled) { return LicenseStatus.AUTHORIZED; } const annotation = this.k8sUtil.getAnnotation(featureGate, 'reason', 'license'); return ((annotation && FAILED_STATUS_MAPPER[annotation]) || LicenseStatus.INVALID); }), shareReplay(1)); } static { this.ɵfac = function LicenseService_Factory(t) { return new (t || LicenseService)(i0.ɵɵinject(LICENSE_PRODUCT_NAME_TOKEN), i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.K8sUtilService)); }; } static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: LicenseService, factory: LicenseService.ɵfac, providedIn: 'root' }); } } (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LicenseService, [{ type: Injectable, args: [{ providedIn: 'root' }] }], () => [{ type: i3.LicenseProductName, decorators: [{ type: Inject, args: [LICENSE_PRODUCT_NAME_TOKEN] }] }, { type: i1.HttpClient }, { type: i2.K8sUtilService }], null); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGljZW5zZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2xpY2Vuc2UvbGljZW5zZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFjLFVBQVUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVwRSxPQUFPLEVBQWUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFFbkUsMERBQTBEO0FBQzFELE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUNyQyxJQUFJLGNBQWMsQ0FBcUIsY0FBYyxDQUFDLENBQUM7QUFFekQsTUFBTSxvQkFBb0IsR0FBa0M7SUFDMUQsT0FBTyxFQUFFLGFBQWEsQ0FBQyxPQUFPO0lBQzlCLFNBQVMsRUFBRSxhQUFhLENBQUMsYUFBYTtJQUN0QyxRQUFRLEVBQUUsYUFBYSxDQUFDLFlBQVk7Q0FDckMsQ0FBQztBQUdGLE1BQU0sT0FBTyxjQUFjO0lBR3pCLFlBRW1CLFdBQStCLEVBQy9CLElBQWdCLEVBQ2hCLE9BQXVCO1FBRnZCLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBTjFDLFlBQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFPeEIsQ0FBQztJQUVKLFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsR0FBRyxDQUFjLG9CQUFvQixFQUFFO1lBQ3RDLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUU7U0FDekQsQ0FBQzthQUNELElBQUksQ0FDSCxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQzFCLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNoQixJQUFJLFdBQVcsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUM7Z0JBQ2pDLE9BQU8sYUFBYSxDQUFDLFVBQVUsQ0FBQztZQUNsQyxDQUFDO1lBQ0QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQzNDLFdBQVcsRUFDWCxRQUFRLEVBQ1IsU0FBUyxDQUNWLENBQUM7WUFDRixPQUFPLENBQ0wsQ0FBQyxVQUFVLElBQUksb0JBQW9CLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ2hELGFBQWEsQ0FBQyxPQUFPLENBQ3RCLENBQUM7UUFDSixDQUFDLENBQUMsRUFDRixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUNOLENBQUM7K0VBakNVLGNBQWMsY0FJZiwwQkFBMEI7dUVBSnpCLGNBQWMsV0FBZCxjQUFjLG1CQURELE1BQU07O2lGQUNuQixjQUFjO2NBRDFCLFVBQVU7ZUFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7O3NCQUs3QixNQUFNO3VCQUFDLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXG4gKiBAbW9kdWxlIGxpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgY2F0Y2hFcnJvciwgbWFwLCBvZiwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRmVhdHVyZUdhdGUsIEs4c1V0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9wdWJsaWMtYXBpJztcblxuaW1wb3J0IHsgZm9ybWF0UHJvZHVjdE5hbWUsIExJQ0VOU0VfRkVBVFVSRV9HQVRFIH0gZnJvbSAnLi9saWNlbnNlLWFwaSc7XG5pbXBvcnQgeyBMaWNlbnNlUHJvZHVjdE5hbWUsIExpY2Vuc2VTdGF0dXMgfSBmcm9tICcuL2xpY2Vuc2UudHlwZSc7XG5cbi8vIGVhY2ggcGxhdGZvcm0gaW5qZWN0IHRoaXMgdG9rZW4gdG8gc3BlY2lmeSBwcm9kdWN0IG5hbWVcbmV4cG9ydCBjb25zdCBMSUNFTlNFX1BST0RVQ1RfTkFNRV9UT0tFTiA9XG4gIG5ldyBJbmplY3Rpb25Ub2tlbjxMaWNlbnNlUHJvZHVjdE5hbWU+KCdwcm9kdWN0X25hbWUnKTtcblxuY29uc3QgRkFJTEVEX1NUQVRVU19NQVBQRVI6IFJlY29yZDxzdHJpbmcsIExpY2Vuc2VTdGF0dXM+ID0ge1xuICBFeHBpcmVkOiBMaWNlbnNlU3RhdHVzLkVYUElSRUQsXG4gIEZvcmJpZGRlbjogTGljZW5zZVN0YXR1cy5OT19QRVJNSVNTSU9OLFxuICBOb3RFeGlzdDogTGljZW5zZVN0YXR1cy5VTkFVVEhPUklaRUQsXG59O1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIExpY2Vuc2VTZXJ2aWNlIHtcbiAgc3RhdHVzJCA9IHRoaXMuZ2V0U3RhdHVzKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChMSUNFTlNFX1BST0RVQ1RfTkFNRV9UT0tFTilcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByb2R1Y3ROYW1lOiBMaWNlbnNlUHJvZHVjdE5hbWUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgazhzVXRpbDogSzhzVXRpbFNlcnZpY2UsXG4gICkge31cblxuICBnZXRTdGF0dXMoKTogT2JzZXJ2YWJsZTxMaWNlbnNlU3RhdHVzPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxGZWF0dXJlR2F0ZT4oTElDRU5TRV9GRUFUVVJFX0dBVEUsIHtcbiAgICAgICAgcGFyYW1zOiB7IHByb2R1Y3Q6IGZvcm1hdFByb2R1Y3ROYW1lKHRoaXMucHJvZHVjdE5hbWUpIH0sXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YobnVsbCkpLFxuICAgICAgICBtYXAoZmVhdHVyZUdhdGUgPT4ge1xuICAgICAgICAgIGlmIChmZWF0dXJlR2F0ZT8uc3RhdHVzPy5lbmFibGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gTGljZW5zZVN0YXR1cy5BVVRIT1JJWkVEO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBhbm5vdGF0aW9uID0gdGhpcy5rOHNVdGlsLmdldEFubm90YXRpb24oXG4gICAgICAgICAgICBmZWF0dXJlR2F0ZSxcbiAgICAgICAgICAgICdyZWFzb24nLFxuICAgICAgICAgICAgJ2xpY2Vuc2UnLFxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChhbm5vdGF0aW9uICYmIEZBSUxFRF9TVEFUVVNfTUFQUEVSW2Fubm90YXRpb25dKSB8fFxuICAgICAgICAgICAgTGljZW5zZVN0YXR1cy5JTlZBTElEXG4gICAgICAgICAgKTtcbiAgICAgICAgfSksXG4gICAgICAgIHNoYXJlUmVwbGF5KDEpLFxuICAgICAgKTtcbiAgfVxufVxuIl19