<?php
declare(strict_types=1);

namespace PSLauncher\Routes;

use PSLauncher\Response;

final class Manifest
{
    public static function handle(array $config): void
    {
        $file = dirname(__DIR__, 2) . '/manifest/versions.json';
        if (!is_file($file)) {
            Response::error('manifest_missing', 'versions.json not found on server', 404);
        }
        // Cache court pour absorber les pics, doit être revalidé pour ne pas masquer une nouvelle version
        header('Cache-Control: public, max-age=300, must-revalidate');
        header('ETag: "' . md5_file($file) . '"');
        header('Content-Type: application/json; charset=utf-8');
        header('Content-Length: ' . filesize($file));
        readfile($file);
    }
}
