import { Response } from 'express';
import { ApiLog } from './entities/api-log.entity';
import { Repository } from 'typeorm';
import { generateErrorLog } from 'src/common/helper';
import { sendErrorEmail } from 'src/common/Email/mail-utils';
import { HttpException } from '@nestjs/common';

export function saveError(error: any, logRepository: Repository<ApiLog>) {
  let statusCode = 500;
  // Check if the error is an instance of HttpException
  if (error instanceof HttpException) {
    statusCode = error.getStatus();
  }

  // Save error message to database
  const logEntry = new ApiLog();
  logEntry.response_code = '500';
  logEntry.error_message = error.message;
  logEntry.stack_trace = JSON.stringify(error);

  logRepository.save(logEntry);

  if (statusCode == 500) {
    const errorLog: ApiLog = generateErrorLog(error);
    sendErrorEmail(error, errorLog);
  }
}
