hora excepcion service final

This commit is contained in:
lemuel 2022-12-20 17:46:03 -06:00
parent f6d51a6eab
commit 192ee92a02
16 changed files with 47 additions and 36 deletions

View File

@ -114,7 +114,7 @@ export class CarreraProgramaService {
// Validamos que el usuario pertenezca a la institución de la información que solicita // Validamos que el usuario pertenezca a la institución de la información que solicita
if (!institucionUsuario) if (!institucionUsuario)
throw new ForbiddenException( throw new ForbiddenException(
'No puedes acceder a esta información porque no perteneces a esta institución.', 'No puedes acceder a esta información porque no le pertenece a tu institución.',
); );
return this.findAllByInstitucion(institucion); return this.findAllByInstitucion(institucion);
}); });

View File

@ -56,7 +56,7 @@ export class CarritoService {
throw new ForbiddenException( throw new ForbiddenException(
'No puedes crear carritos para este módulo porque no pertenece a tu institución.', 'No puedes crear carritos para este módulo porque no pertenece a tu institución.',
); );
// Creamos y guardamos el registro // Creamos y guardamos un registro
return this.repository return this.repository
.save( .save(
this.repository.create({ carrito, marca, modelo, modulo, tipoCarrito }), this.repository.create({ carrito, marca, modelo, modulo, tipoCarrito }),

View File

@ -75,7 +75,7 @@ export class EquipoProgramaService {
// Si lo tiene lo eliminamos // Si lo tiene lo eliminamos
if (existeEquipoSinPrograma) if (existeEquipoSinPrograma)
await this.repository.remove(existeEquipoSinPrograma); await this.repository.remove(existeEquipoSinPrograma);
// Creamos y guardamos el registro // Creamos y guardamos un registro
return this.repository.save( return this.repository.save(
this.repository.create({ equipo, programa }), this.repository.create({ equipo, programa }),
); );
@ -112,7 +112,7 @@ export class EquipoProgramaService {
.then(async (n) => { .then(async (n) => {
// Asignar "Sin software" si es que solo tiene 1, el que se va a eliminar // Asignar "Sin software" si es que solo tiene 1, el que se va a eliminar
if (n === 1) await this.createSinPrograma(equipoPrograma.equipo); if (n === 1) await this.createSinPrograma(equipoPrograma.equipo);
// Eliminamos registro // Eliminamos el registro
return this.repository.remove(equipoPrograma); return this.repository.remove(equipoPrograma);
}) })
.then((_) => ({ .then((_) => ({

View File

@ -84,7 +84,7 @@ export class EquipoTipoEntradaService {
throw new ForbiddenException( throw new ForbiddenException(
'No puedes modificar la información este equipo porque no pertenece a tu institución.', 'No puedes modificar la información este equipo porque no pertenece a tu institución.',
); );
// Eliminamos registro // Eliminamos el registro
return this.repository.remove(equipoTipoEntrada); return this.repository.remove(equipoTipoEntrada);
}) })
.then((_) => ({ .then((_) => ({

View File

@ -70,7 +70,7 @@ export class EquipoService {
marca: Marca, marca: Marca,
modelo: Modelo, modelo: Modelo,
): Promise<Equipo> { ): Promise<Equipo> {
// Creamos y guradamos registro // Creamos y guardamos un registro
return this.repository return this.repository
.save( .save(
this.repository.create({ this.repository.create({

View File

@ -91,6 +91,7 @@ export class HoraExcepcionController {
this.validarUsuarioService.validarAdmin(admin); this.validarUsuarioService.validarAdmin(admin);
return this.horaExcepcionService.findAllByIdInstitucionDia( return this.horaExcepcionService.findAllByIdInstitucionDia(
admin,
parseInt(query.id_institucion_dia), parseInt(query.id_institucion_dia),
); );
} }

View File

@ -1,9 +1,9 @@
import { import {
ConflictException,
NotFoundException,
Injectable,
BadRequestException, BadRequestException,
ConflictException,
ForbiddenException, ForbiddenException,
Injectable,
NotFoundException,
} from '@nestjs/common'; } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm'; import { InjectRepository } from '@nestjs/typeorm';
import { LessThanOrEqual, MoreThanOrEqual, Repository } from 'typeorm'; import { LessThanOrEqual, MoreThanOrEqual, Repository } from 'typeorm';
@ -24,27 +24,25 @@ export class HoraExcepcionService {
id_institucion_dia: number, id_institucion_dia: number,
hora_inicio: string, hora_inicio: string,
hora_fin: string, hora_fin: string,
) { ): Promise<{ message: string }> {
const institucionDia = await this.institucionDiaService.findById( const institucionDia = await this.institucionDiaService.findById(
id_institucion_dia, id_institucion_dia,
); );
// Validamos que el id institución día mandado sea de la institución a la que // Validamos que el día pertenezca a la institución del admin
// pertenece el 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 ForbiddenException( throw new ForbiddenException(
'No puedes crear una horario sin servicio en este día porque no le pertenece a tu institución.', 'No puedes crear una hora excepeción en este día porque no pertenece a tu institución.',
); );
// hora_inicio no puede ser mayor a hora fin // hora_inicio no puede ser mayor a hora fin
if (hora_inicio > hora_fin) if (hora_inicio > hora_fin)
throw new BadRequestException( throw new BadRequestException(
'La hora inicio no puede ser mayor que la hora fin.', 'La hora inicio no puede ser mayor que la hora fin.',
); );
// Buscamos un horario servicio que pertenezca al mismo día y que sus horas inicio // Buscamos una hora excepción que encierre las horas enviadas
// y fin encierren, en tiempo, a alguna de las horas mandadas del front
return this.repository return this.repository
.findOne({ .findOne({
where: [ where: [
@ -61,9 +59,8 @@ export class HoraExcepcionService {
], ],
}) })
.then((existeHoraExcepcion) => { .then((existeHoraExcepcion) => {
// Saca error si encuentra uno // Si encontramos uno sacamos error
if (existeHoraExcepcion) { if (existeHoraExcepcion) {
// Si las horas enviadas son las mismas que las del registro saca error
if ( if (
existeHoraExcepcion.hora_fin === hora_fin && existeHoraExcepcion.hora_fin === hora_fin &&
existeHoraExcepcion.hora_inicio === hora_inicio existeHoraExcepcion.hora_inicio === hora_inicio
@ -75,7 +72,7 @@ export class HoraExcepcionService {
'Las horas escogídas se sobrelapan con otro horario sin servicio del mismo día.', 'Las horas escogídas se sobrelapan con otro horario sin servicio del mismo día.',
); );
} }
// Crea y guarda el registro // Creamos y guardamos un registro
return this.repository.save( return this.repository.save(
this.repository.create({ institucionDia, hora_inicio, hora_fin }), this.repository.create({ institucionDia, hora_inicio, hora_fin }),
); );
@ -85,11 +82,13 @@ export class HoraExcepcionService {
})); }));
} }
delete(admin: Operador, id_hora_excepcion: number) { delete(
admin: Operador,
id_hora_excepcion: number,
): Promise<{ message: string }> {
return this.findById(id_hora_excepcion) return this.findById(id_hora_excepcion)
.then((horaExcepcion) => { .then((horaExcepcion) => {
// Validamos que el id hora excepción pertenezca a la institución del operador // Validamos que la hora excepción pertenezca a la institución del admin
// que realiza esta acción
if ( if (
admin.institucion.id_institucion != admin.institucion.id_institucion !=
horaExcepcion.institucionDia.institucion.id_institucion horaExcepcion.institucionDia.institucion.id_institucion
@ -97,7 +96,7 @@ export class HoraExcepcionService {
throw new ConflictException( throw new ConflictException(
'No puedes eliminar esta horario sin servicio porque no pertenece a tu institución.', 'No puedes eliminar esta horario sin servicio porque no pertenece a tu institución.',
); );
// Eliminamos registro // Eliminamos el registro
return this.repository.remove(horaExcepcion); return this.repository.remove(horaExcepcion);
}) })
.then((_) => ({ .then((_) => ({
@ -105,15 +104,26 @@ export class HoraExcepcionService {
})); }));
} }
findAllByIdInstitucionDia(id_institucion_dia: number) { findAllByIdInstitucionDia(
admin: Operador,
id_institucion_dia: number,
): Promise<HoraExcepcion[]> {
return this.institucionDiaService return this.institucionDiaService
.findById(id_institucion_dia) .findById(id_institucion_dia)
.then((institucionDia) => .then((institucionDia) => {
this.repository.find({ where: { institucionDia } }), // Validamos que el día pertenezca a la institución del admin
); if (
admin.institucion.id_institucion !=
institucionDia.institucion.id_institucion
)
throw new ForbiddenException(
'No puedes acceder a esta información porque no le pertenece a tu institución.',
);
return this.repository.find({ where: { institucionDia } });
});
} }
findById(id_hora_excepcion: number) { findById(id_hora_excepcion: number): Promise<HoraExcepcion> {
return this.repository return this.repository
.findOne({ .findOne({
join: { join: {

View File

@ -29,7 +29,7 @@ export class InstitucionInfraccionService {
// Saco error si existe // Saco error si existe
if (existeInfraccion) if (existeInfraccion)
throw new ConflictException('Ya existe esta infracción.'); throw new ConflictException('Ya existe esta infracción.');
// Creamos y guardamos el registro // Creamos y guardamos un registro
return this.infraccionRepository.save( return this.infraccionRepository.save(
this.infraccionRepository.create({ infraccion }), this.infraccionRepository.create({ infraccion }),
); );

View File

@ -28,7 +28,7 @@ export class InstitucionProgramaService {
// Saco error si existe // Saco error si existe
if (existePrograma) if (existePrograma)
throw new ConflictException('Ya existe este programa.'); throw new ConflictException('Ya existe este programa.');
// Creamos y guardamos el registro // Creamos y guardamos un registro
return this.programaRepository.save( return this.programaRepository.save(
this.programaRepository.create({ programa }), this.programaRepository.create({ programa }),
); );

View File

@ -28,7 +28,7 @@ export class InstitucionTipoEntradaService {
// Saco error si existe // Saco error si existe
if (existeTipoEntrada) if (existeTipoEntrada)
throw new ConflictException('Ya existe este tipo de entrada.'); throw new ConflictException('Ya existe este tipo de entrada.');
// Creamos y guardamos el registro // Creamos y guardamos un registro
return this.tipoEntradaRepository.save( return this.tipoEntradaRepository.save(
this.tipoEntradaRepository.create({ tipo_entrada }), this.tipoEntradaRepository.create({ tipo_entrada }),
); );

View File

@ -21,7 +21,7 @@ export class InstitucionUsuarioService {
) {} ) {}
create(institucionCarrera: InstitucionCarrera, usuario: Usuario) { create(institucionCarrera: InstitucionCarrera, usuario: Usuario) {
// Creamos y guardamos el registro // Creamos y guardamos un registro
return this.repository return this.repository
.save(this.repository.create({ institucionCarrera, usuario })) .save(this.repository.create({ institucionCarrera, usuario }))
.then((institucionUsuario) => ({ .then((institucionUsuario) => ({

View File

@ -83,7 +83,7 @@ export class InstitucionController {
admin.institucion.id_institucion != institucion.id_institucion admin.institucion.id_institucion != institucion.id_institucion
) )
throw new ForbiddenException( throw new ForbiddenException(
'No puedes acceder a esta información porque no perteneces a esta institución.', 'No puedes acceder a esta información porque no le pertenece a tu institución.',
); );
return institucion; return institucion;
}); });

View File

@ -13,7 +13,7 @@ export class MarcaService {
.then((existeMarca) => { .then((existeMarca) => {
// Saco error si existe // Saco error si existe
if (existeMarca) throw new ConflictException('Ya existe esta marca.'); if (existeMarca) throw new ConflictException('Ya existe esta marca.');
// Creamos y guardamos el registro // Creamos y guardamos un registro
return this.repository.save(this.repository.create({ marca, tipo })); return this.repository.save(this.repository.create({ marca, tipo }));
}) })
.then((_) => ({ message: 'Se creó correctamente una nueva marca.' })); .then((_) => ({ message: 'Se creó correctamente una nueva marca.' }));

View File

@ -15,7 +15,7 @@ export class ModeloService {
.then((existeModelo) => { .then((existeModelo) => {
// Saco error si existe // Saco error si existe
if (existeModelo) throw new ConflictException('Ya existe este modelo.'); if (existeModelo) throw new ConflictException('Ya existe este modelo.');
// Creamos y guardamos el registro // Creamos y guardamos un registro
return this.repository.save(this.repository.create({ modelo, tipo })); return this.repository.save(this.repository.create({ modelo, tipo }));
}) })
.then((_) => ({ message: 'Se creó correctamente un nuevo modelo.' })); .then((_) => ({ message: 'Se creó correctamente un nuevo modelo.' }));

View File

@ -33,7 +33,7 @@ export class ModuloService {
// que realiza esta acción // que realiza esta acción
return this.findModulo(admin.institucion, modulo, true) return this.findModulo(admin.institucion, modulo, true)
.then((_) => .then((_) =>
// Creamos y guardamos el registro // Creamos y guardamos un registro
this.repository.save( this.repository.save(
this.repository.create({ this.repository.create({
institucion: admin.institucion, institucion: admin.institucion,

View File

@ -21,7 +21,7 @@ export class TipoUsuarioService {
// Saco error si existe // Saco error si existe
if (existeTipoUsuario) if (existeTipoUsuario)
throw new ConflictException('Ya existe este tipo usuario'); throw new ConflictException('Ya existe este tipo usuario');
// Creamos y guardamos el registro // Creamos y guardamos un registro
return this.repository.save(this.repository.create({ tipo_usuario })); return this.repository.save(this.repository.create({ tipo_usuario }));
}) })
.then((_) => ({ .then((_) => ({