<?php

header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
header("Access-Control-Allow-Headers: Content-Type, Authorization");

header('Content-Type: application/json');

header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Pragma: no-cache");
header("Expires: 0");

$documentRoot = realpath(__DIR__ . '/../..');
$logFile = $documentRoot . "/php/api/log_encuesta.json";

//$logFile = '/var/www/vhosts/cst.cat/subdomains/pefir/httpdocs/php/api/log_encuesta.json';

if (file_exists($logFile)) {
    $jsonContent = file_get_contents($logFile);
    $logs = json_decode($jsonContent, true);

    // Verificar si se han proporcionado los parámetros startDate y endDate
    $startDate = isset($_GET['startDate']) ? $_GET['startDate'] : null;
    $endDate = isset($_GET['endDate']) ? $_GET['endDate'] : null;

    if ($startDate && $endDate) {
        // Filtrar los logs por rango de fechas
        $filteredLogs = array_filter($logs, function($log) use ($startDate, $endDate) {
            // Extraer la parte de la fecha (día/mes/año) del campo "timestamp"
            $logDate = isset($log["timestamp"]) ? explode(',', $log["timestamp"])[0] : null;

            // Convertir las fechas a formato timestamp para la comparación
            $logTimestamp = strtotime(str_replace('/', '-', $logDate)); // Convertir logDate a timestamp
            $startTimestamp = strtotime(str_replace('/', '-', $startDate)); // Convertir startDate a timestamp
            $endTimestamp = strtotime(str_replace('/', '-', $endDate)); // Convertir endDate a timestamp

            // Comparar la fecha del log con el rango especificado
            return $logTimestamp && $logTimestamp >= $startTimestamp && $logTimestamp <= $endTimestamp;
        });

        echo json_encode(array_values($filteredLogs)); // Devuelve los logs filtrados
    } else {
        echo json_encode($logs); // Devuelve todos los logs si no se proporcionan startDate y endDate
    }
} else {
    echo json_encode(['status' => 'error', 'message' => 'File not found']);
}
?>
