<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;

class CheckPrivateModeMiddleware
{
    public function handle(Request $request, Closure $next)
    {
        $privateModeEnabled = config('app.private_mode');
        $privateModeSecret = config('app.private_mode_secret');
        $userSecretInput = $request->input('secret');
        $secretIsUsable = ! empty($privateModeSecret) && $privateModeSecret === $userSecretInput;

        if ($privateModeEnabled && ! $secretIsUsable) {
            return redirect()->route('maintenance');
        } elseif (! $privateModeEnabled && $request->is('maintenance')) {
            return redirect()->route('index');
        }

        return $next($request);
    }
}