usuario listo
This commit is contained in:
parent
2baa5a9aad
commit
04f2f2948b
@ -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(
|
||||||
|
@ -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)
|
||||||
|
@ -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')
|
||||||
|
@ -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 },
|
||||||
|
@ -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 =
|
||||||
|
@ -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')
|
||||||
|
@ -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)
|
||||||
|
@ -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.' }));
|
||||||
|
Loading…
Reference in New Issue
Block a user