equipo tipo entrada a espera de pruebas
This commit is contained in:
parent
f5846e63b6
commit
35d214f5df
@ -1,8 +1,8 @@
|
||||
import { Body, Controller, Delete, Post } from '@nestjs/common';
|
||||
import { ApiBody, ApiOperation } from '@nestjs/swagger';
|
||||
import { EquipoProgramaService } from './equipo-programa.service';
|
||||
import { EquipoProgramaCreateDto } from './dto/equipo-programa-create.dto';
|
||||
import { EquipoProgramaDeleteDto } from './dto/equipo-programa-delete.dto';
|
||||
import { ApiBody, ApiOperation } from '@nestjs/swagger';
|
||||
@Controller('equipo-programa')
|
||||
export class EquipoProgramaController {
|
||||
constructor(private equipoProgramaService: EquipoProgramaService) {}
|
||||
|
@ -0,0 +1,9 @@
|
||||
import { IsInt } from 'class-validator';
|
||||
|
||||
export class EquipoTipoEntradaCreateDto {
|
||||
@IsInt()
|
||||
id_equipo: number;
|
||||
|
||||
@IsInt()
|
||||
id_tipo_entrada: number;
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
import { IsInt } from 'class-validator';
|
||||
|
||||
export class EquipoTipoEntradaDeleteDto {
|
||||
@IsInt()
|
||||
id_equipo_tipo_entrada: number;
|
||||
}
|
@ -5,7 +5,7 @@ import { TipoEntrada } from '../../institucion-tipo-entrada/entity/tipo-entrada.
|
||||
@Entity()
|
||||
export class EquipoTipoEntrada {
|
||||
@PrimaryGeneratedColumn()
|
||||
id_equipo_entrada: number;
|
||||
id_equipo_tipo_entrada: number;
|
||||
|
||||
@ManyToOne(() => Equipo, (equipo) => equipo.tiposEntradas)
|
||||
@JoinColumn({ name: 'id_equipo' })
|
||||
|
@ -1,7 +1,39 @@
|
||||
import { Controller } from '@nestjs/common';
|
||||
import { Body, Controller, Delete, Post } from '@nestjs/common';
|
||||
import { ApiBody, ApiOperation } from '@nestjs/swagger';
|
||||
import { EquipoTipoEntradaService } from './equipo-tipo-entrada.service';
|
||||
import { EquipoTipoEntradaCreateDto } from './dto/equipo-tipo-entrada-create.dto';
|
||||
import { EquipoTipoEntradaDeleteDto } from './dto/equipo-tipo-entrada-delete.dto';
|
||||
|
||||
@Controller('equipo-tipo-entrada')
|
||||
export class EquipoTipoEntradaController {
|
||||
constructor(private equipoTipoEntradaService: EquipoTipoEntradaService) {}
|
||||
|
||||
@Post()
|
||||
@ApiOperation({
|
||||
description:
|
||||
'Endpoint que crea una relación entre un equipo y un tipo de entrada.',
|
||||
})
|
||||
@ApiBody({
|
||||
description: 'Ambas variables son obligatorios.',
|
||||
examples: { ejemplo: { value: { id_equipo: 1, id_tipo_entrada: 1 } } },
|
||||
})
|
||||
create(@Body() body: EquipoTipoEntradaCreateDto) {
|
||||
return this.equipoTipoEntradaService.create(
|
||||
body.id_equipo,
|
||||
body.id_tipo_entrada,
|
||||
);
|
||||
}
|
||||
|
||||
@Delete()
|
||||
@ApiOperation({
|
||||
description:
|
||||
'Endpoint que elimina una relación entre un equipo y un tipo de entrada.',
|
||||
})
|
||||
@ApiBody({
|
||||
description: 'La variable id_equipo_tipo_entrada es obligatoria.',
|
||||
examples: { ejemplo: { value: { id_equipo_tipo_entrada: 1 } } },
|
||||
})
|
||||
delete(@Body() body: EquipoTipoEntradaDeleteDto) {
|
||||
return this.equipoTipoEntradaService.delete(body.id_equipo_tipo_entrada);
|
||||
}
|
||||
}
|
||||
|
@ -1,12 +1,58 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { ConflictException, Injectable } from '@nestjs/common';
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { Repository } from 'typeorm';
|
||||
import { EquipoTipoEntrada } from '../equipo-tipo-entrada/entity/equipo-tipo-entrada.entity';
|
||||
import { Equipo } from 'src/equipo/entity/equipo.entity';
|
||||
import { EquipoTipoEntrada } from './entity/equipo-tipo-entrada.entity';
|
||||
import { Programa } from '../institucion-programa/entity/programa.entity';
|
||||
import { EquipoService } from '../equipo/equipo.service';
|
||||
import { InstitucionTipoEntradaService } from '../institucion-tipo-entrada/institucion-tipo-entrada.service';
|
||||
import { TipoEntrada } from 'src/institucion-tipo-entrada/entity/tipo-entrada.entity';
|
||||
|
||||
@Injectable()
|
||||
export class EquipoTipoEntradaService {
|
||||
constructor(
|
||||
@InjectRepository(EquipoTipoEntrada)
|
||||
private equipoTipoEntradaRepository: Repository<EquipoTipoEntrada>,
|
||||
private repository: Repository<EquipoTipoEntrada>,
|
||||
private equipoService: EquipoService,
|
||||
private institucionTipoEntradaService: InstitucionTipoEntradaService,
|
||||
) {}
|
||||
|
||||
async create(id_equipo: number, id_tipo_entrada: number) {
|
||||
const equipo = await this.equipoService.findById(id_equipo);
|
||||
const tipoEntrada =
|
||||
await this.institucionTipoEntradaService.findTipoEntradaById(
|
||||
id_tipo_entrada,
|
||||
);
|
||||
|
||||
return this.existeEquipoTipoEntrada(equipo, tipoEntrada).then(() =>
|
||||
this.repository.save(this.repository.create({ equipo, tipoEntrada })),
|
||||
);
|
||||
}
|
||||
|
||||
delete(id_equipo_tipo_entrada: number) {
|
||||
return this.findById(id_equipo_tipo_entrada).then((equipoTipoEntrada) =>
|
||||
this.repository.remove(equipoTipoEntrada),
|
||||
);
|
||||
}
|
||||
|
||||
existeEquipoTipoEntrada(equipo: Equipo, tipoEntrada: TipoEntrada) {
|
||||
return this.repository
|
||||
.findOne({ equipo, tipoEntrada })
|
||||
.then((equipoTipoEntrada) => {
|
||||
if (equipoTipoEntrada)
|
||||
throw new ConflictException(
|
||||
'Ya existe un equipo programa con este equipo y este tipo entrada.',
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
findById(id_equipo_tipo_entrada: number) {
|
||||
return this.repository
|
||||
.findOne({ id_equipo_tipo_entrada })
|
||||
.then((equipoTipoEntrada) => {
|
||||
if (!equipoTipoEntrada)
|
||||
throw new ConflictException('No existe este equipo tipo entrada.');
|
||||
return equipoTipoEntrada;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user