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;
this.validarUsuarioService.validarAdmin(admin);
return this.institucionDiaService.findAllByIdInstitucion(
admin.institucion.id_institucion,
);
return this.institucionDiaService.findAllAdmin(admin);
}
@Serealize(InstitucionCarreaOutputDto)

View File

@ -20,26 +20,19 @@ export class InstitucionDiaService {
private institucionService: InstitucionService,
) {}
findAllByIdInstitucion(id_institucion: number) {
return this.institucionService
.findById(id_institucion)
.then((institucion) =>
this.repository.find({
where: { institucion },
findAllAdmin(admin: Operador): Promise<InstitucionDia[]> {
return this.repository.find({
where: { institucion: admin.institucion },
order: { id_institucion_dia: 'ASC' },
}),
);
});
}
findById(id_institucion_dia: number) {
findById(id_institucion_dia: number): Promise<InstitucionDia> {
return this.repository
.findOne({
join: {
alias: 'id',
innerJoinAndSelect: {
d: 'id.dia',
i: 'id.institucion',
},
innerJoinAndSelect: { d: 'id.dia', i: 'id.institucion' },
},
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 } } });
}
hoy(id_institucion: number) {
hoy(id_institucion: number): Promise<InstitucionDia> {
const ahora = moment();
// Validamos que no sea domingo
if (ahora.weekday() === 0)
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
.findById(id_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)
.then((institucionDia) => {
// Validamos que la institucionDia le pertenezca a la institución del
// operador que realiza esta acción
// Validamos que la institución día pertenezca a la institución del admin
if (
admin.institucion.id_institucion !=
institucionDia.institucion.id_institucion
)
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
if (