user-management-package
v2.5.0
Published
Bienvenido a la **User Management API**, una API RESTful para gestionar usuarios, con capacidades de registro, inicio de sesión y acceso a datos protegidos. Esta API permite registrar usuarios y realizar operaciones de gestión de usuarios.
Readme
User Management API
Bienvenido a la User Management API, una API RESTful para gestionar usuarios, con capacidades de registro, inicio de sesión y acceso a datos protegidos. Esta API permite registrar usuarios y realizar operaciones de gestión de usuarios.
⚒️ Características ⚒️
- Gestión de usuarios: Permite consultar los datos de los usuarios, actualizarlos y eliminarlos.
- Registro de usuarios: Permite registrar nuevos usuarios con su nombre, apellido, email y contraseña.
- Clave Encriptada: Los usuarios de la aplicación tendrán su password cifrada para evitar filtrado de información.
- Contraseña 8 carácteres: Los usuarios deberán colocar contraseñas de más de 8 carácteres para aplicar seguridad.
- Verificación de DNI: Los usuarios deberán colocar un DNI correcto para registrarse.
- Verificación de NIF: Los usuarios deberán especificar un NIF correcto para registrarse como Propietario.
- Validación de Email: Los usuarios deberán especificar un email con un formato válido y existente. Al cual se le mandarán confirmaciones.
- Update: Posibilidades de actualizar los datos del usuario de forma simple e individual.
- Eliminación: Se podrán eliminar usuarios y se podrán dar de baja (Cambiando el estado).
- Logs: Logs funcionales y visuales con tiempos para verificar las acciones.
📙 Módulo NPM 📙
User Management esta disponible como paquete NPM Si quieres usarlo en tu proyecto sin necesidad de clonar el código simplemente haz uso de los comandos de npm para ello.
npm install user-management-package💻 Docker 💻
Si quieres instalar docker hay que seguir las siguientes instrucciones:
1. Construir la imagen
docker build -t user-management .2. Crear contenedor y desplegarlo
docker run -d -p 3050:3050 --name user-management-container user-managementNOTA: Si ya dispones de los módulos instalados y del build, puede producir un error a la hora de iniciar el contenedor docker. En caso de querer utilizar docker, proponemos que se instale la imagen antes de instalar las dependencias, este paso no afectará a la imagen ya que estás se instalarán dentro del propio contenedor de forma automática.
📃 Instrucciones de la API 📃
1. Instalar dependencias:
npm install2. Build:
npm run build
npm run server 3. Ejecutar los Tests:
Por último si se desean revisar los tests efectuados para la comprobación de las funciones implementadas en user-management
npm run testUsers📧 Endpoints 📧
1. Registrar un nuevo usuario
POST /api/users/register
Este endpoint permite registrar un nuevo usuario en el sistema. Los parámetros requeridos para la creación del usuario son:
- nombre : El nombre del usuario.
- apellido : El apellido del usuario.
- email : El email del usuario, debe ser único.
- DNI : El DNI del usuario.
- NIF : (Opcional) El NIF del usuario. Al colocarlo el rol se pondrá en propietario.
- telefono : El número de tlf del usuario.
- password : La contraseña del usuario, debe ser fuerte.
- rol : El rol del usuario ("admin", "usuario", "propietario").
Request Body >> Propietario:
{
"nombre": "Alejandro",
"apellido": "Pastor",
"email": "[email protected]",
"DNI": "12345678A",
"NIF": "12345678A",
"telefono": 654853192,
"password": "password"
}Request Body >> Usuario:
{
"nombre": "Alejandro",
"apellido": "Pastor",
"email": "[email protected]",
"DNI": "12345678A",
"telefono": 532433212,
"password": "password"
}Devuelve un mensaje y el usuario registrado:
{
"message": "Usuario creado con éxito",
"user": {
"id": 4,
"nombre": "Alejandro",
"apellido": "Pastor",
"email": "[email protected]",
"DNI": "12345678A",
"NIF": "12345678A",
"telefono": 212312123,
"password": "$2a$10$EJ9hObsgKJuQk7zKE/WmRe526aJr/TzZDAodmcfw/X8yrIaR.HE.C",
"rol": "propietario",
"fecha_creacion": "5/12/2024 16:49:3",
"activo": 1,
"image": null
}
}2. Iniciar sesión
POST /api/users/login
Este endpoint permite a los usuarios autenticarse con su email y contraseña.
Request Body Example:
{
"email": "[email protected]",
"password": "password"
}Devuelve un mensaje y el usuario logueado:
{
"message": "Iniciando sesión...",
"user": {
"id": 3,
"nombre": "Alex",
"apellido": "Pastor",
"email": "[email protected]",
"dni": "125678A",
"telefono": 123123123,
"password": "$2a$10$gQb2GF0qEmKz4UcH6mS6CeUB3FoA2/fsksTQ25jigYPPj7D8Xi2JC",
"rol": "usuario",
"fecha_creacion": "5/12/2024 15:54:43",
"activo": 1,
"image": null
}
}3. Obtener todos los usuarios (List Users)
GET /api/users
Este endpoint devuelve una lista de todos los usuarios registrados en el sistema. Puedes usar parámetros y filtros de consulta opcionales para organizar los resultados.
Parámetros de consulta:
nombre(opcional): Filtra los usuarios por nombre.apellido(opcional): Filtra los usuarios por apellido.email(opcional): Filtra los usuarios por dirección de correo electrónico.DNI(opcional): Filtra los usuarios por su DNI.NIF(opcional): Filtra los usuarios por su NIF.telefono(opcional): Filtra los usuarios telefono.rol(opcional): Filtra los usuarios por rol.usuario,propietariooadminactivo(opcional): Filtra los usuarios por su estado activoactivo=1oactivo=0donde 1 es verdadero.
Ejemplo de Solicitud:
GET /api/users?nombre=Alejandro&rol=ususarioDevuelve la lista de usuarios encontrada:
[
{
"id": 5,
"nombre": "Alejandro",
"apellido": "Pastor",
"email": "[email protected]",
"DNI": "12345678A",
"NIF": null,
"telefono": 123123123,
"password": "$2a$10$b9.O6vt3sqdCUlY8JXchMenZFSUMlDXvXiIB36m5njdlsv4WZzJk.",
"rol": "usuario",
"fecha_creacion": "5/12/2024 16:53:39",
"activo": 1,
"image": null
}
]4. Actualizar un usuario por ID
PUT /api/users/:id
Este endpoint permite actualizar la información de un usuario específico mediante su ID.
Parámetros:
- id : El ID del usuario que deseas actualizar.
Los parámetros son opcionales. Se pueden actualizar de uno en uno sin necesidad de actualizar todos a la vez. Los siguientes parámetros se pueden actualizar:
- nombre : El nombre del usuario.
- apellido : El apellido del usuario.
- email : El email del usuario, debe ser único.
- DNI : El DNI del usuario.
- NIF : El NIF del usuario.
- telefono : El número de tlf del usuario.
- password : La contraseña del usuario, debe ser fuerte.
- rol : El rol del usuario ("admin", "usuario", "propietario").
- activo : Determina si el usuario está dado de alta o no (
trueofalse). - image : La imagen del usuario.
Request Body Example:
{
"nombre": "Alejandro",
"apellido": "Pastor",
"email": "[email protected]",
"dni": "12345678A",
"telefono": 213123123
}Devuelve un mensaje y al usuario actualizado:
{
"message": "Actualizados los datos del usuario.",
"user": {
"id": 5,
"nombre": "Alej",
"apellido": "Alej",
"email": "Alej",
"DNI": "Alej",
"NIF": null,
"telefono": 123123123,
"password": "$2a$10$b9.O6vt3sqdCUlY8JXchMenZFSUMlDXvXiIB36m5njdlsv4WZzJk.",
"rol": "usuario",
"fecha_creacion": "5/12/2024 16:53:39",
"activo": 0,
"image": null
}
}5. Eliminar un usuario por ID
DELETE /api/users/:id
Este endpoint permite eliminar un usuario específico mediante su ID.
La eliminación de los usuarios la dejaremos desactivada. Cuando queramos eliminar un usuario lo que haremos será un updateUser del usuario y pondremos el activo en false.
Pero si existe algún caso en el que se quiera eliminar, el método se puede utilizar.
Parámetros:
- id : El ID del usuario que deseas eliminar.
Devuelve un mensaje la ID del usuario eliminado:
{
"UserID": 5,
"text": "Usuario Eliminado correctamente."
}6. Recoger un usuario por ID
GET /api/users/:id
Este endpoint permite recoger la información de un usuario específico mediante su ID.
Parámetros:
- id : El ID del usuario que deseas obtener.
Devuelve el usuario:
{
"user": {
"id": 5,
"nombre": "Alej",
"apellido": "Alej",
"email": "Alej",
"DNI": "Alej",
"NIF": null,
"telefono": 123123123,
"password": "$2a$10$b9.O6vt3sqdCUlY8JXchMenZFSUMlDXvXiIB36m5njdlsv4WZzJk.",
"rol": "usuario",
"fecha_creacion": "5/12/2024 16:53:39",
"activo": 0,
"image": null
}
}