From f653b0e24a25aea64b4597f8c95d0cd66dd4a639 Mon Sep 17 00:00:00 2001 From: IO <320154041@pcpuma.acatlan.unam.mx> Date: Wed, 25 Feb 2026 13:52:00 -0600 Subject: [PATCH] create new ep in periodo --- src/periodo/dto/create-periodo.dto.ts | 10 ++++++++ src/periodo/periodo.controller.ts | 22 +++++++++++++--- src/periodo/periodo.service.ts | 36 ++++++++++++++++++++++++--- 3 files changed, 61 insertions(+), 7 deletions(-) diff --git a/src/periodo/dto/create-periodo.dto.ts b/src/periodo/dto/create-periodo.dto.ts index ea24c49..b0fde21 100644 --- a/src/periodo/dto/create-periodo.dto.ts +++ b/src/periodo/dto/create-periodo.dto.ts @@ -21,3 +21,13 @@ export class CreatePeriodoDto { @IsBoolean() activo?: boolean; } + +export class ModifiedDateDto { + + @IsDateString() + fecha_inicio_servicio: string; + + @IsDateString() + fecha_fin_servicio: string; + +} diff --git a/src/periodo/periodo.controller.ts b/src/periodo/periodo.controller.ts index ddd1207..5221b47 100644 --- a/src/periodo/periodo.controller.ts +++ b/src/periodo/periodo.controller.ts @@ -1,12 +1,28 @@ -import { Controller, Get } from '@nestjs/common'; +import { Body, Controller, Delete, Get, Param, Patch, Post, Put } from '@nestjs/common'; import { PeriodoService } from './periodo.service'; +import { CreatePeriodoDto, ModifiedDateDto } from './dto/create-periodo.dto'; @Controller('periodo') export class PeriodoController { - constructor(private readonly periodoService:PeriodoService){} + constructor(private readonly periodoService: PeriodoService) { } @Get() - findAll(){ + findAll() { return this.periodoService.findAll(); } + + @Post() + create(@Body() data: CreatePeriodoDto) { + return this.periodoService.create(data); + } + + @Delete("/:id_periodo") + delete(@Param("id_periodo") id_periodo: number) { + return this.periodoService.delete(id_periodo) + } + + @Patch("/date/:id_periodo") + modifiedDate(@Body() data: ModifiedDateDto, @Param("id_periodo") id_periodo: number) { + return this.periodoService.modifiedDate(data, id_periodo) + } } diff --git a/src/periodo/periodo.service.ts b/src/periodo/periodo.service.ts index a809cbb..412f693 100644 --- a/src/periodo/periodo.service.ts +++ b/src/periodo/periodo.service.ts @@ -1,17 +1,18 @@ -import { Injectable, NotFoundException } from '@nestjs/common'; +import { BadRequestException, Injectable, NotFoundException } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { Periodo } from './entities/periodo.entity'; import { Repository } from 'typeorm'; +import { CreatePeriodoDto, ModifiedDateDto } from './dto/create-periodo.dto'; @Injectable() export class PeriodoService { constructor( @InjectRepository(Periodo) private readonly periodoRepository: Repository, - ) {} + ) { } - async findOne() { - return this.periodoRepository.findOne({ where: {} }); + async findOne(semestre: string) { + return this.periodoRepository.findOne({ where: { semestre } }); } async findAll() { @@ -30,4 +31,31 @@ export class PeriodoService { return periodo; } + + async delete(id_periodo: number) { + this.periodoRepository.delete(id_periodo) + } + + async periodoDisable(id_periodo:number) { + this.periodoRepository.update(id_periodo, { activo: false }) + } + + async create(data: CreatePeriodoDto) { + const periodo = await this.findOne(data.semestre) + + if (periodo) { + throw new BadRequestException("El periodo ya existe") + } + + const periodoActive = await this.getPeriodoActivo(); + + this.periodoDisable(periodoActive.id_periodo) + + const create = this.periodoRepository.create(data) + return this.periodoRepository.save(create) + } + + async modifiedDate(data:ModifiedDateDto,id_periodo){ + return this.periodoRepository.update(id_periodo,data) + } }