CRUD de Usuarios
CRUD de Usuarios
Section titled “CRUD de Usuarios”Endpoints para la gestión completa de usuarios (Crear, Leer, Actualizar, Eliminar).
POST /api/v1/users/create
Section titled “POST /api/v1/users/create”Crea un nuevo usuario en el sistema.
Headers requeridos
Section titled “Headers requeridos”Content-Type: application/jsonAccept: application/jsonAuthorization: Bearer {token}
Parámetros del cuerpo
Section titled “Parámetros del cuerpo”Parámetro | Tipo | Requerido | Descripción |
---|---|---|---|
name | string | Sí | Nombre del usuario |
lastname | string | Sí | Apellido del usuario |
string | Sí | Email del usuario | |
password | string | Sí | Contraseña del usuario |
account_id | integer | Sí | ID de la cuenta |
roles | array | No | Array de roles del usuario |
accounts | array | No | Array de cuentas asociadas |
Ejemplo de solicitud
Section titled “Ejemplo de solicitud”{ "name": "Juan", "lastname": "Pérez", "password": "contraseña123", "account_id": 1, "roles": ["user"], "accounts": [1, 2]}
Respuestas
Section titled “Respuestas”201 Created
Section titled “201 Created”{ "message": "Usuario creado exitosamente", "status": "OK", "payload": { "uuid": 123456789, "name": "Juan", "lastname": "Pérez", "account_id": 1, "status": "active", "created_at": "2025-01-17 10:30:00" }}
404 Not Found (Email ya existe)
Section titled “404 Not Found (Email ya existe)”{ "message": "El email ya está registrado", "status": "ERROR"}
422 Unprocessable Content
Section titled “422 Unprocessable Content”{ "message": "Los datos proporcionados no son válidos", "errors": { "email": [ "El campo email es obligatorio" ], "password": [ "La contraseña debe tener al menos 8 caracteres" ] }}
PUT /api/v1/users/update
Section titled “PUT /api/v1/users/update”Actualiza un usuario existente.
Headers requeridos
Section titled “Headers requeridos”Content-Type: application/jsonAccept: application/jsonAuthorization: Bearer {token}
Parámetros del cuerpo
Section titled “Parámetros del cuerpo”Parámetro | Tipo | Requerido | Descripción |
---|---|---|---|
id | integer | Sí | ID del usuario a actualizar |
name | string | No | Nombre del usuario |
lastname | string | No | Apellido del usuario |
string | No | Email del usuario | |
password | string | No | Nueva contraseña |
account_id | integer | No | ID de la cuenta |
roles | array | No | Array de roles del usuario |
accounts | array | No | Array de cuentas asociadas |
Ejemplo de solicitud
Section titled “Ejemplo de solicitud”{ "id": 123456789, "name": "Juan Carlos", "lastname": "Pérez García", "account_id": 1, "roles": ["admin"], "accounts": [1, 2, 3]}
Respuestas
Section titled “Respuestas”201 Created
Section titled “201 Created”{ "message": "Registro Actualizado", "status": "OK", "payload": { "uuid": 123456789, "name": "Juan Carlos", "last_name": "Pérez García", "phone": null, "status": "active", "manages": { "uuid": 987654321, "name": "Empresa Ejemplo", "ruc": "0123456789001" }, "roles": [ { "id": 1, "name": "admin", "description": "Administrador" } ] }}
PUT /api/v1/users/update-my-information
Section titled “PUT /api/v1/users/update-my-information”Actualiza la información del usuario autenticado.
Headers requeridos
Section titled “Headers requeridos”Content-Type: application/jsonAccept: application/jsonAuthorization: Bearer {token}
Parámetros del cuerpo
Section titled “Parámetros del cuerpo”Parámetro | Tipo | Requerido | Descripción |
---|---|---|---|
name | string | No | Nombre del usuario |
lastname | string | No | Apellido del usuario |
string | No | Email del usuario | |
phone | string | No | Teléfono del usuario |
Ejemplo de solicitud
Section titled “Ejemplo de solicitud”{ "name": "María", "lastname": "González", "phone": "+593987654321"}
Respuestas
Section titled “Respuestas”201 Created
Section titled “201 Created”{ "message": "Registro Actualizado", "status": "OK", "payload": { "uuid": 123456789, "name": "María", "last_name": "González", "phone": "+593987654321", "status": "active" }}
PUT /api/v1/users/update-my-info
Section titled “PUT /api/v1/users/update-my-info”Endpoint alternativo para actualizar la información del usuario autenticado.
Headers requeridos
Section titled “Headers requeridos”Content-Type: application/jsonAccept: application/jsonAuthorization: Bearer {token}
Parámetros del cuerpo
Section titled “Parámetros del cuerpo”Igual que /api/v1/users/update-my-information
Respuestas
Section titled “Respuestas”Igual que /api/v1/users/update-my-information
GET /api/v1/users/:id
Section titled “GET /api/v1/users/:id”Obtiene la información de un usuario específico por su ID.
Headers requeridos
Section titled “Headers requeridos”Accept: application/jsonAuthorization: Bearer {token}
Parámetros de URL
Section titled “Parámetros de URL”Parámetro | Tipo | Requerido | Descripción |
---|---|---|---|
id | integer | Sí | ID del usuario a consultar |
Respuestas
Section titled “Respuestas”201 Created
Section titled “201 Created”{ "message": "Usuario encontrado", "status": "OK", "payload": { "uuid": 123456789, "name": "Juan", "last_name": "Pérez", "phone": "+593987654321", "status": "active", "created_at": "2025-01-17 10:30:00" }}
404 Not Found
Section titled “404 Not Found”{ "message": "Usuario no encontrado", "status": "ERROR"}
GET /api/v1/users/my/information
Section titled “GET /api/v1/users/my/information”Obtiene la información completa del usuario autenticado.
Headers requeridos
Section titled “Headers requeridos”Accept: application/jsonAuthorization: Bearer {token}
Respuestas
Section titled “Respuestas”201 Created
Section titled “201 Created”{ "message": "Información del usuario", "status": "OK", "payload": { "user": { "uuid": 123456789, "name": "Juan", "last_name": "Pérez", "phone": "+593987654321", "status": "active" }, "company": { "uuid": 987654321, "name": "Empresa Ejemplo", "ruc": "0123456789001", "address": "Dirección de la empresa" }, "management": { "uuid": 555666777, "permissions": ["create_documents", "view_reports"] } }}
GET /api/v1/users
Section titled “GET /api/v1/users”Obtiene una lista paginada de todos los usuarios.
Headers requeridos
Section titled “Headers requeridos”Accept: application/jsonAuthorization: Bearer {token}
Parámetros de consulta opcionales
Section titled “Parámetros de consulta opcionales”Parámetro | Tipo | Descripción |
---|---|---|
page | integer | Número de página (por defecto: 1) |
per_page | integer | Elementos por página (por defecto: 15) |
filters | string | Filtros avanzados en formato JSON (ver Sistema de Filtros) |
Ejemplo con filtros avanzados
Section titled “Ejemplo con filtros avanzados”GET /api/v1/users?filters=[{"field":"created_at","condition":"le","value":"2025-01-17"},{"field":"email","condition":"sw","value":"admin"}]
Filtros disponibles para usuarios
Section titled “Filtros disponibles para usuarios”Campo | Descripción | Ejemplo |
---|---|---|
name | Nombre del usuario | {"field":"name","condition":"sw","value":"Juan"} |
last_name | Apellido del usuario | {"field":"last_name","condition":"ew","value":"Pérez"} |
email | Email del usuario | {"field":"email","condition":"ew","value":"@gmail.com"} |
created_at | Fecha de creación | {"field":"created_at","condition":"le","value":"2025-01-17"} |
updated_at | Fecha de actualización | {"field":"updated_at","condition":"ge","value":"2024-01-01"} |
status | Estado del usuario | {"field":"status","condition":"eq","value":"active"} |
Para más información sobre el sistema de filtros, consulta la documentación completa de filtros.
Respuestas
Section titled “Respuestas”200 OK
Section titled “200 OK”{ "message": "Lista de usuarios", "status": "OK", "payload": { "items": [ { "uuid": 123456789, "name": "Juan", "last_name": "Pérez", "status": "active", "created_at": "2025-01-17 10:30:00" }, { "uuid": 987654321, "name": "María", "last_name": "González", "status": "active", "created_at": "2025-01-16 15:20:00" } ], "count": 2, "current_page": 1, "per_page": 15, "total_pages": 1 }}
DELETE /api/v1/users/:id
Section titled “DELETE /api/v1/users/:id”Elimina un usuario del sistema.
Headers requeridos
Section titled “Headers requeridos”Accept: application/jsonAuthorization: Bearer {token}
Parámetros de URL
Section titled “Parámetros de URL”Parámetro | Tipo | Requerido | Descripción |
---|---|---|---|
id | integer | Sí | ID del usuario a eliminar |
Ejemplo
Section titled “Ejemplo”DELETE /api/v1/users/1359194914
Respuestas
Section titled “Respuestas”200 OK
Section titled “200 OK”{ "message": "Usuario eliminado exitosamente", "status": "OK"}
404 Not Found
Section titled “404 Not Found”{ "message": "Usuario no encontrado", "status": "ERROR"}
GET /api/v1/users/my-permissions
Section titled “GET /api/v1/users/my-permissions”Obtiene los permisos del usuario autenticado.
Headers requeridos
Section titled “Headers requeridos”Accept: application/jsonAuthorization: Bearer {token}
Respuestas
Section titled “Respuestas”200 OK
Section titled “200 OK”{ "message": "Permisos del usuario", "status": "OK", "payload": { "permissions": [ "create_documents", "view_reports", "manage_users", "edit_company" ], "roles": [ { "id": 1, "name": "admin", "description": "Administrador del sistema" } ] }}
GET /api/v1/users/me/my-permission
Section titled “GET /api/v1/users/me/my-permission”Endpoint alternativo para obtener los permisos del usuario autenticado.
Headers requeridos
Section titled “Headers requeridos”Accept: application/jsonAuthorization: Bearer {token}
Respuestas
Section titled “Respuestas”Igual que /api/v1/users/my-permissions