up
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
<?php
|
||||
/**
|
||||
* API - Obtener estadísticas de Rate Limiting de Facebook
|
||||
* Fecha: 6 de febrero de 2026
|
||||
*/
|
||||
|
||||
// Configurar manejo de errores
|
||||
error_reporting(E_ALL);
|
||||
ini_set('display_errors', 0);
|
||||
ini_set('log_errors', 1);
|
||||
|
||||
// Cargar config primero (ya incluye el autoloader)
|
||||
require_once __DIR__ . '/../config/config.php';
|
||||
|
||||
// Verificar que la clase exista antes de usarla
|
||||
if (!class_exists('RateLimitMonitor')) {
|
||||
$rateLimitMonitorPath = __DIR__ . '/../services/RateLimitMonitor.php';
|
||||
if (file_exists($rateLimitMonitorPath)) {
|
||||
require_once $rateLimitMonitorPath;
|
||||
} else {
|
||||
header('Content-Type: application/json; charset=utf-8');
|
||||
http_response_code(500);
|
||||
echo json_encode([
|
||||
'success' => false,
|
||||
'error' => 'RateLimitMonitor service not found',
|
||||
'path_checked' => $rateLimitMonitorPath
|
||||
]);
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
// Requerir autenticación
|
||||
requireAuthentication();
|
||||
|
||||
header('Content-Type: application/json; charset=utf-8');
|
||||
header('Access-Control-Allow-Origin: *');
|
||||
header('Access-Control-Allow-Methods: GET');
|
||||
header('Access-Control-Allow-Headers: Content-Type');
|
||||
|
||||
try {
|
||||
$monitor = new RateLimitMonitor();
|
||||
|
||||
$action = $_GET['action'] ?? 'current';
|
||||
|
||||
switch ($action) {
|
||||
case 'current':
|
||||
// Obtener estadísticas actuales
|
||||
$stats = $monitor->getCurrentStats();
|
||||
echo json_encode([
|
||||
'success' => true,
|
||||
'data' => $stats,
|
||||
'timestamp' => time(),
|
||||
'datetime' => date('Y-m-d H:i:s')
|
||||
]);
|
||||
break;
|
||||
|
||||
case 'history':
|
||||
// Obtener historial
|
||||
$type = $_GET['type'] ?? 'app';
|
||||
$limit = min(100, intval($_GET['limit'] ?? 20));
|
||||
|
||||
$history = $monitor->getUsageHistory($type, $limit);
|
||||
echo json_encode([
|
||||
'success' => true,
|
||||
'data' => $history,
|
||||
'type' => $type,
|
||||
'count' => count($history)
|
||||
]);
|
||||
break;
|
||||
|
||||
case 'cleanup':
|
||||
// Ejecutar limpieza (solo admin)
|
||||
$monitor->cleanup();
|
||||
echo json_encode([
|
||||
'success' => true,
|
||||
'message' => 'Limpieza completada'
|
||||
]);
|
||||
break;
|
||||
|
||||
default:
|
||||
http_response_code(400);
|
||||
echo json_encode([
|
||||
'success' => false,
|
||||
'error' => 'Acción no válida. Use: current, history, cleanup'
|
||||
]);
|
||||
}
|
||||
|
||||
} catch (Exception $e) {
|
||||
http_response_code(500);
|
||||
echo json_encode([
|
||||
'success' => false,
|
||||
'error' => $e->getMessage()
|
||||
]);
|
||||
}
|
||||
Reference in New Issue
Block a user