This commit is contained in:
2025-10-24 13:43:00 -06:00
parent a2be3ee273
commit 0cdd4e178f
11 changed files with 223 additions and 63 deletions
+38 -1
View File
@@ -7,7 +7,7 @@ import { AuthGuard } from '@nestjs/passport';
@Controller('equipos')
export class EquipoController {
constructor(private readonly equipoService: EquipoService) {}
@UseGuards(AuthGuard("jwt"))
@Get('buscar')
async buscarEquipos(
@Query() filtros: any,
@@ -16,10 +16,47 @@ export class EquipoController {
) {
return this.equipoService.buscarEquipos(filtros, +page, +limit);
}
@UseGuards(AuthGuard("jwt"))
@Patch("update/:id")
update(@Param('id', ParseIntPipe) id:number, @Body() equipoNuevo: UpdateEquipoDto) {
return this.equipoService.updateEquipo( equipoNuevo,id);
}
@UseGuards(AuthGuard("jwt"))
@Get('usos')
findUsos() {
return this.equipoService.findAllUsos();
}
@UseGuards(AuthGuard("jwt"))
@Get('marcas')
findMarcas() {
return this.equipoService.findAllMarcas();
}
@UseGuards(AuthGuard("jwt"))
@Get('estados')
findEstados() {
return this.equipoService.findAllEstados();
}
@UseGuards(AuthGuard("jwt"))
@Get('adscripciones')
findAdscripciones() {
return this.equipoService.findAllAdscripciones();
}
@UseGuards(AuthGuard("jwt"))
@Get('tipos-equipo')
findTiposEquipo() {
return this.equipoService.findAllTiposEquipo();
}
@UseGuards(AuthGuard("jwt"))
@Get('sistemas-operativos')
findSistemasOperativos() {
return this.equipoService.findAllSistemasOperativos();
}
@UseGuards(AuthGuard("jwt"))
@Get('procesadores')
findProcesadores() {
return this.equipoService.findAllProcesadores();
}
}
+85 -20
View File
@@ -2,13 +2,42 @@ import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { Equipo } from './entities/equipo.entity';
import { UpdateEquipoDto } from './dto/update-equipo.dto'
import { UpdateEquipoDto } from './dto/update-equipo.dto';
import {
Adscripcion,
Estado,
Marca,
Procesador,
SistemaOperativo,
TipoEquipo,
Uso,
} from './entities/catalogo.entities';
@Injectable()
export class EquipoService {
constructor(
@InjectRepository(Equipo)
private readonly equipoRepository: Repository<Equipo>,
@InjectRepository(Uso)
private readonly usoRepo: Repository<Uso>,
@InjectRepository(Marca)
private readonly marcaRepo: Repository<Marca>,
@InjectRepository(Estado)
private readonly estadoRepo: Repository<Estado>,
@InjectRepository(Adscripcion)
private readonly adscripcionRepo: Repository<Adscripcion>,
@InjectRepository(TipoEquipo)
private readonly tipoEquipoRepo: Repository<TipoEquipo>,
@InjectRepository(SistemaOperativo)
private readonly sistemaOperativoRepo: Repository<SistemaOperativo>,
@InjectRepository(Procesador)
private readonly procesadorRepo: Repository<Procesador>,
) {}
async buscarEquipos(filtros: any, page: number = 1, limit: number = 10) {
@@ -84,27 +113,63 @@ export class EquipoService {
data,
};
}
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,
};
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,
};
const equipoUpdate=await this.equipoRepository.preload(updateData);
if(!equipoUpdate){
throw new Error(`No se encontró el equipo con id ${id_equipo}`);
const equipoUpdate = await this.equipoRepository.preload(updateData);
if (!equipoUpdate) {
throw new Error(`No se encontró el equipo con id ${id_equipo}`);
}
return await this.equipoRepository.save(equipoUpdate);
}
return await this.equipoRepository.save(equipoUpdate);
}
findAllUsos() {
return this.usoRepo.find();
}
findAllMarcas() {
return this.marcaRepo.find();
}
findAllEstados() {
return this.estadoRepo.find();
}
findAllAdscripciones() {
return this.adscripcionRepo.find();
}
findAllTiposEquipo() {
return this.tipoEquipoRepo.find();
}
findAllSistemasOperativos() {
return this.sistemaOperativoRepo.find();
}
findAllProcesadores() {
return this.procesadorRepo.find();
}
}