Files
pcpuma_unam_api/src/upload-file/upload-file.controller.ts
T

123 lines
3.5 KiB
TypeScript
Raw Normal View History

2022-04-23 23:55:07 -05:00
import {
2022-06-16 09:02:14 -05:00
BadRequestException,
2022-04-23 23:55:07 -05:00
Controller,
Get,
Post,
Query,
Response,
2022-09-02 16:15:05 -05:00
Request,
2022-04-23 23:55:07 -05:00
UploadedFile,
2022-08-15 14:29:53 -05:00
UseGuards,
2022-04-23 23:55:07 -05:00
UseInterceptors,
} from '@nestjs/common';
2022-08-15 14:29:53 -05:00
import { AuthGuard } from '@nestjs/passport';
2022-04-23 23:55:07 -05:00
import { FileInterceptor } from '@nestjs/platform-express';
2022-08-15 14:29:53 -05:00
import { ApiBearerAuth, ApiTags } from '@nestjs/swagger';
2022-04-23 23:55:07 -05:00
import { UploadFileService } from './upload-file.service';
2022-09-02 16:15:05 -05:00
import { Operador } from '../operador/entity/operador.entity';
import { ValidarUsuarioService } from '../validar-usuario/validar-usuario.service';
2022-04-24 12:00:56 -05:00
import { IdInstitucionDto } from '../dto/id-institucion.dto';
2022-04-23 23:55:07 -05:00
@Controller('upload-file')
2022-06-02 14:22:27 -05:00
@ApiTags('upload-file')
2022-04-23 23:55:07 -05:00
export class UploadFileController {
2022-09-02 16:15:05 -05:00
constructor(
private uploadFileService: UploadFileService,
private validarUsuarioService: ValidarUsuarioService,
) {}
2022-04-23 23:55:07 -05:00
@Post('carga-masiva-equipos')
2022-08-15 14:29:53 -05:00
@UseGuards(AuthGuard('jwt'))
2022-04-27 00:47:09 -05:00
@UseInterceptors(FileInterceptor('csv'))
2022-08-15 14:29:53 -05:00
@ApiBearerAuth('jwt')
2022-04-23 23:55:07 -05:00
cargaMasivaEquipos(
2022-09-02 16:15:05 -05:00
@Request() req,
2022-04-23 23:55:07 -05:00
@UploadedFile() file: Express.Multer.File,
2022-06-06 15:00:36 -05:00
@Query() query: IdInstitucionDto,
2022-04-23 23:55:07 -05:00
) {
2022-09-02 16:15:05 -05:00
const admin: Operador = req.user.operador;
2022-06-16 09:02:14 -05:00
const path = file ? `${file.destination}/${file.filename}` : null;
2022-09-02 16:15:05 -05:00
this.validarUsuarioService.validarAdmin(admin);
2022-06-16 09:02:14 -05:00
if (!file) throw new BadRequestException('No se mandó ningún archivo.');
2022-08-12 15:42:18 -05:00
return this.uploadFileService.createEquipos(
path,
parseInt(query.id_institucion),
);
2022-04-23 23:55:07 -05:00
}
@Post('carga-masiva-usuarios')
2022-08-15 14:29:53 -05:00
@UseGuards(AuthGuard('jwt'))
2022-04-27 00:47:09 -05:00
@UseInterceptors(FileInterceptor('csv'))
2022-08-15 14:29:53 -05:00
@ApiBearerAuth('jwt')
2022-04-23 23:55:07 -05:00
cargaMasivaUsuarios(
2022-09-02 16:15:05 -05:00
@Request() req,
2022-04-23 23:55:07 -05:00
@UploadedFile() file: Express.Multer.File,
@Query() query: IdInstitucionDto,
) {
2022-09-02 16:15:05 -05:00
const admin: Operador = req.user.operador;
2022-06-16 09:02:14 -05:00
const path = file ? `${file.destination}/${file.filename}` : null;
2022-09-02 16:15:05 -05:00
this.validarUsuarioService.validarAdmin(admin);
2022-06-16 09:02:14 -05:00
if (!file) throw new BadRequestException('No se mandó ningún archivo.');
2022-08-14 22:11:44 -05:00
return this.uploadFileService.createUsuarios(
path,
parseInt(query.id_institucion),
);
2022-04-23 23:55:07 -05:00
}
2022-10-04 15:38:15 -05:00
// @Get('download-logo')
// @UseGuards(AuthGuard('jwt'))
// @ApiBearerAuth('jwt')
// downloadLogo(
// @Request() req,
// @Response() res,
// @Query() query: IdInstitucionDto,
// ) {
// const operador: Operador = req.user.operador;
2022-09-02 16:15:05 -05:00
2022-10-04 15:38:15 -05:00
// this.validarUsuarioService.validarAdminOperador(operador);
// return this.uploadFileService
// .downloadLogo(parseInt(query.id_institucion))
// .then((logo) => res.download(logo));
// }
2022-04-23 23:55:07 -05:00
2022-04-25 11:35:21 -05:00
@Get('download-plantilla-equipos')
2022-08-15 14:29:53 -05:00
@UseGuards(AuthGuard('jwt'))
@ApiBearerAuth('jwt')
2022-09-02 16:15:05 -05:00
downloadPlantillaEquipos(@Request() req, @Response() res) {
const admin: Operador = req.user.operador;
this.validarUsuarioService.validarAdmin(admin);
2022-04-27 00:47:09 -05:00
return res.download('./upload/plantilla_equipos.csv');
2022-04-25 11:35:21 -05:00
}
@Get('download-plantilla-usuarios')
2022-08-15 14:29:53 -05:00
@UseGuards(AuthGuard('jwt'))
@ApiBearerAuth('jwt')
2022-09-02 16:15:05 -05:00
downloadPlantillaUsuarios(@Request() req, @Response() res) {
const admin: Operador = req.user.operador;
this.validarUsuarioService.validarAdmin(admin);
2022-04-27 00:47:09 -05:00
return res.download('./upload/plantilla_alumnos.csv');
2022-04-25 11:35:21 -05:00
}
2022-04-23 23:55:07 -05:00
@Post('upload-logo')
2022-08-15 14:29:53 -05:00
@UseGuards(AuthGuard('jwt'))
@ApiBearerAuth('jwt')
2022-06-16 09:02:14 -05:00
@UseInterceptors(FileInterceptor('logo'))
2022-04-23 23:55:07 -05:00
uploadLogo(
2022-09-02 16:15:05 -05:00
@Request() req,
2022-04-23 23:55:07 -05:00
@UploadedFile() file: Express.Multer.File,
@Query() query: IdInstitucionDto,
) {
2022-09-02 16:15:05 -05:00
const admin: Operador = req.user.operador;
this.validarUsuarioService.validarAdmin(admin);
2022-06-16 09:02:14 -05:00
return this.uploadFileService.uploadLogo(
file,
parseInt(query.id_institucion),
);
2022-04-23 23:55:07 -05:00
}
}