auth service final

This commit is contained in:
xXpuma99Xx 2022-12-19 11:29:36 -06:00
parent 53ef5893c6
commit f893493b80
15 changed files with 54 additions and 53 deletions

View File

@ -24,12 +24,12 @@ export class AuthService {
private usuarioService: UsuarioService,
) {}
loginAdmin(admin: string, password: string) {
loginAdmin(admin: string, password: string): Promise<{ token: string }> {
return this.operadorService.findAdmin(admin).then((admin) => {
this.validacionBasica(admin, password);
this.validacionOperador(admin);
// Creo payload apartir de la interface que le corresponde a este tipo de usaurio
// Creamos payload apartir de la interface que le corresponde a este tipo de usaurio
const JwtPayload: JwtPayloadAdmin = {
Operador: {
id_operador: admin.id_operador,
@ -44,12 +44,15 @@ export class AuthService {
JwtPayload.Operador.institucion = {
id_institucion: admin.institucion.id_institucion,
};
// "Firmo"/creo el token
return { token: this.jwtService.sign(JwtPayload) };
return { token: this.jwtService.sign(JwtPayload) }; // "Firmamos"/creamos el token
});
}
async loginOperador(id_modulo: number, operador: string, password: string) {
async loginOperador(
id_modulo: number,
operador: string,
password: string,
): Promise<{ token: string }> {
const modulo = await this.moduloService.findById(id_modulo);
return this.operadorService
@ -58,7 +61,7 @@ export class AuthService {
this.validacionBasica(operador, password);
this.validacionOperador(operador);
// Creo payload apartir de la interface que le corresponde a este tipo de usaurio
// Creamos payload apartir de la interface que le corresponde a este tipo de usaurio
const JwtPayload: JwtPayloadOperador = {
Operador: {
id_operador: operador.id_operador,
@ -71,23 +74,20 @@ export class AuthService {
id_tipo_usuario: operador.tipoUsuario.id_tipo_usuario,
},
},
Modulo: { id_modulo: modulo.id_modulo },
};
if (operador.tipoUsuario.id_tipo_usuario === 4)
JwtPayload.Modulo = { id_modulo: modulo.id_modulo };
// "Firmo"/creo el token
return { token: this.jwtService.sign(JwtPayload) };
return { token: this.jwtService.sign(JwtPayload) }; // "Firmamos"/creamos el token
});
}
loginUsuario(usuario: string, password: string) {
loginUsuario(usuario: string, password: string): Promise<{ token: string }> {
return this.usuarioService.findByUsuario(usuario).then((usuario) => {
// Sin password = no registrado, valido que este registrado
// Validamos que este registrado. Sin password = no registrado
if (usuario && !usuario.password)
throw new BadRequestException('Este usuario no ha sido registrado.');
this.validacionBasica(usuario, password);
// Creo payload apartir de la interface que le corresponde a este tipo de usaurio
// Creamos payload apartir de la interface que le corresponde a este tipo de usaurio
const JwtPayload: JwtPayloadUsuario = {
Usuario: {
id_usuario: usuario.id_usuario,
@ -99,16 +99,15 @@ export class AuthService {
},
};
// "Firmo"/creo el token
return { token: this.jwtService.sign(JwtPayload) };
return { token: this.jwtService.sign(JwtPayload) }; // "Firmamos"/creamos el token
});
}
private validacionBasica(
operadorUsuario: Operador | Usuario,
password: string,
) {
// Valido que el operador o usuario existan y que el password sea el correcto
): void {
// Validamos que el operador o usuario existan y que el password que se envió coincida con el de la db
if (
!operadorUsuario ||
!this.bcryptService.comparar(password, operadorUsuario.password)
@ -116,11 +115,13 @@ export class AuthService {
throw new BadRequestException(
'Usuario y/o password incorrectos, ingresa unas credenciales válidas.',
);
return;
}
private validacionOperador(operador: Operador) {
// Valido que el operador este activo
private validacionOperador(operador: Operador): void {
// Validamos que la cuenta del operador esta activa
if (!operador.activo)
throw new UnauthorizedException('Esta cuenta se encuentra desactivada.');
return;
}
}

View File

@ -6,5 +6,5 @@ export interface JwtPayloadOperador {
institucion: { id_institucion: number };
tipoUsuario: { id_tipo_usuario: number };
};
Modulo?: { id_modulo: number };
Modulo: { id_modulo: number };
}

View File

@ -37,7 +37,7 @@ export class CarreraProgramaService {
id_programa,
);
// Valido que el admin que esta realizando esta acción le pertenezca la carrera
// Validamos que el admin que esta realizando esta acción le pertenezca la carrera
if (
admin.institucion.id_institucion !=
institucionCarrera.institucion.id_institucion
@ -73,7 +73,7 @@ export class CarreraProgramaService {
delete(admin: Operador, id_carrera_programa: number) {
return this.findById(id_carrera_programa)
.then((carreraPrograma) => {
// Valido que la asociación entre una carrera y un programa le
// Validamos que la asociación entre una carrera y un programa le
// pertenezcan al admin que realiza esta acción
if (
admin.institucion.id_institucion !=
@ -109,7 +109,7 @@ export class CarreraProgramaService {
.then(async (institucion) => {
// Si es un Operador
if (usuarioOperador instanceof Operador) {
// Valido que la info le pertenezca al operador que la solicita
// Validamos que la info le pertenezca al operador que la solicita
if (
usuarioOperador.institucion.id_institucion !=
institucion.id_institucion

View File

@ -53,7 +53,7 @@ export class CarritoService {
const marca = await this.marcaService.findById(id_marca, 'c');
const modelo = await this.modeloService.findById(id_modelo, 'c');
// Valido que el módulo seleccionado pertenezca a la institutción del admin
// Validamos que el módulo seleccionado pertenezca a la institutción del admin
if (admin.institucion.id_institucion != modulo.institucion.id_institucion)
throw new ForbiddenException(
'No puedes crear carritos para este módulo porque no pertenece a tu institución.',
@ -219,7 +219,7 @@ export class CarritoService {
) {
return this.findById(attrs.id_carrito)
.then(async (carrito) => {
// Valido que el carrito pertenezca a la institución del operador
// Validamos que el carrito pertenezca a la institución del operador
if (
operador.institucion.id_institucion !=
carrito.modulo.institucion.id_institucion
@ -227,7 +227,7 @@ export class CarritoService {
throw new ForbiddenException(
'No puedes modificar la información este carrito porque no pertenece a tu institución.',
);
// Valido que se mande el motivo de desactivación
// Validamos que se mande el motivo de desactivación
if (attrs.activo === false && !motivo)
throw new ForbiddenException(
'No se mandó el motivo de desactivación',

View File

@ -419,7 +419,7 @@ export class EquipoService {
? await this.statusService.findById(id_status)
: null;
// Valido que el equipo pertenezca a la institución del operador
// Validamos que el equipo pertenezca a la institución del operador
// que realiza esta acción
if (
operador.tipoUsuario.id_tipo_usuario > 2 &&

View File

@ -29,7 +29,7 @@ export class HoraExcepcionService {
id_institucion_dia,
);
// Valido que el id institución día mandado sea de la institución a la que
// Validamos que el id institución día mandado sea de la institución a la que
// pertenece el operador que realiza esta acción
if (
admin.institucion.id_institucion !=
@ -88,7 +88,7 @@ export class HoraExcepcionService {
delete(admin: Operador, id_hora_excepcion: number) {
return this.findById(id_hora_excepcion)
.then((horaExcepcion) => {
// Valido que el id hora excepción pertenezca a la institución del operador
// Validamos que el id hora excepción pertenezca a la institución del operador
// que realiza esta acción
if (
admin.institucion.id_institucion !=

View File

@ -57,7 +57,7 @@ export class InstitucionDiaService {
hoy(id_institucion: number) {
const ahora = moment();
// Valido que no sea domingo
// Validamos que no sea domingo
if (ahora.weekday() === 0)
throw new ConflictException('No hay servicio los días domingo.');
// Busco un institucionDia apartir de la institución enviada y del día de hoy
@ -71,7 +71,7 @@ export class InstitucionDiaService {
update(admin: Operador, attrs: Partial<InstitucionDia>) {
return this.findById(attrs.id_institucion_dia)
.then((institucionDia) => {
// Valido que la institucionDia le pertenezca a la institución del
// Validamos que la institucionDia le pertenezca a la institución del
// operador que realiza esta acción
if (
admin.institucion.id_institucion !=
@ -80,7 +80,7 @@ export class InstitucionDiaService {
throw new ConflictException(
'No puedes actualizar la información de este día porque no le pertenece a tu institución.',
);
// Valido que hora_inicio no sea mayor a hora_fin
// Validamos que hora_inicio no sea mayor a hora_fin
if (
// Si se mando hora_inicio u hora_fin
(attrs.hora_inicio || attrs.hora_fin) &&
@ -92,7 +92,7 @@ export class InstitucionDiaService {
throw new BadRequestException(
'La hora inicio no puede ser mayor que la hora fin.',
);
// Valido que hora_fin no sea mayor a hora_extra
// Validamos que hora_fin no sea mayor a hora_extra
if (
// Si se mando hora_fin u hora_extra
(attrs.hora_fin || attrs.hora_extra) &&
@ -104,7 +104,7 @@ export class InstitucionDiaService {
throw new BadRequestException(
'La hora fin no puede ser mayor que la hora extra.',
);
// Valido que hora_extra no sea mayor a hora_tope
// Validamos que hora_extra no sea mayor a hora_tope
if (
// Si se hora_extra hora_fin u hora_tope
(attrs.hora_extra || attrs.hora_tope) &&

View File

@ -105,7 +105,7 @@ export class InstitucionInfraccionService {
update(admin: Operador, attrs: Partial<InstitucionInfraccion>) {
return this.findById(attrs.id_institucion_infraccion)
.then((institucionInfraccion) => {
// Valido que la institucionInfraccion le pertenezca al operador que
// Validamos que la institucionInfraccion le pertenezca al operador que
// realiza esta acción
if (
admin.institucion.id_institucion !=

View File

@ -114,7 +114,7 @@ export class InstitucionProgramaService {
update(admin: Operador, attrs: Partial<InstitucionPrograma>) {
return this.findById(attrs.id_institucion_programa)
.then((institucionPrograma) => {
// Valido que la institucionPrograma le pertenezca al operador que
// Validamos que la institucionPrograma le pertenezca al operador que
// realiza esta acción
if (
admin.institucion.id_institucion !=

View File

@ -120,7 +120,7 @@ export class InstitucionTipoCarritoService {
attrs.id_institucion_tipo_carrito,
)
.then((institucionTipoCarrito) => {
// Valido que la institucionTipoCarrito le pertenezca al operador que
// Validamos que la institucionTipoCarrito le pertenezca al operador que
// realiza esta acción
if (
admin.institucion.id_institucion !=

View File

@ -110,7 +110,7 @@ export class InstitucionTipoEntradaService {
update(admin: Operador, attrs: Partial<InstitucionTipoEntrada>) {
return this.findById(attrs.id_institucion_tipo_entrada)
.then((institucionTipoEntrada) => {
// Valido que la institucionTipoEntrada le pertenezca al operador que
// Validamos que la institucionTipoEntrada le pertenezca al operador que
// realiza esta acción
if (
admin.institucion.id_institucion !=

View File

@ -144,7 +144,7 @@ export class ModuloService {
throw new ConflictException('No se mandó toda la información necesaria.');
return this.findById(attrs.id_modulo)
.then(async (modulo) => {
// Valido que el modulo enviado sea del admin que realiza esta acción
// Validamos que el modulo enviado sea del admin que realiza esta acción
if (
admin.institucion.id_institucion != modulo.institucion.id_institucion
)

View File

@ -106,7 +106,7 @@ export class MultaService {
);
const fecha_fin = moment();
// Valido que este prestamo le pertenezca al operador
// Validamos que este prestamo le pertenezca al operador
if (
operador.institucion.id_institucion !=
prestamo.equipo.carrito.modulo.institucion.id_institucion
@ -314,7 +314,7 @@ export class MultaService {
}
private validacionMultaCancelacion(prestamo: Prestamo) {
// Valido que este prestamo no haya sido cancelado poer el usuario u operador
// Validamos que este prestamo no haya sido cancelado poer el usuario u operador
if (prestamo.cancelado_operador || prestamo.cancelado_usuario)
throw new ConflictException(
'No se puede multar a un usuario con un préstamo que fue cancelado.',

View File

@ -188,7 +188,7 @@ export class OperadorService {
id_institucion: true,
id_tipo_usuario: true,
},
where: { operador, institucion },
where: { operador, institucion, tipoUsuario: { id_tipo_usuario: 4 } },
})
.then((operador) => this.llenarIds(operador));
}
@ -273,7 +273,7 @@ export class OperadorService {
}
validarUpdate(admin: Operador, operador: Operador) {
// Valido que el super admin solo puedar modificar admins
// Validamos que el super admin solo puedar modificar admins
if (
admin.tipoUsuario.id_tipo_usuario === 2 &&
operador.tipoUsuario.id_tipo_usuario != 3
@ -282,12 +282,12 @@ export class OperadorService {
`El super admin solo puede modificar la infomración de los admins.`,
);
if (admin.tipoUsuario.id_tipo_usuario === 3) {
// Valido que el admin no pueda modificar otro admin
// Validamos que el admin no pueda modificar otro admin
if (operador.tipoUsuario.id_tipo_usuario === 3)
throw new ConflictException(
`No puedes actualizar la información de otro admin.`,
);
// Valido que el admin solo pueda modificar operadores de su institución
// Validamos que el admin solo pueda modificar operadores de su institución
if (
admin.institucion.id_institucion != operador.institucion.id_institucion
)

View File

@ -169,10 +169,10 @@ export class PrestamoService {
)
: null;
// Valido que no sea domingo
// Validamos que no sea domingo
if (ahora.weekday() === 0)
throw new ConflictException('No hay servicio los días domingo.');
// Valido si ese día se encuentra activo
// Validamos si ese día se encuentra activo
if (!institucionDia.activo)
throw new ConflictException(
'El día de hoy no hay servicio de préstamo de equipos.',
@ -946,17 +946,17 @@ export class PrestamoService {
}
validacionBasicaPrestamo(prestamo: Prestamo) {
// Valido si el préstamo fue cancelado por el usuario
// Validamos si el préstamo fue cancelado por el usuario
if (prestamo.cancelado_usuario)
throw new ConflictException(
'Este préstamo fue cancelado por el usuario.',
);
// Valido si el préstamo fue cancelado por el operador
// Validamos si el préstamo fue cancelado por el operador
if (prestamo.cancelado_operador)
throw new ConflictException(
'Este préstamo fue cancelado por un operador.',
);
// Valido si el préstamo esta inactivo
// Validamos si el préstamo esta inactivo
if (!prestamo.activo)
throw new ConflictException('Este préstamo ya no se encuentra activo.');
}
@ -990,7 +990,7 @@ export class PrestamoService {
operador: Operador,
modulo: Modulo,
) {
// Valido que el prestamo pertenezca a la institución
// Validamos que el prestamo pertenezca a la institución
if (
operador.institucion.id_institucion !=
prestamo.equipo.carrito.modulo.institucion.id_institucion
@ -998,7 +998,7 @@ export class PrestamoService {
throw new ConflictException(
'Este préstamo no pertenece a esta institución.',
);
// Valido que el prestamo pertenezca al módulo del operador
// Validamos que el prestamo pertenezca al módulo del operador
if (modulo && prestamo.equipo.carrito.modulo.id_modulo != modulo.id_modulo)
throw new ConflictException('Este préstamo no pertenece a tu módulo.');
}