controlador para mostrar cupo en eventos #2
@@ -12,5 +12,5 @@ export class TipoMiembro {
|
||||
@OneToMany(
|
||||
() => Miembro, (miembro) => miembro.tipoMiembro
|
||||
)
|
||||
miembro: Miembro
|
||||
miembro: Miembro[]
|
||||
}
|
||||
@@ -1,4 +1,7 @@
|
||||
import { Body, Controller, Delete, Get, Param, ParseIntPipe, Patch, Post } from '@nestjs/common';
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { EventoParticipante } from 'src/evento-participante/evento-participante/eventoParticipante.entity';
|
||||
import { Repository } from 'typeorm';
|
||||
import { actualizarEventoDto } from './dto/actualizarEvento.dto';
|
||||
import { crearEventoDto } from './dto/crearEvento.dto';
|
||||
import { Evento } from './evento.entity';
|
||||
@@ -33,4 +36,9 @@ export class EventosController {
|
||||
deleteEvento(@Param('id', ParseIntPipe)id: number){
|
||||
return this.eventoService.deleteEventoParticipante(id)
|
||||
}
|
||||
|
||||
@Get(':id/participantes')
|
||||
async getCupos(@Param('id', ParseIntPipe)id: number){
|
||||
return this.eventoService.getCupos(id)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,4 +60,17 @@ export class EventosService {
|
||||
await queryRunner.release();
|
||||
}
|
||||
}
|
||||
|
||||
async getCupos(id: number){
|
||||
const evento = this.getEventosPorId(id)
|
||||
if(!evento) throw new Error(`El evento con id:${id} no existe`)
|
||||
const registrados = await this.eventoParticipanteRepository
|
||||
.createQueryBuilder('ep')
|
||||
.select('COUNT(ep.id_evento)', 'count')
|
||||
.where('ep.id_evento = :eventoId', { eventoId: (await evento).id_evento })
|
||||
.getRawOne();
|
||||
const cupoOriginal = (await evento).cupo;
|
||||
const cupoDisponible = cupoOriginal - registrados.count;
|
||||
return { registrados: registrados.count, cupoDisponible, cupoOriginal};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user