rxstack/rxstack

View on GitHub
packages/security/src/token-extractors/query-parameter-token-extractor.ts

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
import {TokenExtractorInterface} from '../interfaces';
import {Injectable} from 'injection-js';
import {SecurityConfiguration} from '../security-configuration';
import {Request} from '@rxstack/core';

@Injectable()
export class QueryParameterTokenExtractor implements TokenExtractorInterface {

  static readonly EXTRACTOR_NAME = 'query_parameter';

  constructor(private config: SecurityConfiguration) { }

  extract(request: Request): string {
    const name = this.config.token_extractors.query_parameter.name;
    if (request.params.has(name) && this.config.token_extractors.query_parameter.enabled) {
      return request.params.get(name);
    }
    return null;
  }

  getName(): string {
    return QueryParameterTokenExtractor.EXTRACTOR_NAME;
  }
}