modulo motivo service final
This commit is contained in:
parent
eebcf0addb
commit
894851f16d
@ -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),
|
||||||
// }
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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,
|
||||||
|
Loading…
Reference in New Issue
Block a user