From 33a95690e8cbdba240cbcd769ee132513ab9ddbc Mon Sep 17 00:00:00 2001 From: xXpuma99Xx <51341582+xXpuma99Xx@users.noreply.github.com> Date: Fri, 22 Apr 2022 22:25:54 -0500 Subject: [PATCH] motivo listo --- src/motivo/dto/motivo.dto.ts | 6 ++++++ src/motivo/motivo.controller.ts | 8 +++++--- src/motivo/motivo.module.ts | 10 +++++++++- src/motivo/motivo.service.ts | 33 +++++++++++++++++++++++++++++++++ src/status/status.service.ts | 11 +++++++++-- 5 files changed, 62 insertions(+), 6 deletions(-) create mode 100644 src/motivo/dto/motivo.dto.ts diff --git a/src/motivo/dto/motivo.dto.ts b/src/motivo/dto/motivo.dto.ts new file mode 100644 index 0000000..5be8fd6 --- /dev/null +++ b/src/motivo/dto/motivo.dto.ts @@ -0,0 +1,6 @@ +import { IsNumberString } from 'class-validator'; + +export class MotivoDto { + @IsNumberString() + id_equipo: string; +} diff --git a/src/motivo/motivo.controller.ts b/src/motivo/motivo.controller.ts index 47b7da7..ddcc168 100644 --- a/src/motivo/motivo.controller.ts +++ b/src/motivo/motivo.controller.ts @@ -1,12 +1,14 @@ -import { Controller, Get } from '@nestjs/common'; +import { Controller, Get, Query } from '@nestjs/common'; import { MotivoService } from './motivo.service'; - +import { MotivoDto } from './dto/motivo.dto'; @Controller('motivo') export class MotivoController { constructor(private motivoService: MotivoService) {} @Get() - get() {} + get(@Query() query: MotivoDto) { + return this.motivoService.findAllIdEquipo(Number(query.id_equipo)); + } @Get('reporte') reporte() {} diff --git a/src/motivo/motivo.module.ts b/src/motivo/motivo.module.ts index 534dceb..42a24d7 100644 --- a/src/motivo/motivo.module.ts +++ b/src/motivo/motivo.module.ts @@ -3,9 +3,17 @@ import { TypeOrmModule } from '@nestjs/typeorm'; import { MotivoController } from './motivo.controller'; import { MotivoService } from './motivo.service'; import { Motivo } from './entity/motivo.entity'; +import { EquipoModule } from 'src/equipo/equipo.module'; +import { OperadorModule } from 'src/operador/operador.module'; +import { StatusModule } from 'src/status/status.module'; @Module({ - imports: [TypeOrmModule.forFeature([Motivo])], + imports: [ + TypeOrmModule.forFeature([Motivo]), + EquipoModule, + OperadorModule, + StatusModule, + ], controllers: [MotivoController], providers: [MotivoService], }) diff --git a/src/motivo/motivo.service.ts b/src/motivo/motivo.service.ts index 818e7f1..26849e5 100644 --- a/src/motivo/motivo.service.ts +++ b/src/motivo/motivo.service.ts @@ -2,10 +2,43 @@ import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { Repository } from 'typeorm'; import { Motivo } from './entity/motivo.entity'; +import { EquipoService } from 'src/equipo/equipo.service'; +import { OperadorService } from 'src/operador/operador.service'; +import { StatusService } from 'src/status/status.service'; @Injectable() export class MotivoService { constructor( @InjectRepository(Motivo) private repository: Repository, + private equipoService: EquipoService, + private operadorService: OperadorService, + private statusService: StatusService, ) {} + + async create( + id_equipo: number, + id_operador: number, + id_status: number, + motivo: string, + ) { + const equipo = await this.equipoService.findById(id_equipo); + const operador = await this.operadorService.findById(id_operador); + const status = await this.statusService.findById(id_status); + + return this.repository.save( + this.repository.create({ + equipo, + fecha_creacion: new Date(), + motivo, + operador, + status, + }), + ); + } + + findAllIdEquipo(id_equipo: number) { + return this.equipoService + .findById(id_equipo) + .then((equipo) => this.repository.find({ equipo })); + } } diff --git a/src/status/status.service.ts b/src/status/status.service.ts index 240f536..c094a1f 100644 --- a/src/status/status.service.ts +++ b/src/status/status.service.ts @@ -1,4 +1,4 @@ -import { ConflictException, Injectable } from '@nestjs/common'; +import { Injectable, NotFoundException } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { Repository } from 'typeorm'; import { Status } from './entity/status.entity'; @@ -10,6 +10,13 @@ export class StatusService { ) {} findAll() { - return this.repository.find() + return this.repository.find(); + } + + findById(id_status: number) { + return this.repository.findOne({ id_status }).then((status) => { + if (!status) throw new NotFoundException('No existe este status.'); + return status; + }); } }