import * as fs from 'fs'; import { Controller, Get, Post, Query, Response, UploadedFile, UseInterceptors, } from '@nestjs/common'; import { FileInterceptor } from '@nestjs/platform-express'; import { ApiTags } from '@nestjs/swagger'; import { UploadFileService } from './upload-file.service'; import { IdInstitucionDto } from '../dto/id-institucion.dto'; import { UploadFileEquipo } from './dto/upload-file-equipo'; @Controller('upload-file') @ApiTags('upload-file') export class UploadFileController { constructor(private uploadFileService: UploadFileService) {} @Post('carga-masiva-equipos') @UseInterceptors(FileInterceptor('csv')) cargaMasivaEquipos( @UploadedFile() file: Express.Multer.File, @Query() query: UploadFileEquipo, ) { return this.uploadFileService.createEquipos( file, parseInt(query.id_carrito), parseInt(query.id_programa), parseInt(query.id_status), ); } @Post('carga-masiva-usuarios') @UseInterceptors(FileInterceptor('csv')) cargaMasivaUsuarios( @UploadedFile() file: Express.Multer.File, @Query() query: IdInstitucionDto, ) { return this.uploadFileService .createUsuarios(file, parseInt(query.id_institucion)) .then((res) => { fs.unlink(res.path, (err) => {}); return res.response; }); } @Get('download-logo') downloadLogo(@Response() res, @Query() query: IdInstitucionDto) { return this.uploadFileService.downloadLogo(parseInt(query.id_institucion)); } @Get('download-plantilla-equipos') downloadPlantillaEquipos(@Response() res) { return res.download('./upload/plantilla_equipos.csv'); } @Get('download-plantilla-usuarios') downloadPlantillaUsuarios(@Response() res) { return res.download('./upload/plantilla_alumnos.csv'); } @Post('upload-logo') @UseInterceptors(FileInterceptor('file')) uploadLogo( @UploadedFile() file: Express.Multer.File, @Query() query: IdInstitucionDto, ) { this.uploadFileService.uploadLogo(file, parseInt(query.id_institucion)); } }