opreador service final

This commit is contained in:
xXpuma99Xx 2022-12-23 19:40:19 -06:00
parent d2f375ee63
commit e8c71f05ef
3 changed files with 30 additions and 25 deletions

View File

@ -29,7 +29,7 @@ export class FullInformacionOperadorView {
id_operador: number;
@ViewColumn()
activo: boolean;
activo: number;
@ViewColumn()
id_institucion: number;

View File

@ -134,7 +134,7 @@ export class OperadorController {
const admin: Operador = req.user.operador;
this.validarUsuarioService.validarSuperAdminAdmin(admin);
return this.operadorService.findAll(query);
return this.operadorService.findAll(admin, query);
}
@Serealize(OperadorOutputDto)
@ -148,7 +148,7 @@ export class OperadorController {
const admin: Operador = req.user.operador;
this.validarUsuarioService.validarAdmin(admin);
return this.operadorService.findAllByInstitucion(admin.institucion);
return this.operadorService.findAllAdmin(admin);
}
@Serealize(MessageOutputDto)

View File

@ -103,12 +103,15 @@ export class OperadorService {
.then((admin) => this.llenarIds(admin));
}
async findAll(filtros: {
pagina: string;
id_institucion?: string;
id_tipo_usuario?: string;
operador?: string;
}): Promise<[Operador[], number]> {
async findAll(
admin: Operador,
filtros: {
pagina: string;
id_institucion?: string;
id_tipo_usuario?: string;
operador?: string;
},
): Promise<[Operador[], number]> {
const institucion = filtros.id_institucion
? await this.institucionService.findById(parseInt(filtros.id_institucion))
: null;
@ -121,8 +124,10 @@ export class OperadorService {
id_tipo_usuario: MoreThan(2),
};
if (admin.tipoUsuario.id_tipo_usuario > 2)
busqueda.id_institucion = admin.institucion.id_institucion;
else if (institucion) busqueda.id_institucion = institucion.id_institucion;
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({
@ -137,7 +142,7 @@ export class OperadorService {
operadores.push(
this.repository.create({
id_operador: infoOperadores[0][i].id_operador,
activo: infoOperadores[0][i].activo,
activo: infoOperadores[0][i].activo === 1,
correo: infoOperadores[0][i].correo,
nombre: infoOperadores[0][i].nombre,
operador: infoOperadores[0][i].operador,
@ -155,21 +160,13 @@ export class OperadorService {
});
}
findAllByInstitucion(institucion: Institucion): Promise<Operador[]> {
findAllAdmin(admin: Operador): Promise<Operador[]> {
return this.repository.find({
select: ['id_operador', 'operador'],
where: { institucion },
where: { institucion: admin.institucion },
});
}
findOperador(institucion: Institucion, operador: string): Promise<Operador> {
return this.repository
.findOne({
where: { operador, institucion, tipoUsuario: { id_tipo_usuario: 4 } },
})
.then((operador) => this.llenarIds(operador));
}
findById(id_operador: number): Promise<Operador> {
return this.repository
.findOne({
@ -189,6 +186,14 @@ export class OperadorService {
});
}
findOperador(institucion: Institucion, operador: string): Promise<Operador> {
return this.repository
.findOne({
where: { operador, institucion, tipoUsuario: { id_tipo_usuario: 4 } },
})
.then((operador) => this.llenarIds(operador));
}
llenarIds(operador: Operador): Operador {
if (operador) {
operador.tipoUsuario = this.tipoUsuarioService.crearTipoUsuario(
@ -210,15 +215,15 @@ export class OperadorService {
return this.findById(id_operador)
.then((operador) => {
this.validarUpdate(admin, operador);
// Si no se manda una password se genera una
// Generamos un password por si no se mando uno
if (!password) password = this.bcryptService.generarPassword();
// Encriptación
// Encriptamos password
operador.password = this.bcryptService.encriptar(password);
// Guardar
// Guardamos cambios
return this.repository.save(operador);
})
.then((operador) =>
// Reenviar correo
// Enviamos un correo con credenciales
this.nodemailerService.sendEmail({
email: operador.correo,
subject: 'Credenciales PC Puma',