@terminus/ngx-tools
Version:
[![CircleCI][circle-badge]][circle-link] [![codecov][codecov-badge]][codecov-project] [![semantic-release][semantic-release-badge]][semantic-release] [![MIT License][license-image]][license-url] <br> [![NPM version][npm-version-image]][npm-url] [![Github
46 lines • 7.54 kB
JavaScript
import { __decorate, __read } from "tslib";
import { HttpClient, HttpHeaders, } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Actions, ofType, } from '@ngrx/effects';
import { Store } from '@ngrx/store';
import { of, } from 'rxjs';
import { catchError, filter, map, switchMap, withLatestFrom, } from 'rxjs/operators';
import * as JwtActions from '../actions';
import { tokenFor } from '../selectors';
import { TokenExtractor } from './token-extractor';
var TokenEscalator = /** @class */ (function () {
function TokenEscalator(actions$,
// eslint-disable-next-line @typescript-eslint/no-explicit-any
store, http, tokenExtractor) {
this.actions$ = actions$;
this.store = store;
this.http = http;
this.tokenExtractor = tokenExtractor;
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
TokenEscalator.prototype.escalateToken = function (_a) {
var _this = this;
var tokenName = _a.tokenName, authorizeUrl = _a.authorizeUrl, isDefaultToken = _a.isDefaultToken;
return this.actions$
.pipe(ofType(JwtActions.ActionTypes.EscalateToken), filter(function (a) { return a.tokenName === tokenName; }), withLatestFrom(authorizeUrl, this.store.select(tokenFor(tokenName))), switchMap(function (_a) {
var _b = __read(_a, 3), action = _b[0], url = _b[1], currentToken = _b[2];
var headers = new HttpHeaders({ Authorization: "Bearer " + currentToken });
return _this.http.get(url, { headers: headers }).pipe(_this.tokenExtractor.extractJwtToken({
tokenName: tokenName,
isDefaultToken: isDefaultToken,
}), map(function () { return new JwtActions.EscalationSuccess(tokenName); }), catchError(function () { return of(new JwtActions.EscalationFailed(tokenName)); }));
}));
};
TokenEscalator.ctorParameters = function () { return [
{ type: Actions },
{ type: Store },
{ type: HttpClient },
{ type: TokenExtractor }
]; };
TokenEscalator = __decorate([
Injectable()
], TokenEscalator);
return TokenEscalator;
}());
export { TokenEscalator };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4tZXNjYWxhdG9yLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRlcm1pbnVzL25neC10b29scy9qd3QvIiwic291cmNlcyI6WyJqd3QtdG9rZW4tbWFuYWdtZW50L3V0aWxpdGllcy90b2tlbi1lc2NhbGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxVQUFVLEVBQ1YsV0FBVyxHQUNaLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQ0wsT0FBTyxFQUNQLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFFTCxFQUFFLEdBQ0gsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQ0wsVUFBVSxFQUNWLE1BQU0sRUFDTixHQUFHLEVBQ0gsU0FBUyxFQUNULGNBQWMsR0FDZixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFeEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBVW5EO0lBaUNFLHdCQUNTLFFBQWlCO0lBQ3hCLDhEQUE4RDtJQUN2RCxLQUFpQixFQUNqQixJQUFnQixFQUNoQixjQUFrQztRQUpsQyxhQUFRLEdBQVIsUUFBUSxDQUFTO1FBRWpCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixtQkFBYyxHQUFkLGNBQWMsQ0FBb0I7SUFDeEMsQ0FBQztJQXJDSiw4REFBOEQ7SUFDdkQsc0NBQWEsR0FBcEIsVUFBcUIsRUFBOEQ7UUFBbkYsaUJBNEJDO1lBNUJzQix3QkFBUyxFQUFFLDhCQUFZLEVBQUUsa0NBQWM7UUFDNUQsT0FBTyxJQUFJLENBQUMsUUFBUTthQUNqQixJQUFJLENBQ0gsTUFBTSxDQUErQixVQUFVLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxFQUMxRSxNQUFNLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsRUFBekIsQ0FBeUIsQ0FBQyxFQUN0QyxjQUFjLENBQ1osWUFBWSxFQUNaLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBdUIsU0FBUyxDQUFDLENBQUMsQ0FDN0QsRUFDRCxTQUFTLENBQUMsVUFBQyxFQUEyQjtnQkFBM0Isa0JBQTJCLEVBQTFCLGNBQU0sRUFBRSxXQUFHLEVBQUUsb0JBQVk7WUFDbkMsSUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLENBQUMsRUFBRSxhQUFhLEVBQUUsWUFBVSxZQUFjLEVBQUUsQ0FBQyxDQUFDO1lBRTdFLE9BQU8sS0FBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ2xCLEdBQUcsRUFDSCxFQUFFLE9BQU8sU0FBQSxFQUFFLENBQ1osQ0FBQyxJQUFJLENBQ0osS0FBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUM7Z0JBQ2xDLFNBQVMsV0FBQTtnQkFDVCxjQUFjLGdCQUFBO2FBQ2YsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxjQUFNLE9BQUEsSUFBSSxVQUFVLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLEVBQTNDLENBQTJDLENBQUMsRUFDdEQsVUFBVSxDQUFDLGNBQU0sT0FBQSxFQUFFLENBQ2pCLElBQUksVUFBVSxDQUFDLGdCQUFnQixDQUFLLFNBQVMsQ0FBQyxDQUMvQyxFQUZnQixDQUVoQixDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUNILENBQ0Y7SUFDSCxDQUFDOztnQkFHa0IsT0FBTztnQkFFVixLQUFLO2dCQUNOLFVBQVU7Z0JBQ0EsY0FBYzs7SUF0QzVCLGNBQWM7UUFEMUIsVUFBVSxFQUFFO09BQ0EsY0FBYyxDQXlDMUI7SUFBRCxxQkFBQztDQUFBLEFBekNELElBeUNDO1NBekNZLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBIdHRwQ2xpZW50LFxuICBIdHRwSGVhZGVycyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWN0aW9ucyxcbiAgb2ZUeXBlLFxufSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgY2F0Y2hFcnJvcixcbiAgZmlsdGVyLFxuICBtYXAsXG4gIHN3aXRjaE1hcCxcbiAgd2l0aExhdGVzdEZyb20sXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0ICogYXMgSnd0QWN0aW9ucyBmcm9tICcuLi9hY3Rpb25zJztcbmltcG9ydCB7IENsYWltTWFwIH0gZnJvbSAnLi4vY2xhaW0tbWFwJztcbmltcG9ydCB7IHRva2VuRm9yIH0gZnJvbSAnLi4vc2VsZWN0b3JzJztcblxuaW1wb3J0IHsgVG9rZW5FeHRyYWN0b3IgfSBmcm9tICcuL3Rva2VuLWV4dHJhY3Rvcic7XG5cblxuZXhwb3J0IGludGVyZmFjZSBFc2NhbGF0ZVRva2VuPENNID0gQ2xhaW1NYXA+IGV4dGVuZHMgUGFydGlhbDxKd3RBY3Rpb25zLlN0b3JlVG9rZW5Db25zdHJ1Y3RvcjxDTT4+IHtcbiAgYXV0aG9yaXplVXJsOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gIHRva2VuTmFtZTogRXh0cmFjdDxrZXlvZiBDTSwgc3RyaW5nPjtcbn1cblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVG9rZW5Fc2NhbGF0b3I8Q00gPSBDbGFpbU1hcD4ge1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHB1YmxpYyBlc2NhbGF0ZVRva2VuKHsgdG9rZW5OYW1lLCBhdXRob3JpemVVcmwsIGlzRGVmYXVsdFRva2VuIH06IEVzY2FsYXRlVG9rZW48Q00+KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpb25zJFxuICAgICAgLnBpcGUoXG4gICAgICAgIG9mVHlwZTxKd3RBY3Rpb25zLkVzY2FsYXRlVG9rZW48Q00+PihKd3RBY3Rpb25zLkFjdGlvblR5cGVzLkVzY2FsYXRlVG9rZW4pLFxuICAgICAgICBmaWx0ZXIoYSA9PiBhLnRva2VuTmFtZSA9PT0gdG9rZW5OYW1lKSxcbiAgICAgICAgd2l0aExhdGVzdEZyb20oXG4gICAgICAgICAgYXV0aG9yaXplVXJsLFxuICAgICAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KHRva2VuRm9yPENNLCB0eXBlb2YgdG9rZW5OYW1lPih0b2tlbk5hbWUpKSxcbiAgICAgICAgKSxcbiAgICAgICAgc3dpdGNoTWFwKChbYWN0aW9uLCB1cmwsIGN1cnJlbnRUb2tlbl0pID0+IHtcbiAgICAgICAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHsgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2N1cnJlbnRUb2tlbn1gIH0pO1xuXG4gICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8e3Rva2VuOiBzdHJpbmd9PihcbiAgICAgICAgICAgIHVybCxcbiAgICAgICAgICAgIHsgaGVhZGVycyB9LFxuICAgICAgICAgICkucGlwZShcbiAgICAgICAgICAgIHRoaXMudG9rZW5FeHRyYWN0b3IuZXh0cmFjdEp3dFRva2VuKHtcbiAgICAgICAgICAgICAgdG9rZW5OYW1lLFxuICAgICAgICAgICAgICBpc0RlZmF1bHRUb2tlbixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbWFwKCgpID0+IG5ldyBKd3RBY3Rpb25zLkVzY2FsYXRpb25TdWNjZXNzKHRva2VuTmFtZSkpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihcbiAgICAgICAgICAgICAgbmV3IEp3dEFjdGlvbnMuRXNjYWxhdGlvbkZhaWxlZDxDTT4odG9rZW5OYW1lKSxcbiAgICAgICAgICAgICkpLFxuICAgICAgICAgICk7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgIDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBhY3Rpb25zJDogQWN0aW9ucyxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHB1YmxpYyBzdG9yZTogU3RvcmU8YW55PixcbiAgICBwdWJsaWMgaHR0cDogSHR0cENsaWVudCxcbiAgICBwdWJsaWMgdG9rZW5FeHRyYWN0b3I6IFRva2VuRXh0cmFjdG9yPENNPixcbiAgKSB7fVxuXG59XG4iXX0=