Merge branch 'master' into develop

This commit is contained in:
2026-02-25 13:59:05 -06:00
3 changed files with 59 additions and 5 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;
}
+17 -1
View File
@@ -1,5 +1,6 @@
import { Controller, Get, UseGuards } from '@nestjs/common';
import { Body, Controller, Delete, Get, Param, Patch, Post, Put, UseGuards } from '@nestjs/common';
import { PeriodoService } from './periodo.service';
import { CreatePeriodoDto, ModifiedDateDto } from './dto/create-periodo.dto';
import { JwtAuthGuard } from 'src/user/jwt.guard';
@Controller('periodo')
@@ -11,4 +12,19 @@ export class PeriodoController {
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)
}
}