import {
  ExceptionFilter,
  Catch,
  ArgumentsHost,
  HttpException,
} from "@nestjs/common"
import { Response } from "express"
import { ApiLogService } from "./v1/api-log.service"

@Catch(HttpException)
export class ApiValidationLogInterceptor implements ExceptionFilter {
  constructor(private readonly apiLogService: ApiLogService) {}

  catch(exception: HttpException, host: ArgumentsHost) {
    const ctx = host.switchToHttp()
    // const request = ctx.getRequest<Request>()
    const response = ctx.getResponse<Response>()
    const status = exception.getStatus()
    console.log("status================", status)
    // const logEntry = {
    //   method: request.method,
    //   url: request.url,
    //   statusCode: status,
    //   responseTime: Date.now() - request['startTime'], // Make sure to set `startTime` on request
    //   requestBody: request.body,
    //   responseBody: exception.getResponse(),
    // };
    // // Log the error
    // this.apiLogService.saveLog(logEntry);

    response.status(status).json(exception.getResponse())
  }
}
