<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;

class ForceHttps
{
    public function handle(Request $request, Closure $next)
    {
        // En production, forcer HTTPS même si on arrive en HTTP.
        // On exclut les environnements local et testing (pas de TLS, et
        // la redirection casserait la suite de tests automatisés / CI).
        if (! app()->environment(['local', 'testing']) && ! $request->isSecure()) {
            return redirect(
                str_replace('http://', 'https://', $request->url()),
                308
            )->send();
        }

        return $next($request);
    }
}
