Skip to content

Debug

Endpoints para tareas de mantenimiento, cron jobs y estadísticas de sistema.

Admin Estos endpoints están restringidos únicamente a administradores.

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.

Obtener el estado actual de todos los cron jobs del sistema.

  • URL: /api/v1/debug/cron
  • Método: GET
  • Autenticación Requerida: Sí (Admin)
{
"message": "Estado de cron jobs obtenido",
"data": {
"syncCompletedSessions": {
"lastRun": "2023-10-27T10:00:00Z",
"status": "success",
"duration": 1500
}
}
}
import { hcWithType } from '@vitality-gym/api/client'
const client = hcWithType('http://localhost:3000')
const res = await client.api.v1.debug.cron.$get()

Ejecutar un cron job específico bajo demanda.

  • URL: /api/v1/debug/cron/:name/run
  • Método: POST
  • Autenticación Requerida: Sí (Admin)
  • name: Nombre del cron job. Valores permitidos:
    • syncCompletedSessions
    • updateExpiredMemberships
    • notifyExpiringMemberships
    • cleanupOrphanFiles
    • notifyUpcomingClasses
  • dryRun: true o false. Si es true, ejecuta el job en modo de prueba sin realizar cambios persistentes (si el job lo soporta).
{
"message": "Cron job ejecutado exitosamente: syncCompletedSessions",
"data": {
"success": true,
"executionTime": 1200,
"result": { }
}
}
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'
}
})

Obtener estadísticas sobre el almacenamiento de archivos.

  • URL: /api/v1/debug/uploads/stats
  • Método: GET
  • Autenticación Requerida: Sí (Admin)
{
"message": "Estadísticas de uploads obtenidas",
"data": {
"totalSize": 104857600,
"totalFiles": 150,
"byType": {
"images": 120,
"videos": 30
}
}
}
import { hcWithType } from '@vitality-gym/api/client'
const client = hcWithType('http://localhost:3000')
const res = await client.api.v1.debug.uploads.stats.$get()