create new ep in periodo

This commit is contained in:
2026-02-25 13:52:00 -06:00
parent eb52f9829f
commit f653b0e24a
3 changed files with 61 additions and 7 deletions
+10
View File
@@ -21,3 +21,13 @@ export class CreatePeriodoDto {
@IsBoolean()
activo?: boolean;
}
export class ModifiedDateDto {
@IsDateString()
fecha_inicio_servicio: string;
@IsDateString()
fecha_fin_servicio: string;
}
+19 -3
View File
@@ -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)
}
}
+32 -4
View File
@@ -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<Periodo>,
) {}
) { }
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)
}
}