// src/common/filters/http-error.filter.ts
import { ExceptionFilter, Catch, ArgumentsHost, HttpException, Logger } from '@nestjs/common';
import { Response } from 'express';

@Catch(HttpException)
export class HttpErrorFilter implements ExceptionFilter {
 private readonly logger = new Logger(HttpErrorFilter.name);

 catch(exception: HttpException, host: ArgumentsHost) {
   const ctx = host.switchToHttp();
   const response = ctx.getResponse<Response>();
   const status = exception.getStatus();
   const message = exception.message;

   if (message.startsWith('Cannot GET /')) {
     response.status(200).send();
     return;
   }

   this.logger.error(`HTTP Error: ${message}`);
   response.status(status).json({
     message,
     error: exception.name,
     statusCode: status
   });
 }
}