import { decodeDataSource } from '@ghostfolio/common/helper'; import { CallHandler, ExecutionContext, Injectable, NestInterceptor } from '@nestjs/common'; import { Observable } from 'rxjs'; import { ConfigurationService } from '../services/configuration.service'; @Injectable() export class TransformDataSourceInRequestInterceptor<T> implements NestInterceptor<T, any> { public constructor( private readonly configurationService: ConfigurationService ) {} public intercept( context: ExecutionContext, next: CallHandler<T> ): Observable<any> { const http = context.switchToHttp(); const request = http.getRequest(); if (this.configurationService.get('ENABLE_FEATURE_SUBSCRIPTION') === true) { if (request.body.dataSource) { request.body.dataSource = decodeDataSource(request.body.dataSource); } if (request.params.dataSource) { request.params.dataSource = decodeDataSource(request.params.dataSource); } } return next.handle(); } }