Debug
Endpoints para tareas de mantenimiento, cron jobs y estadísticas de sistema.
Admin Estos endpoints están restringidos únicamente a administradores.
Modelos de Datos
Section titled “Modelos de Datos”Nota: El módulo de depuración (debug) es un módulo puramente operativo para el backend y no posee una representación directa de tablas en el esquema de Prisma. Las funciones que gestiona como Cron Jobs operan en memoria y actúan sobre otros módulos.
Endpoints
Section titled “Endpoints”Estado de Cron Jobs
Section titled “Estado de Cron Jobs”Obtener el estado actual de todos los cron jobs del sistema.
- URL:
/api/v1/debug/cron - Método:
GET - Autenticación Requerida: Sí (Admin)
Respuesta
Section titled “Respuesta”{ "message": "Estado de cron jobs obtenido", "data": { "syncCompletedSessions": { "lastRun": "2023-10-27T10:00:00Z", "status": "success", "duration": 1500 } }}Ejemplo de Cliente Hono
Section titled “Ejemplo de Cliente Hono”import { hcWithType } from '@vitality-gym/api/client'
const client = hcWithType('http://localhost:3000')
const res = await client.api.v1.debug.cron.$get()Ejecutar Cron Job Manualmente
Section titled “Ejecutar Cron Job Manualmente”Ejecutar un cron job específico bajo demanda.
- URL:
/api/v1/debug/cron/:name/run - Método:
POST - Autenticación Requerida: Sí (Admin)
Parámetros de Ruta
Section titled “Parámetros de Ruta”name: Nombre del cron job. Valores permitidos:syncCompletedSessionsupdateExpiredMembershipsnotifyExpiringMembershipscleanupOrphanFilesnotifyUpcomingClasses
Parámetros de Consulta (Opcionales)
Section titled “Parámetros de Consulta (Opcionales)”dryRun:trueofalse. Si estrue, ejecuta el job en modo de prueba sin realizar cambios persistentes (si el job lo soporta).
Respuesta
Section titled “Respuesta”{ "message": "Cron job ejecutado exitosamente: syncCompletedSessions", "data": { "success": true, "executionTime": 1200, "result": { } }}Ejemplo de Cliente Hono
Section titled “Ejemplo de Cliente Hono”import { hcWithType } from '@vitality-gym/api/client'
const client = hcWithType('http://localhost:3000')
const res = await client.api.v1.debug.cron[':name'].run.$post({ param: { name: 'syncCompletedSessions' }, query: { dryRun: 'true' }})Estadísticas de Archivos Subidos
Section titled “Estadísticas de Archivos Subidos”Obtener estadísticas sobre el almacenamiento de archivos.
- URL:
/api/v1/debug/uploads/stats - Método:
GET - Autenticación Requerida: Sí (Admin)
Respuesta
Section titled “Respuesta”{ "message": "Estadísticas de uploads obtenidas", "data": { "totalSize": 104857600, "totalFiles": 150, "byType": { "images": 120, "videos": 30 } }}Ejemplo de Cliente Hono
Section titled “Ejemplo de Cliente Hono”import { hcWithType } from '@vitality-gym/api/client'
const client = hcWithType('http://localhost:3000')
const res = await client.api.v1.debug.uploads.stats.$get()