66 lines
1.5 KiB
TypeScript
66 lines
1.5 KiB
TypeScript
import {
|
|
Body,
|
|
Controller,
|
|
Get,
|
|
HttpException,
|
|
HttpStatus,
|
|
Param,
|
|
ParseIntPipe,
|
|
Post,
|
|
Res,
|
|
UploadedFile,
|
|
UseGuards,
|
|
UseInterceptors,
|
|
} from '@nestjs/common';
|
|
import { FileInterceptor } from '@nestjs/platform-express';
|
|
import { EmailDto } from './dto/emailDto.dto';
|
|
import { EmailService } from './email.service';
|
|
import { Response } from 'express';
|
|
import * as xlsx from 'xlsx';
|
|
import { AuthGuard } from '@nestjs/passport';
|
|
|
|
@Controller('email')
|
|
export class EmailController {
|
|
constructor(private readonly emailService: EmailService) { }
|
|
|
|
@UseGuards(AuthGuard('jwt'))
|
|
@Post('/evento/:id')
|
|
async sendEmail(
|
|
@Param('id', ParseIntPipe) id: number,
|
|
@Body() emailDto: EmailDto,
|
|
@Res() res,
|
|
): Promise<any> {
|
|
return this.emailService.sendEmail(id, emailDto, res);
|
|
}
|
|
|
|
@UseGuards(AuthGuard('jwt'))
|
|
@Post('constancias/:id')
|
|
@UseInterceptors(FileInterceptor('file'))
|
|
async sendConstancias(
|
|
@UploadedFile() file,
|
|
@Param('id', ParseIntPipe) id: number,
|
|
@Res() res,
|
|
) {
|
|
if (!file) {
|
|
throw new HttpException(
|
|
'No se ha cargado ningun archivo',
|
|
HttpStatus.BAD_REQUEST,
|
|
);
|
|
}
|
|
return this.emailService.sendConstancias(file, id, res);
|
|
}
|
|
|
|
//@UseGuards(AuthGuard('jwt'))
|
|
@Get(':id/participantes/xlsx')
|
|
async descargarExcel(
|
|
@Param('id') idEvento: number,
|
|
@Res() res: Response,
|
|
) {
|
|
console.log('entro en el controller')
|
|
return this.emailService.getParticipantesExcel(idEvento, res);
|
|
}
|
|
|
|
|
|
|
|
}
|