listo operador

This commit is contained in:
xXpuma99Xx
2022-10-24 17:15:23 -05:00
parent 3d498affe9
commit 0635bb4c5e
2 changed files with 17 additions and 12 deletions
+2 -2
View File
@@ -160,7 +160,7 @@ export class OperadorController {
@ApiBearerAuth('jwt')
@ApiBody({
description: 'Es obligatorio enviar el campo id_operador.',
examples: { ejemplo: { value: { id_operador: 4 } } },
examples: { ejemplo: { value: { id_operador: 4, _password: '' } } },
})
passwordResset(@Request() req, @Body() body: UpdateOperadorDto) {
const admin: Operador = req.user.operador;
@@ -184,7 +184,7 @@ export class OperadorController {
description:
'Todas las variables a excepción de id_operador son opcionales.',
examples: {
ejemplo: { value: { id_operador: 3, _activo: true, _password: '' } },
ejemplo: { value: { id_operador: 3, _activo: true } },
},
})
update(@Request() req, @Body() body: UpdateOperadorDto) {
+15 -10
View File
@@ -4,7 +4,14 @@ import {
NotFoundException,
} from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Between, FindOptionsWhere, Like, Not, Repository } from 'typeorm';
import {
Between,
FindOptionsWhere,
Like,
MoreThan,
Not,
Repository,
} from 'typeorm';
import { Institucion } from '../institucion/entity/institucion.entity';
import { Operador } from './entity/operador.entity';
import { FullInformacionOperadorView } from './entity/views/full-informacion-operador.view';
@@ -118,18 +125,16 @@ export class OperadorService {
parseInt(filtros.id_tipo_usuario),
)
: null;
const busqueda: FindOptionsWhere<FullInformacionOperadorView> = {};
const busqueda: FindOptionsWhere<FullInformacionOperadorView> = {
id_tipo_usuario: MoreThan(2),
};
if (filtros.operador) busqueda.operador = Like(`${filtros.operador}%`);
if (institucion) busqueda.id_institucion = institucion.id_institucion;
if (tipoUsuario) busqueda.id_tipo_usuario = tipoUsuario.id_tipo_usuario;
return this.fullInformacionOperadorView
.findAndCount({
where: [
busqueda,
{ id_tipo_usuario: Not(1) },
{ id_tipo_usuario: Not(2) },
],
where: busqueda,
take: 25,
skip: (parseInt(filtros.pagina) - 1) * 25,
})
@@ -153,7 +158,7 @@ export class OperadorService {
},
}),
);
return [operadores];
return [operadores, infoOperadores[1]];
});
}
@@ -274,12 +279,12 @@ export class OperadorService {
`El super admin solo puede modificar la infomración de los admins.`,
);
if (admin.tipoUsuario.id_tipo_usuario === 3) {
// Valido admin no pueda modificar admins
// Valido 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 admin solo pueda modificar operadores de su institución
// Valido que el admin solo pueda modificar operadores de su institución
if (
admin.institucion.id_institucion != operador.institucion.id_institucion
)