diff --git a/mariadb/aria_log.00000001 b/mariadb/aria_log.00000001 index da3d6fa..5523641 100644 Binary files a/mariadb/aria_log.00000001 and b/mariadb/aria_log.00000001 differ diff --git a/mariadb/aria_log_control b/mariadb/aria_log_control index ef81c8b..4bcf9e6 100644 Binary files a/mariadb/aria_log_control and b/mariadb/aria_log_control differ diff --git a/src/equipo/equipo.controller.ts b/src/equipo/equipo.controller.ts index 49c2f53..7d8cbbd 100644 --- a/src/equipo/equipo.controller.ts +++ b/src/equipo/equipo.controller.ts @@ -7,6 +7,10 @@ import { UseGuards, Get, Query, + Delete, + HttpCode, + HttpStatus, + NotFoundException, Post, Res, Request, @@ -52,6 +56,16 @@ export class EquipoController { return this.equipoService.updateEquipo(equipoNuevo, id, req.user.id); } + @UseGuards(AuthGuard('jwt')) + @Delete(':id') + async deleteEquipo(@Param('id', ParseIntPipe) id_equipo: string) { + try { + return await this.equipoService.deleteEquipo(id_equipo); + } catch (error) { + throw new NotFoundException(error.message); + } + } + @UseGuards(AuthGuard('jwt')) @Get('usos') findUsos() { diff --git a/src/equipo/equipo.service.ts b/src/equipo/equipo.service.ts index fcb9409..4135728 100644 --- a/src/equipo/equipo.service.ts +++ b/src/equipo/equipo.service.ts @@ -57,6 +57,24 @@ export class EquipoService { private readonly perifericoRepo: Repository, ) {} + async deleteEquipo(inventario: string): Promise<{ message: string }> { + const equipo = await this.equipoRepository.findOne({ + where: { inventario }, + }); + + if (!equipo) { + throw new NotFoundException( + `No se encontrĂ³ el equipo con id ${inventario}`, + ); + } + + await this.equipoRepository.remove(equipo); + + return { + message: `Equipo con inv ${inventario} eliminado correctamente`, + }; + } + async buscarEquipos(filtros: any, page: number = 1, limit: number = 10) { const query = this.equipoRepository .createQueryBuilder('equipo') @@ -206,7 +224,9 @@ export class EquipoService { equipo.adscripcion.adscripcion, ); - return { ...equipo, ...responsable }; + const observaciones = await this.movimiento.buscar(equipo.id_equipo); + + return { ...equipo, ...responsable, observaciones }; } async searchResponsable(nombreAdscripcion: string) { diff --git a/src/movimiento/movimiento.service.ts b/src/movimiento/movimiento.service.ts index 706f522..31d871f 100644 --- a/src/movimiento/movimiento.service.ts +++ b/src/movimiento/movimiento.service.ts @@ -23,4 +23,20 @@ export class MovimientoService { return await this.movimientoRepo.save(movimiento); } + + async buscar(idEquipo: number): Promise { + const movimiento = await this.movimientoRepo.findOne({ + where: { equipo: { id_equipo: idEquipo } }, + order: { fechaMovimiento: 'DESC' }, + select: ['observaciones', 'fechaMovimiento'], + }); + + if (!movimiento) { + throw new NotFoundException( + `No se encontraron movimientos para el equipo con id ${idEquipo}`, + ); + } + + return movimiento.observaciones; + } }