institucion día service final

This commit is contained in:
lemuel 2022-12-20 19:12:59 -06:00
parent 825e235631
commit 528297ca48
2 changed files with 19 additions and 24 deletions

View File

@ -44,9 +44,7 @@ export class InstitucionDiaController {
const admin: Operador = req.user.operador; const admin: Operador = req.user.operador;
this.validarUsuarioService.validarAdmin(admin); this.validarUsuarioService.validarAdmin(admin);
return this.institucionDiaService.findAllByIdInstitucion( return this.institucionDiaService.findAllAdmin(admin);
admin.institucion.id_institucion,
);
} }
@Serealize(InstitucionCarreaOutputDto) @Serealize(InstitucionCarreaOutputDto)

View File

@ -20,26 +20,19 @@ export class InstitucionDiaService {
private institucionService: InstitucionService, private institucionService: InstitucionService,
) {} ) {}
findAllByIdInstitucion(id_institucion: number) { findAllAdmin(admin: Operador): Promise<InstitucionDia[]> {
return this.institucionService return this.repository.find({
.findById(id_institucion) where: { institucion: admin.institucion },
.then((institucion) => order: { id_institucion_dia: 'ASC' },
this.repository.find({ });
where: { institucion },
order: { id_institucion_dia: 'ASC' },
}),
);
} }
findById(id_institucion_dia: number) { findById(id_institucion_dia: number): Promise<InstitucionDia> {
return this.repository return this.repository
.findOne({ .findOne({
join: { join: {
alias: 'id', alias: 'id',
innerJoinAndSelect: { innerJoinAndSelect: { d: 'id.dia', i: 'id.institucion' },
d: 'id.dia',
i: 'id.institucion',
},
}, },
where: { id_institucion_dia }, where: { id_institucion_dia },
}) })
@ -50,17 +43,19 @@ export class InstitucionDiaService {
}); });
} }
findByInstitucionDia(institucion: Institucion, id_dia: number) { findByInstitucionDia(
institucion: Institucion,
id_dia: number,
): Promise<InstitucionDia> {
return this.repository.findOne({ where: { institucion, dia: { id_dia } } }); return this.repository.findOne({ where: { institucion, dia: { id_dia } } });
} }
hoy(id_institucion: number) { hoy(id_institucion: number): Promise<InstitucionDia> {
const ahora = moment(); const ahora = moment();
// Validamos que no sea domingo // Validamos que no sea domingo
if (ahora.weekday() === 0) if (ahora.weekday() === 0)
throw new ConflictException('No hay servicio los días domingo.'); throw new ConflictException('No hay servicio los días domingo.');
// Buscamos un institucionDia apartir de la institución enviada y del día de hoy
return this.institucionService return this.institucionService
.findById(id_institucion) .findById(id_institucion)
.then((institucion) => .then((institucion) =>
@ -68,17 +63,19 @@ export class InstitucionDiaService {
); );
} }
update(admin: Operador, attrs: Partial<InstitucionDia>) { update(
admin: Operador,
attrs: Partial<InstitucionDia>,
): Promise<{ message: string }> {
return this.findById(attrs.id_institucion_dia) return this.findById(attrs.id_institucion_dia)
.then((institucionDia) => { .then((institucionDia) => {
// Validamos que la institucionDia le pertenezca a la institución del // Validamos que la institución día pertenezca a la institución del admin
// operador que realiza esta acción
if ( if (
admin.institucion.id_institucion != admin.institucion.id_institucion !=
institucionDia.institucion.id_institucion institucionDia.institucion.id_institucion
) )
throw new ConflictException( throw new ConflictException(
'No puedes actualizar la información de este día porque no le pertenece a tu institución.', 'No puedes acceder a esta información porque no le pertenece a tu institución.',
); );
// Validamos que hora_inicio no sea mayor a hora_fin // Validamos que hora_inicio no sea mayor a hora_fin
if ( if (