From cdf3b761e4dc365687904cd4d78a87f3958b09d1 Mon Sep 17 00:00:00 2001 From: Emilio Date: Fri, 10 Oct 2025 11:55:16 -0600 Subject: [PATCH] =?UTF-8?q?Se=20creo=20m=C3=B3dulo=20de=20cuestionario=20p?= =?UTF-8?q?rograma?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cuestionario-programa2.controller.ts | 40 ++++++++++----- .../cuestionario-programa2.service.ts | 49 +++++++------------ src/cuestionario-programa2/dto/find.dto.ts | 15 ++++++ .../dto/update-cuestionario-programa2.dto.ts | 4 -- 4 files changed, 63 insertions(+), 45 deletions(-) create mode 100644 src/cuestionario-programa2/dto/find.dto.ts delete mode 100644 src/cuestionario-programa2/dto/update-cuestionario-programa2.dto.ts diff --git a/src/cuestionario-programa2/cuestionario-programa2.controller.ts b/src/cuestionario-programa2/cuestionario-programa2.controller.ts index 3354a74..175c8c0 100644 --- a/src/cuestionario-programa2/cuestionario-programa2.controller.ts +++ b/src/cuestionario-programa2/cuestionario-programa2.controller.ts @@ -1,21 +1,39 @@ -import { Controller, Get, Post, Body, Patch, Param, Delete } from '@nestjs/common'; +import { + Controller, + Get, + Post, + Body, + Patch, + Param, + Delete, + UseGuards, +} from '@nestjs/common'; import { CuestionarioPrograma2Service } from './cuestionario-programa2.service'; import { CreateCuestionarioPrograma2Dto } from './dto/create-cuestionario-programa2.dto'; -import { UpdateCuestionarioPrograma2Dto } from './dto/update-cuestionario-programa2.dto'; +import { AuthGuard } from '@nestjs/passport'; +import { findCuestionarioProgama2Dto } from './dto/find.dto'; @Controller('cuestionario-programa2') export class CuestionarioPrograma2Controller { - constructor(private readonly cuestionarioPrograma2Service: CuestionarioPrograma2Service) {} + constructor( + private readonly cuestionarioPrograma2Service: CuestionarioPrograma2Service, + ) {} - // @Post() - // create(@Body() createCuestionarioPrograma2Dto: CreateCuestionarioPrograma2Dto) { - // return this.cuestionarioPrograma2Service.create(createCuestionarioPrograma2Dto); - // } + @Post() + @UseGuards(AuthGuard('jwt')) + create( + @Body() createCuestionarioPrograma2Dto: CreateCuestionarioPrograma2Dto, + ) { + return this.cuestionarioPrograma2Service.create( + createCuestionarioPrograma2Dto, + ); + } - // @Get() - // findAll() { - // return this.cuestionarioPrograma2Service.findAll(); - // } + @Get() + @UseGuards(AuthGuard('jwt')) + findAll(@Body() cuestionario: findCuestionarioProgama2Dto) { + return this.cuestionarioPrograma2Service.getCuestionario(cuestionario); + } // @Get(':id') // findOne(@Param('id') id: string) { diff --git a/src/cuestionario-programa2/cuestionario-programa2.service.ts b/src/cuestionario-programa2/cuestionario-programa2.service.ts index 611b1b0..9f7add1 100644 --- a/src/cuestionario-programa2/cuestionario-programa2.service.ts +++ b/src/cuestionario-programa2/cuestionario-programa2.service.ts @@ -1,6 +1,5 @@ import { BadRequestException, Injectable } from '@nestjs/common'; import { CreateCuestionarioPrograma2Dto } from './dto/create-cuestionario-programa2.dto'; -import { UpdateCuestionarioPrograma2Dto } from './dto/update-cuestionario-programa2.dto'; import { InjectRepository } from '@nestjs/typeorm'; import { CuestionarioPrograma } from 'src/cuestionario-programa/entities/cuestionario-programa.entity'; import { Not, Repository } from 'typeorm'; @@ -19,21 +18,27 @@ export class CuestionarioPrograma2Service { @InjectRepository(CuestionarioPrograma2) private cuestionario2Repo: Repository, @InjectRepository(Servicio) - private servicioRepository:Repository, - private archivoService:ArchivoService, - private validacionService:ValidacionService, + private servicioRepository: Repository, + private archivoService: ArchivoService, + private validacionService: ValidacionService, ) {} - + async create(cuestionarioPrograma2: CreateCuestionarioPrograma2Dto) { let idServicio = cuestionarioPrograma2.idServicio; - let cuestionario = this.validacionService.validarCuestionarioPrograma2(cuestionarioPrograma2); + let cuestionario = this.validacionService.validarCuestionarioPrograma2( + cuestionarioPrograma2, + ); - let servicio = await this.servicioRepository.findOne({where:{idServicio}}); - if(!servicio){ + let servicio = await this.servicioRepository.findOne({ + where: { idServicio }, + }); + if (!servicio) { throw new Error('No existe este Servicio Social.'); } - if(servicio.cuestionarioPrograma2.idCuestionarioPrograma2){ - throw new Error('Este Servicio Social ya cuenta con cuestionario de alumno'); + if (servicio.cuestionarioPrograma2.idCuestionarioPrograma2) { + throw new Error( + 'Este Servicio Social ya cuenta con cuestionario de alumno', + ); } console.log('el servicio social si existe', servicio); @@ -42,39 +47,25 @@ export class CuestionarioPrograma2Service { if (messageByStatus.hasOwnProperty(servicio.status.idStatus)) throw new Error(messageByStatus[servicio.status.idStatus]); - - - - console.log('despues de registrar cuestionario', cuestionario); let respuestasRegistradas = await this.cuestionario2Repo.save(cuestionario); // si el cuestionario ya existe solo hay que actualizar el id de cuestionarioprograma o alumno + console.log('registrar id en servicio en cuestionario 2'); - console.log("registrar id en servicio en cuestionario 2"); - let x = await this.servicioRepository.update( - { idServicio }, - { cuestionarioPrograma2: respuestasRegistradas } - ) + { cuestionarioPrograma2: respuestasRegistradas }, + ); console.log(x); - - - - - return respuestasRegistradas; - - - } - async getCuestionario(dto: {version:string, year:string}) { + async getCuestionario(dto: { version: string; year: string }) { const { version, year } = dto; const filePath = `server/uploads/${year}_cuestionario_programa.csv`; @@ -82,7 +73,6 @@ export class CuestionarioPrograma2Service { if (version === 'v1') { registros = await this.cuestionarioRepo.find(); - } else if (version === 'v2') { registros = await this.cuestionario2Repo.find(); } else { @@ -97,5 +87,4 @@ export class CuestionarioPrograma2Service { return this.archivoService.crearArchivo(filePath, convertArrayToCSV(data)); } - } diff --git a/src/cuestionario-programa2/dto/find.dto.ts b/src/cuestionario-programa2/dto/find.dto.ts new file mode 100644 index 0000000..701d584 --- /dev/null +++ b/src/cuestionario-programa2/dto/find.dto.ts @@ -0,0 +1,15 @@ +import { IsEnum, IsString, Length } from 'class-validator'; + +enum Version { + ACTIVO = 'v1', + INACTIVO = 'v2', +} + +export class findCuestionarioProgama2Dto { + @IsEnum(Version, { message: 'La version debe ser v1 o v2' }) + version: Version; + + @IsString() + @Length(4, 4, { message: 'El número debe tener exactamente 4 dígitos' }) + year: string; +} diff --git a/src/cuestionario-programa2/dto/update-cuestionario-programa2.dto.ts b/src/cuestionario-programa2/dto/update-cuestionario-programa2.dto.ts deleted file mode 100644 index 18d949e..0000000 --- a/src/cuestionario-programa2/dto/update-cuestionario-programa2.dto.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { PartialType } from '@nestjs/mapped-types'; -import { CreateCuestionarioPrograma2Dto } from './create-cuestionario-programa2.dto'; - -export class UpdateCuestionarioPrograma2Dto extends PartialType(CreateCuestionarioPrograma2Dto) {}