﻿import { CallHandler, ExecutionContext, Injectable, NestInterceptor } from '@nestjs/common';
import { Observable, tap } from 'rxjs';

@Injectable()
export class LoggingInterceptor implements NestInterceptor {
  intercept(context: ExecutionContext, next: CallHandler): Observable<unknown> {
    const request = context.switchToHttp().getRequest();
    const startedAt = Date.now();
    return next.handle().pipe(tap(() => console.log(JSON.stringify({ method: request.method, path: request.url, duration: Date.now() - startedAt }))));
  }
}
