UNPKG

@3kles/kles-ionapi

Version:
69 lines 8.45 kB
import { Injectable } from '@angular/core'; import { BehaviorSubject, of } from 'rxjs'; import { filter, tap } from 'rxjs/operators'; import * as i0 from "@angular/core"; import * as i1 from "@angular/common/http"; export class KlesIonApiService { constructor(http) { this.http = http; this._token$ = new BehaviorSubject(null); } auth() { return this.refreshToken(); } refreshToken(force) { this.setToken(null); if (this.isLocalhost()) { console.warn('In localhost, you cannot retrieve a ion api token'); return of(null); } else { const url = `/grid/rest/security/sessions/oauth`; return this.http.get(url, { params: { ...(force && { forceRefresh: true }), rid: this.generateRandomString() }, responseType: 'text' }).pipe(tap((token) => this.setToken(token))); } } get token() { return this._token$.getValue(); } setDevelopmentToken(token) { if (!this.isLocalhost()) { throw new Error('Development tokens are only allowed for localhost'); } else { this.setToken(token); } } getContext() { return this._token$.asObservable().pipe(filter((token) => !!token)); } setToken(token) { this._token$.next(token); } generateRandomString(stringLength = 16) { const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'; let randomstring = ''; for (let i = 0; i < stringLength; i++) { const rnum = Math.floor(Math.random() * chars.length); randomstring += chars.substring(rnum, rnum + 1); } return randomstring; } isLocalhost() { return window.location.hostname === 'localhost'; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KlesIonApiService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KlesIonApiService, providedIn: 'root' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KlesIonApiService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: () => [{ type: i1.HttpClient }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2xlcy1pb25hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tsZXMtaW9uYXBpL3NyYy9saWIvc2VydmljZXMva2xlcy1pb25hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQU03QyxNQUFNLE9BQU8saUJBQWlCO0lBSTFCLFlBQW9CLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7UUFGNUIsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFTLElBQUksQ0FBQyxDQUFDO0lBSXBELENBQUM7SUFFTSxJQUFJO1FBQ1AsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVNLFlBQVksQ0FBQyxLQUFlO1FBQy9CLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDcEIsT0FBTyxDQUFDLElBQUksQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO1lBQ2xFLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ25CO2FBQU07WUFDSCxNQUFNLEdBQUcsR0FBRyxvQ0FBb0MsQ0FBQztZQUNqRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtnQkFDdEIsTUFBTSxFQUFFO29CQUNKLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLENBQUM7b0JBQ3BDLEdBQUcsRUFBRSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7aUJBQ25DO2dCQUNELFlBQVksRUFBRSxNQUFNO2FBQ3ZCLENBQUMsQ0FBQyxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQ3ZDLENBQUM7U0FDTDtJQUNMLENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDWixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVNLG1CQUFtQixDQUFDLEtBQWE7UUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7U0FDeEU7YUFBTTtZQUNILElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDeEI7SUFDTCxDQUFDO0lBRU0sVUFBVTtRQUNiLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRU8sUUFBUSxDQUFDLEtBQWE7UUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVPLG9CQUFvQixDQUFDLGVBQXVCLEVBQUU7UUFDbEQsTUFBTSxLQUFLLEdBQUcsc0NBQXNDLENBQUM7UUFDckQsSUFBSSxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxZQUFZLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDbkMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3RELFlBQVksSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDbkQ7UUFDRCxPQUFPLFlBQVksQ0FBQztJQUN4QixDQUFDO0lBRU8sV0FBVztRQUNmLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEtBQUssV0FBVyxDQUFDO0lBQ3BELENBQUM7K0dBL0RRLGlCQUFpQjttSEFBakIsaUJBQWlCLGNBRmQsTUFBTTs7NEZBRVQsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElLbGVzSW9uQXBpIH0gZnJvbSAnLi9rbGVzLWlvbmFwaS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwQ29udGV4dCwgSHR0cENvbnRleHRUb2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBLbGVzSW9uQXBpU2VydmljZSBpbXBsZW1lbnRzIElLbGVzSW9uQXBpIHtcblxuICAgIHByaXZhdGUgX3Rva2VuJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPihudWxsKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkge1xuXG4gICAgfVxuXG4gICAgcHVibGljIGF1dGgoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVmcmVzaFRva2VuKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZnJlc2hUb2tlbihmb3JjZT86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICB0aGlzLnNldFRva2VuKG51bGwpO1xuICAgICAgICBpZiAodGhpcy5pc0xvY2FsaG9zdCgpKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ0luIGxvY2FsaG9zdCwgeW91IGNhbm5vdCByZXRyaWV2ZSBhIGlvbiBhcGkgdG9rZW4nKTtcbiAgICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHVybCA9IGAvZ3JpZC9yZXN0L3NlY3VyaXR5L3Nlc3Npb25zL29hdXRoYDtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHVybCwge1xuICAgICAgICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgICAgICAgICAuLi4oZm9yY2UgJiYgeyBmb3JjZVJlZnJlc2g6IHRydWUgfSksXG4gICAgICAgICAgICAgICAgICAgIHJpZDogdGhpcy5nZW5lcmF0ZVJhbmRvbVN0cmluZygpXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICByZXNwb25zZVR5cGU6ICd0ZXh0J1xuICAgICAgICAgICAgfSkucGlwZShcbiAgICAgICAgICAgICAgICB0YXAoKHRva2VuKSA9PiB0aGlzLnNldFRva2VuKHRva2VuKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHRva2VuKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl90b2tlbiQuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0RGV2ZWxvcG1lbnRUb2tlbih0b2tlbjogc3RyaW5nKSB7XG4gICAgICAgIGlmICghdGhpcy5pc0xvY2FsaG9zdCgpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RldmVsb3BtZW50IHRva2VucyBhcmUgb25seSBhbGxvd2VkIGZvciBsb2NhbGhvc3QnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2V0VG9rZW4odG9rZW4pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldENvbnRleHQoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Rva2VuJC5hc09ic2VydmFibGUoKS5waXBlKGZpbHRlcigodG9rZW4pID0+ICEhdG9rZW4pKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFRva2VuKHRva2VuOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fdG9rZW4kLm5leHQodG9rZW4pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2VuZXJhdGVSYW5kb21TdHJpbmcoc3RyaW5nTGVuZ3RoOiBudW1iZXIgPSAxNik6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGNoYXJzID0gJzAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWic7XG4gICAgICAgIGxldCByYW5kb21zdHJpbmcgPSAnJztcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHJpbmdMZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3Qgcm51bSA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNoYXJzLmxlbmd0aCk7XG4gICAgICAgICAgICByYW5kb21zdHJpbmcgKz0gY2hhcnMuc3Vic3RyaW5nKHJudW0sIHJudW0gKyAxKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmFuZG9tc3RyaW5nO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNMb2NhbGhvc3QoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgPT09ICdsb2NhbGhvc3QnO1xuICAgIH1cblxufVxuXG4iXX0=