From 4134c487eba9ba2b35a160dbf82dec98af0a19f3 Mon Sep 17 00:00:00 2001 From: Drakthor475 Date: Wed, 22 Oct 2025 13:53:49 -0600 Subject: [PATCH] update equipo --- src/equipo/dto/create-equipo.dto.ts | 4 ++- src/equipo/dto/update-equipo.dto.ts | 36 +++++++++++++++++++++++- src/equipo/entities/equipo.entity.ts | 7 ++--- src/equipo/equipo.controller.ts | 30 ++++---------------- src/equipo/equipo.service.ts | 42 ++++++++++++++++++---------- 5 files changed, 73 insertions(+), 46 deletions(-) diff --git a/src/equipo/dto/create-equipo.dto.ts b/src/equipo/dto/create-equipo.dto.ts index 10f7243..6b2a034 100644 --- a/src/equipo/dto/create-equipo.dto.ts +++ b/src/equipo/dto/create-equipo.dto.ts @@ -1 +1,3 @@ -export class CreateEquipoDto {} +export class CreateEquipoDto { + +} diff --git a/src/equipo/dto/update-equipo.dto.ts b/src/equipo/dto/update-equipo.dto.ts index c1cb200..8414965 100644 --- a/src/equipo/dto/update-equipo.dto.ts +++ b/src/equipo/dto/update-equipo.dto.ts @@ -1,4 +1,38 @@ import { PartialType } from '@nestjs/mapped-types'; import { CreateEquipoDto } from './create-equipo.dto'; +import { IsInt, IsOptional, IsString } from 'class-validator'; -export class UpdateEquipoDto extends PartialType(CreateEquipoDto) {} +export class UpdateEquipoDto extends PartialType(CreateEquipoDto) { + @IsInt() + @IsOptional() + id_estado?:number + + @IsInt() + @IsOptional() + id_adscripcion?: number; + + @IsString() + @IsOptional() + lugar?: string; + + @IsInt() + @IsOptional() + id_sistema_operativo?: number; + + @IsInt() + @IsOptional() + id_procesador?: number; + + @IsInt() + @IsOptional() + id_tipo_uso?: number; + + @IsString() + @IsOptional() + modelo?: string; + + @IsInt() + @IsOptional() + id_marca?: number; + +} diff --git a/src/equipo/entities/equipo.entity.ts b/src/equipo/entities/equipo.entity.ts index c42c859..919eb01 100644 --- a/src/equipo/entities/equipo.entity.ts +++ b/src/equipo/entities/equipo.entity.ts @@ -34,10 +34,7 @@ export class Equipo { @ManyToOne(() => TipoEquipo, (tipoEquipo) => tipoEquipo.equipo) tipoEquipo: TipoEquipo; - @ManyToOne( - () => SistemaOperativo, - (sistemaOperativo) => sistemaOperativo.equipo, - ) + @ManyToOne(() => SistemaOperativo,(sistemaOperativo) => sistemaOperativo.equipo) sistemaOperativo: SistemaOperativo; @ManyToOne(() => Procesador, (procesador) => procesador.equipo) @@ -66,4 +63,4 @@ export class Equipo { } -} + diff --git a/src/equipo/equipo.controller.ts b/src/equipo/equipo.controller.ts index 4f81371..bc50a98 100644 --- a/src/equipo/equipo.controller.ts +++ b/src/equipo/equipo.controller.ts @@ -1,34 +1,16 @@ -import { Controller, Get, Post, Body, Patch, Param, Delete } from '@nestjs/common'; +import { Controller, Body, Patch, Param, ParseIntPipe, UseGuards } from '@nestjs/common'; import { EquipoService } from './equipo.service'; -import { CreateEquipoDto } from './dto/create-equipo.dto'; import { UpdateEquipoDto } from './dto/update-equipo.dto'; +import { AuthGuard } from '@nestjs/passport'; @Controller('equipo') export class EquipoController { constructor(private readonly equipoService: EquipoService) {} - @Post() - create(@Body() createEquipoDto: CreateEquipoDto) { - return this.equipoService.create(createEquipoDto); + @UseGuards(AuthGuard("jwt")) + @Patch("update/:id") + update(@Param('id', ParseIntPipe) id:number, @Body() equipoNuevo: UpdateEquipoDto) { + return this.equipoService.updateEquipo( equipoNuevo,id); } - @Get() - findAll() { - return this.equipoService.findAll(); - } - - @Get(':id') - findOne(@Param('id') id: string) { - return this.equipoService.findOne(+id); - } - - @Patch(':id') - update(@Param('id') id: string, @Body() updateEquipoDto: UpdateEquipoDto) { - return this.equipoService.update(+id, updateEquipoDto); - } - - @Delete(':id') - remove(@Param('id') id: string) { - return this.equipoService.remove(+id); - } } diff --git a/src/equipo/equipo.service.ts b/src/equipo/equipo.service.ts index ce42f11..21b09a4 100644 --- a/src/equipo/equipo.service.ts +++ b/src/equipo/equipo.service.ts @@ -1,26 +1,38 @@ import { Injectable } from '@nestjs/common'; -import { CreateEquipoDto } from './dto/create-equipo.dto'; import { UpdateEquipoDto } from './dto/update-equipo.dto'; +import { InjectRepository } from '@nestjs/typeorm'; +import { Equipo } from './entities/equipo.entity'; +import { Repository } from 'typeorm'; @Injectable() export class EquipoService { - create(createEquipoDto: CreateEquipoDto) { - return 'This action adds a new equipo'; - } + constructor( + @InjectRepository(Equipo) + private readonly equipoRepository: Repository + ){} + async updateEquipo(equipoNuevo:UpdateEquipoDto,id_equipo:number){ + const updateData={ + lugar: equipoNuevo.lugar, + modelo: equipoNuevo.modelo, + estado: equipoNuevo.id_estado ? { id_estado: equipoNuevo.id_estado } : undefined, + adscripcion: equipoNuevo.id_adscripcion ? { id_adscripcion: equipoNuevo.id_adscripcion } : undefined, + sistemaOperativo: equipoNuevo.id_sistema_operativo ? { id_sistema_operativo: equipoNuevo.id_sistema_operativo } : undefined, + procesador: equipoNuevo.id_procesador ? { id_procesador: equipoNuevo.id_procesador } : undefined, + tipoUso: equipoNuevo.id_tipo_uso ? { id_tipo_uso: equipoNuevo.id_tipo_uso } : undefined, + marca: equipoNuevo.id_marca ? { id_marca: equipoNuevo.id_marca } : undefined, + }; - findAll() { - return `This action returns all equipo`; - } - findOne(id: number) { - return `This action returns a #${id} equipo`; - } - update(id: number, updateEquipoDto: UpdateEquipoDto) { - return `This action updates a #${id} equipo`; - } + const equipoUpdate=await this.equipoRepository.preload(updateData); + + if(!equipoUpdate){ + throw new Error(`No se encontrĂ³ el equipo con id ${id_equipo}`); - remove(id: number) { - return `This action removes a #${id} equipo`; } + return await this.equipoRepository.save(equipoUpdate); + + + } } +