mini cambios

This commit is contained in:
lemuel 2022-11-21 22:20:35 -06:00
parent 0189e7fcee
commit 80111e15e0
5 changed files with 37 additions and 72 deletions

View File

@ -35,12 +35,11 @@ export class AuthService {
id_operador: admin.id_operador, id_operador: admin.id_operador,
operador: admin.operador, operador: admin.operador,
nombre: admin.nombre, nombre: admin.nombre,
// institucion: { id_institucion: admin.institucion.id_institucion },
tipoUsuario: { id_tipo_usuario: admin.tipoUsuario.id_tipo_usuario }, tipoUsuario: { id_tipo_usuario: admin.tipoUsuario.id_tipo_usuario },
}, },
}; };
// Los super admin y sistema no tienen institucion // Los super admin y sistema no tienen institución
if (JwtPayload.Operador.tipoUsuario.id_tipo_usuario > 2) if (JwtPayload.Operador.tipoUsuario.id_tipo_usuario > 2)
JwtPayload.Operador.institucion = { JwtPayload.Operador.institucion = {
id_institucion: admin.institucion.id_institucion, id_institucion: admin.institucion.id_institucion,
@ -83,7 +82,7 @@ export class AuthService {
loginUsuario(usuario: string, password: string) { loginUsuario(usuario: string, password: string) {
return this.usuarioService.findByUsuario(usuario).then((usuario) => { return this.usuarioService.findByUsuario(usuario).then((usuario) => {
// Sin password = no registrado, valida que este registrado // Sin password = no registrado, valido que este registrado
if (usuario && !usuario.password) if (usuario && !usuario.password)
throw new BadRequestException('Este usuario no ha sido registrado.'); throw new BadRequestException('Este usuario no ha sido registrado.');
this.validacionBasica(usuario, password); this.validacionBasica(usuario, password);

View File

@ -50,7 +50,7 @@ export class JwtStrategyService extends PassportStrategy(Strategy) {
// Valida que la cuena del operador este activa // Valida que la cuena del operador este activa
if (!operador.activo) if (!operador.activo)
throw new ForbiddenException('Esta cuenta esta desactivada.'); throw new ForbiddenException('Esta cuenta esta desactivada.');
// Validar que venga en el payload venga con un objeto Modulo en // Validar que venga en el payload con un objeto Modulo en
// caso de ser tipo usuario operador y asignarlo al objeto user // caso de ser tipo usuario operador y asignarlo al objeto user
if (operador.tipoUsuario.id_tipo_usuario === 4) { if (operador.tipoUsuario.id_tipo_usuario === 4) {
if ('Modulo' in payload) if ('Modulo' in payload)

View File

@ -58,7 +58,6 @@ 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.',
); );
// Creo y guardo el registro // Creo y guardo el registro
return this.repository return this.repository
.save( .save(
@ -94,10 +93,7 @@ export class CarritoService {
id_tipo_carrito: tipoCarrito.id_tipo_carrito, id_tipo_carrito: tipoCarrito.id_tipo_carrito,
}, },
}) })
.then((infoCarrito) => { .then((infoCarrito) => this.viewToCarrito(infoCarrito));
if (!infoCarrito) return null;
return this.viewToCarrito(infoCarrito);
});
} }
findFullInfoById(id_carrito: number) { findFullInfoById(id_carrito: number) {
@ -242,7 +238,7 @@ export class CarritoService {
return this.repository.save(carrito); return this.repository.save(carrito);
}) })
.then((carrito) => { .then((carrito) => {
// Creo reporte de cambio de status del carrito // Creo reporte de desactivación del carrito
if (attrs.activo === false) if (attrs.activo === false)
this.caritoMotivoService.create( this.caritoMotivoService.create(
carrito, carrito,
@ -256,6 +252,7 @@ export class CarritoService {
} }
private viewToCarrito(infoCarrito: InformacionCarritoView) { private viewToCarrito(infoCarrito: InformacionCarritoView) {
if (!infoCarrito) return null;
return this.repository.create({ return this.repository.create({
id_carrito: infoCarrito.id_carrito, id_carrito: infoCarrito.id_carrito,
modulo: { modulo: {

View File

@ -23,19 +23,11 @@ export class EquipoMotivoService {
async create( async create(
equipo: Equipo, equipo: Equipo,
id_operador: number | Operador, operador: Operador,
id_status: number | Status, status: Status,
motivo: string, motivo: string,
) { ) {
const ahora = moment(); const ahora = moment();
const operador =
typeof id_operador === 'number'
? await this.operadorService.findById(id_operador)
: id_operador;
const status =
typeof id_status === 'number'
? await this.statusService.findById(id_status)
: id_status;
// Creo registro y lo guardo // Creo registro y lo guardo
return this.repository.save( return this.repository.save(

View File

@ -159,37 +159,22 @@ export class EquipoService {
.take(15) .take(15)
.skip((parseInt(filtros.pagina) - 1) * 15); .skip((parseInt(filtros.pagina) - 1) * 15);
// Si se mando id modulo if (operador.tipoUsuario.id_tipo_usuario > 2)
if (modulo) { query.andWhere('m.id_institucion = :id_institucion', {
// Valido que el módulo le pertenezca a la institución del id_institucion: operador.institucion.id_institucion,
// operador que solicita la información });
if ( else if (institucion)
operador.tipoUsuario.id_tipo_usuario > 2 && query.andWhere('m.id_institucion = :id_institucion', {
operador.institucion.id_institucion != modulo.institucion.id_institucion id_institucion: institucion.id_institucion,
) });
throw new ForbiddenException( if (modulo)
'No puedes acceder a esta información porque este módulo no pertenece a tu institución.',
);
query.andWhere('m.id_modulo = :id_modulo', { query.andWhere('m.id_modulo = :id_modulo', {
id_modulo: modulo.id_modulo, id_modulo: modulo.id_modulo,
}); });
} if (carrito)
// Si se mando id carrito
if (carrito) {
// Valido que el carrito le pertenezca a la institución del
// operador que solicita la información
if (
operador.tipoUsuario.id_tipo_usuario > 2 &&
operador.institucion.id_institucion !=
carrito.modulo.institucion.id_institucion
)
throw new ForbiddenException(
'No puedes acceder a esta información porque este carrito no pertenece a tu institución.',
);
query.andWhere('c.id_carrito = :id_carrito', { query.andWhere('c.id_carrito = :id_carrito', {
id_carrito: carrito.id_carrito, id_carrito: carrito.id_carrito,
}); });
}
if (filtros.carrito) if (filtros.carrito)
query.andWhere('c.carrito LIKE :carrito', { query.andWhere('c.carrito LIKE :carrito', {
carrito: `%${filtros.carrito}%`, carrito: `%${filtros.carrito}%`,
@ -198,10 +183,6 @@ export class EquipoService {
query.andWhere('e.equipo LIKE :equipo', { query.andWhere('e.equipo LIKE :equipo', {
equipo: `%${filtros.equipo}%`, equipo: `%${filtros.equipo}%`,
}); });
if (institucion)
query.andWhere('m.id_institucion = :id_institucion', {
id_institucion: institucion.id_institucion,
});
if (marca) if (marca)
query.andWhere('ma.id_marca = :id_marca', { query.andWhere('ma.id_marca = :id_marca', {
id_marca: marca.id_marca, id_marca: marca.id_marca,
@ -248,13 +229,10 @@ export class EquipoService {
}, },
}) })
.then((infoEquipo) => { .then((infoEquipo) => {
if (!infoEquipo) { if (!infoEquipo && validarNoExiste)
if (validarNoExiste) throw new NotFoundException(
throw new NotFoundException( 'No existe un equipo de cómputo con este número de inventario.',
'No existe un equipo de cómputo con este número de inventario.', );
);
return null;
}
return this.viewToEquipo(infoEquipo); return this.viewToEquipo(infoEquipo);
}); });
} }
@ -272,13 +250,10 @@ export class EquipoService {
}, },
}) })
.then((infoEquipo) => { .then((infoEquipo) => {
if (!infoEquipo) { if (!infoEquipo && validarNoExiste)
if (validarNoExiste) throw new NotFoundException(
throw new NotFoundException( 'No existe un equipo de cómputo con este número de inventario.',
'No existe un equipo de cómputo con este número de inventario.', );
);
return null;
}
return this.viewToEquipo(infoEquipo); return this.viewToEquipo(infoEquipo);
}); });
} }
@ -423,26 +398,27 @@ export class EquipoService {
return this.repository return this.repository
.createQueryBuilder() .createQueryBuilder()
.update() .update()
.where('id_status != 3')
.set({ prestado: false }) .set({ prestado: false })
.execute(); .execute();
} }
async update( update(
operador: Operador, operador: Operador,
attrs: Partial<Equipo>, attrs: Partial<Equipo>,
id_carrito?: number, id_carrito?: number,
id_status?: number, id_status?: number,
motivo?: string, motivo?: string,
) { ) {
const carrito = id_carrito
? await this.carritoService.findById(id_carrito)
: null;
const status = id_status
? await this.statusService.findById(id_status)
: null;
return this.findById(attrs.id_equipo) return this.findById(attrs.id_equipo)
.then(async (equipo) => { .then(async (equipo) => {
const carrito = id_carrito
? await this.carritoService.findById(id_carrito)
: null;
const status = id_status
? await this.statusService.findById(id_status)
: null;
// Valido que el equipo pertenezca a la institución del operador // Valido que el equipo pertenezca a la institución del operador
// que realiza esta acción // que realiza esta acción
if ( if (
@ -463,7 +439,7 @@ export class EquipoService {
// El operador no puede cambiar el status de un equipo a uno de estos // El operador no puede cambiar el status de un equipo a uno de estos
if (status.id_status === 2 || status.id_status === 3) if (status.id_status === 2 || status.id_status === 3)
throw new ConflictException( throw new ConflictException(
'No se puede cambiar manualmente el status de un equipo a este status.', 'No se puede cambiar manualmente el status de un equipo a apartado o en uso.',
); );
if (!motivo) if (!motivo)
throw new ConflictException( throw new ConflictException(
@ -550,6 +526,7 @@ export class EquipoService {
} }
private viewToEquipo(infoEquipo: InformacionEquipoView) { private viewToEquipo(infoEquipo: InformacionEquipoView) {
if (!infoEquipo) return null;
return this.repository.create({ return this.repository.create({
id_equipo: infoEquipo.id_equipo, id_equipo: infoEquipo.id_equipo,
equipo: infoEquipo.equipo, equipo: infoEquipo.equipo,