import {
  Controller,
  Get,
  Post,
  Put,
  Delete,
  Param,
  Body,
  ParseIntPipe,
} from '@nestjs/common';
import { EmailSettingsService } from './email-settings.service';
import {
  UpsertEmailSettingsDto,
  SendTestDto,
} from './upsert-email-settings.dto';

@Controller('email-settings')
export class EmailSettingsController {
  constructor(private readonly service: EmailSettingsService) {}

  @Get()
  list() {
    return this.service.list();
  }

  @Get(':id')
  findOne(@Param('id', ParseIntPipe) id: number) {
    return this.service.findOne(id);
  }

  @Post()
  create(@Body() dto: UpsertEmailSettingsDto) {
    return this.service.create(dto);
  }

  @Put(':id')
  update(
    @Param('id', ParseIntPipe) id: number,
    @Body() dto: UpsertEmailSettingsDto,
  ) {
    return this.service.update(id, dto);
  }

  @Delete(':id')
  remove(@Param('id', ParseIntPipe) id: number) {
    return this.service.remove(id);
  }

  @Post(':id/test')
  test(@Param('id', ParseIntPipe) id: number, @Body() dto: SendTestDto) {
    return this.service.sendTest(id, dto.to);
  }
}
