modulo motivo service final

This commit is contained in:
lemuel 2022-12-23 10:53:38 -06:00
parent eebcf0addb
commit 894851f16d
3 changed files with 52 additions and 33 deletions

View File

@ -39,29 +39,31 @@ export class ModuloMotivoController {
this.validarUsuarioService.validarAdmin(admin); this.validarUsuarioService.validarAdmin(admin);
return this.moduloMotivoService.findAllByIdModulo( return this.moduloMotivoService.findAllByIdModulo(
admin,
parseInt(query.id_modulo), parseInt(query.id_modulo),
parseInt(query.pagina), parseInt(query.pagina),
); );
} }
// @Serealize(ModuloMotivoOutputDto) @Serealize(ModuloMotivoOutputDto)
// @Get('reporte') @Get('reporte')
// @UseGuards(AuthGuard('jwt')) @UseGuards(AuthGuard('jwt'))
// @ApiOperation({ @ApiOperation({
// description: 'Reporte de todos los cambios de status de un módulo.', description: 'Reporte de todos los cambios de status de un módulo.',
// }) })
// @ApiBearerAuth('jwt') @ApiBearerAuth('jwt')
// @ApiQuery({ @ApiQuery({
// description: 'Id del módulo.', description: 'Id del módulo.',
// name: 'id_modulo', name: 'id_modulo',
// type: 'string', type: 'string',
// }) })
// reporte(@Request() req, @Query() query: ModuloOutputDto) { reporte(@Request() req, @Query() query: ModuloOutputDto) {
// const admin: Operador = req.user.operador; const admin: Operador = req.user.operador;
// this.validarUsuarioService.validarAdmin(admin); this.validarUsuarioService.validarAdmin(admin);
// return this.moduloMotivoService.findAllByIdModulo( return this.moduloMotivoService.findAllByIdModulo(
// parseInt(query.id_modulo), admin,
// ); parseInt(query.id_modulo),
// } );
}
} }

View File

@ -1,7 +1,12 @@
import * as moment from 'moment'; import * as moment from 'moment';
import { forwardRef, Inject, Injectable } from '@nestjs/common'; import {
ForbiddenException,
forwardRef,
Inject,
Injectable,
} from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm'; import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm'; import { FindManyOptions, Repository } from 'typeorm';
import { Modulo } from '../modulo/entity/modulo.entity'; import { Modulo } from '../modulo/entity/modulo.entity';
import { ModuloMotivo } from './entity/modulo-motivo.entity'; import { ModuloMotivo } from './entity/modulo-motivo.entity';
import { Operador } from '../operador/entity/operador.entity'; import { Operador } from '../operador/entity/operador.entity';
@ -17,30 +22,42 @@ export class ModuloMotivoService {
) {} ) {}
create( create(
operador: Operador,
modulo: Modulo, modulo: Modulo,
operador: Operador,
motivo: string, motivo: string,
numero_alumnos: number, numero_alumnos: number,
fecha_creacion: string, fecha_creacion: string,
) { ) {
// Cramos y guardamos registro
return this.repository.save( return this.repository.save(
this.repository.create({ this.repository.create({
fecha_creacion: moment(fecha_creacion).toDate(),
motivo, motivo,
numero_alumnos, numero_alumnos,
operador,
modulo, modulo,
fecha_creacion: moment(fecha_creacion).toDate(), operador,
}), }),
); );
} }
findAllByIdModulo(id_modulo: number, pagina: number) { async findAllByIdModulo(
return this.moduloService.findById(id_modulo).then((modulo) => admin: Operador,
this.repository.findAndCount({ id_modulo: number,
where: { modulo }, pagina?: number,
skip: (pagina - 1) * 25, ): Promise<ModuloMotivo[] | [ModuloMotivo[], number]> {
take: 25, const modulo = await this.moduloService.findById(id_modulo);
}), const options: FindManyOptions<ModuloMotivo> = { where: { modulo } };
);
// Validamos que el módulo pertenezca a la institución del admin
if (modulo.institucion.id_institucion != admin.institucion.id_institucion)
throw new ForbiddenException(
'No puedes acceder a esta información porque no le pertenece a tu institución.',
);
// Si se mandó página significa que requiere paginación
if (pagina) {
options.skip = (pagina - 1) * 25;
options.take = 25;
return this.repository.findAndCount(options);
} else return this.repository.find(options);
} }
} }

View File

@ -166,8 +166,8 @@ export class ModuloService {
// Se crea un registro del cambio de status de este módulo // Se crea un registro del cambio de status de este módulo
if (motivo) if (motivo)
await this.moduloMotivoService.create( await this.moduloMotivoService.create(
admin,
modulo, modulo,
admin,
motivo, motivo,
numero_alumnos, numero_alumnos,
fecha_creacion, fecha_creacion,