import { Body, Controller, Delete, Get, HttpCode, HttpStatus, Param, Post, Put, Query, UseGuards } from '@nestjs/common'; import { ApiTags } from '@nestjs/swagger'; import { EmailTemplateService } from 'src/email-template/email-template.service'; import { CreateEmailTemplateDto } from 'src/email-template/dto/create-email-template.dto'; import { UpdateEmailTemplateDto } from 'src/email-template/dto/update-email-template.dto'; import { PermissionGuard } from 'src/common/guard/permission.guard'; import { Pagination } from 'src/paginate'; import { EmailTemplate } from 'src/email-template/serializer/email-template.serializer'; import { EmailTemplatesSearchFilterDto } from 'src/email-template/dto/email-templates-search-filter.dto'; import JwtTwoFactorGuard from 'src/common/guard/jwt-two-factor.guard'; @ApiTags('email-templates') @UseGuards(JwtTwoFactorGuard, PermissionGuard) @Controller('email-templates') export class EmailTemplateController { constructor(private readonly emailTemplateService: EmailTemplateService) {} @Post() create( @Body() createEmailTemplateDto: CreateEmailTemplateDto ): Promise { return this.emailTemplateService.create(createEmailTemplateDto); } @Get() findAll( @Query() filter: EmailTemplatesSearchFilterDto ): Promise> { return this.emailTemplateService.findAll(filter); } @Get(':id') findOne( @Param('id') id: string ): Promise { return this.emailTemplateService.findOne(+id); } @Put(':id') update( @Param('id') id: string, @Body() updateEmailTemplateDto: UpdateEmailTemplateDto ): Promise { return this.emailTemplateService.update(+id, updateEmailTemplateDto); } @Delete(':id') @HttpCode(HttpStatus.NO_CONTENT) remove( @Param('id') id: string ): Promise { return this.emailTemplateService.remove(+id); } }