<?php
// API-sleutel en basis-URL
$apiKey = "je eigen API key";// Plaats hier je eigen API-sleutel (zie voor meer info https://developer.dataplatform.knmi.nl/open-data-api#token )
$baseUrl = "https://api.dataplatform.knmi.nl/open-data/v1/datasets/short_term_weather_forecast/versions/1.0/files";

// Queryparameters
$queryParams = http_build_query([
    'maxKeys' => 15,    // Maximaal aantal bestanden
    'sorting' => 'desc' // Sorteer op aflopende volgorde
]);

// Voeg queryparameters toe aan de URL
$urlWithParams = $baseUrl . '?' . $queryParams;

// Stap 1: Haal de lijst met bestanden op
$headers = [
    "accept: application/json",
    "Authorization: Bearer $apiKey"
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $urlWithParams);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);

$data = json_decode($response, true);

if (isset($data['files']) && !empty($data['files'])) {
    // Stap 2: Zoek het meest recente bestand
    $latestFile = null;
    foreach ($data['files'] as $file) {
        if (strpos($file['filename'], '.html') !== false) { // Alleen HTML-bestanden
            if ($latestFile === null || $file['created'] > $latestFile['created']) {
                $latestFile = $file;
            }
        }
    }

    if ($latestFile) {
        // Stap 3: Haal de download-URL van het meest recente bestand op
        $fileUrlEndpoint = $baseUrl . "/" . urlencode($latestFile['filename']) . "/url";

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $fileUrlEndpoint);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $fileUrlResponse = curl_exec($ch);
        curl_close($ch);

        $fileUrlData = json_decode($fileUrlResponse, true);

        if (isset($fileUrlData['temporaryDownloadUrl'])) {
            $downloadUrl = $fileUrlData['temporaryDownloadUrl'];

            // Stap 4: Download en toon de HTML-inhoud
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $downloadUrl);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            $htmlContent = curl_exec($ch);
            curl_close($ch);

            // Toon de HTML
            echo $htmlContent;
        } else {
            echo "Download-URL niet gevonden.";
        }
    } else {
        echo "Geen HTML-bestanden gevonden.";
    }
} else {
    echo "Geen bestanden gevonden in de API-respons.";
}
?>
