usuario listo

This commit is contained in:
xXpuma99Xx 2022-10-24 18:15:09 -05:00
parent 2baa5a9aad
commit 04f2f2948b
8 changed files with 41 additions and 38 deletions

View File

@ -77,29 +77,27 @@ export class AuthService {
} }
loginUsuario(usuario: string, password: string) { loginUsuario(usuario: string, password: string) {
return this.usuarioService return this.usuarioService.findByUsuario(usuario).then((usuario) => {
.findInfoUsuarioByUsuario(usuario) // Sin password = no registrado, valida que este registrado
.then((usuario) => { if (usuario && !usuario.password)
// Sin password = no registrado, valida que este registrado throw new BadRequestException('Este usuario no ha sido registrado.');
if (usuario && !usuario.password) this.validacionBasica(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 // Creo payload apartir de la interface que le corresponde a este tipo de usaurio
const JwtPayload: JwtPayloadUsuario = { const JwtPayload: JwtPayloadUsuario = {
Usuario: { Usuario: {
id_usuario: usuario.id_usuario, id_usuario: usuario.id_usuario,
usuario: usuario.usuario, usuario: usuario.usuario,
nombre: usuario.nombre, nombre: usuario.nombre,
tipoUsuario: { tipoUsuario: {
id_tipo_usuario: usuario.tipoUsuario.id_tipo_usuario, id_tipo_usuario: usuario.tipoUsuario.id_tipo_usuario,
},
}, },
}; },
};
// "Firmo"/creo el token // "Firmo"/creo el token
return { token: this.jwtService.sign(JwtPayload) }; return { token: this.jwtService.sign(JwtPayload) };
}); });
} }
private validacionBasica( private validacionBasica(

View File

@ -39,7 +39,7 @@ export class JwtStrategyService extends PassportStrategy(Strategy) {
if ('Usuario' in payload) if ('Usuario' in payload)
// Buscar a ese usuario en la db y lo asigna al objeto user // Buscar a ese usuario en la db y lo asigna al objeto user
await this.usuarioService await this.usuarioService
.findInfoUsuarioById(payload.Usuario.id_usuario) .findById(payload.Usuario.id_usuario)
.then((usuario) => (user.usuario = usuario)); .then((usuario) => (user.usuario = usuario));
// Si el token contiene un objeto Operador en el // Si el token contiene un objeto Operador en el
else if ('Operador' in payload) else if ('Operador' in payload)

View File

@ -185,7 +185,7 @@ export class MultaService {
} }
findAllByIdUsuario(id_usuario: number, pagina: number) { findAllByIdUsuario(id_usuario: number, pagina: number) {
return this.usuarioService.findInfoUsuarioById(id_usuario).then((usuario) => return this.usuarioService.findById(id_usuario).then((usuario) =>
this.fullInformacionMultaView this.fullInformacionMultaView
.findAndCount({ .findAndCount({
where: { id_usuario: usuario.id_usuario }, where: { id_usuario: usuario.id_usuario },
@ -205,7 +205,7 @@ export class MultaService {
} }
findMultasActivas(id_usuario: number) { findMultasActivas(id_usuario: number) {
return this.usuarioService.findInfoUsuarioById(id_usuario).then((usuario) => return this.usuarioService.findById(id_usuario).then((usuario) =>
this.repository this.repository
.createQueryBuilder('mu') .createQueryBuilder('mu')
.innerJoin('mu.prestamo', 'p') .innerJoin('mu.prestamo', 'p')

View File

@ -340,7 +340,7 @@ export class PrestamoService {
findAllByIdUsuario(id_usuario: number, pagina: number) { findAllByIdUsuario(id_usuario: number, pagina: number) {
return this.usuarioService return this.usuarioService
.findInfoUsuarioById(id_usuario) .findById(id_usuario)
.then((usuario) => .then((usuario) =>
this.fullInformacionPrestamoView.findAndCount({ this.fullInformacionPrestamoView.findAndCount({
where: { id_usuario: usuario.id_usuario }, where: { id_usuario: usuario.id_usuario },

View File

@ -373,7 +373,7 @@ export class UploadFileService {
dataUsuario.tipo_usuario, dataUsuario.tipo_usuario,
false, false,
); );
const usuario = await this.usuarioService.findInfoUsuarioByUsuario( const usuario = await this.usuarioService.findByUsuario(
dataUsuario.numero_cuenta, dataUsuario.numero_cuenta,
); );
const carrera = const carrera =

View File

@ -8,7 +8,6 @@ import {
export class RegistrarUsuarioInputDto { export class RegistrarUsuarioInputDto {
@IsInt() @IsInt()
@IsOptional()
id_institucion_carrera: number; id_institucion_carrera: number;
@IsPhoneNumber('MX') @IsPhoneNumber('MX')

View File

@ -47,7 +47,14 @@ export class UsuarioController {
description: description:
'Todas la variables a excepción de id_usuario son obligatorias.', 'Todas la variables a excepción de id_usuario son obligatorias.',
examples: { examples: {
ejemplo: { value: { id_usuario: 1, telefono: '', correo: '' } }, ejemplo: {
value: {
id_institucion_carrera: 1,
telefono: '',
correo: '',
usuario: '',
},
},
}, },
}) })
registrar(@Body() body: RegistrarUsuarioInputDto) { registrar(@Body() body: RegistrarUsuarioInputDto) {
@ -72,8 +79,8 @@ export class UsuarioController {
examples: { examples: {
ejemplo: { ejemplo: {
value: { value: {
correo: '',
id_usuario: 1, id_usuario: 1,
correo: '',
telefono: '', telefono: '',
}, },
}, },
@ -120,10 +127,7 @@ export class UsuarioController {
const operador: Operador = req.user.operador; const operador: Operador = req.user.operador;
this.validarUsuarioService.validarAdminOperador(operador); this.validarUsuarioService.validarAdminOperador(operador);
return this.usuarioService.findFullInfoUsuarioByUsuario( return this.usuarioService.findFullInfoByUsuario(operador, query.usuario);
operador,
query.usuario,
);
} }
@Serealize(UsuariosOutputDto) @Serealize(UsuariosOutputDto)

View File

@ -121,7 +121,7 @@ export class UsuarioService {
return query.getManyAndCount(); return query.getManyAndCount();
} }
findFullInfoUsuarioByUsuario(operador: Operador, usuario: string) { findFullInfoByUsuario(operador: Operador, usuario: string) {
return this.fullInformacionUsuarioView return this.fullInformacionUsuarioView
.findOne({ where: { usuario } }) .findOne({ where: { usuario } })
.then(async (infoUsuario) => { .then(async (infoUsuario) => {
@ -155,7 +155,7 @@ export class UsuarioService {
}); });
} }
findInfoUsuarioById(id_usuario: number) { findById(id_usuario: number) {
return this.repository return this.repository
.findOne({ .findOne({
select: { select: {
@ -174,7 +174,7 @@ export class UsuarioService {
}); });
} }
findInfoUsuarioByUsuario(usuario: string, rfc?: string) { findByUsuario(usuario: string, rfc?: string) {
const busqueda: FindOptionsWhere<Usuario> = { usuario }; const busqueda: FindOptionsWhere<Usuario> = { usuario };
if (rfc) busqueda.rfc = rfc; if (rfc) busqueda.rfc = rfc;
@ -195,7 +195,7 @@ export class UsuarioService {
// Genero password // Genero password
const password = this.bcryptService.generarPassword(); const password = this.bcryptService.generarPassword();
return this.findInfoUsuarioById(id_usuario) return this.findById(id_usuario)
.then((usuario) => { .then((usuario) => {
// Solo se puede actualizar password si no esta registrado, password = registro // Solo se puede actualizar password si no esta registrado, password = registro
if (!usuario.password) if (!usuario.password)
@ -234,7 +234,7 @@ export class UsuarioService {
let message: string; let message: string;
// Busco usuario // Busco usuario
return this.findInfoUsuarioByUsuario(usuario, rfc) return this.findByUsuario(usuario, rfc)
.then(async (existeUsuario) => { .then(async (existeUsuario) => {
// Ai no existe o tiene contraseña, es decir que esta registrado, saca error // Ai no existe o tiene contraseña, es decir que esta registrado, saca error
if (!existeUsuario || existeUsuario.password) if (!existeUsuario || existeUsuario.password)
@ -286,7 +286,7 @@ export class UsuarioService {
} }
update(operador: Operador, attrs: Partial<Usuario>) { update(operador: Operador, attrs: Partial<Usuario>) {
return this.findInfoUsuarioById(attrs.id_usuario) return this.findById(attrs.id_usuario)
.then(async (usuario) => { .then(async (usuario) => {
const institucionesUsuario = const institucionesUsuario =
await this.institucionUsuarioService.findAllByIdUsuarioIdInstitucion( await this.institucionUsuarioService.findAllByIdUsuarioIdInstitucion(
@ -299,7 +299,9 @@ export class UsuarioService {
throw new ConflictException( throw new ConflictException(
'Este usuario no pertenece a tu institución.', 'Este usuario no pertenece a tu institución.',
); );
// Asingo los datos enviados al bojeto
Object.assign(usuario, attrs); Object.assign(usuario, attrs);
// Guardar
return this.repository.save(usuario); return this.repository.save(usuario);
}) })
.then((_) => ({ message: 'Se guardaron los cambios correctamente.' })); .then((_) => ({ message: 'Se guardaron los cambios correctamente.' }));