<?php
require_once __DIR__ . '/lib/SessionCookie.php';
require_once __DIR__ . '/lib/FrontendRouter.php';

// Every API endpoint the frontend proxies, and every "clean" URL that maps
// to a page fragment under pages/ (anything not listed here maps 1:1,
// e.g. /profile -> pages/profile.php). See lib/FrontendRouter.php for how
// these are used.
$router = new FrontendRouter(__DIR__, [
    '/api/auth/login' => [
        'methods' => ['POST'],
        'script'  => '/api/auth.php',
    ],
    '/api/auth/logout' => [
        'methods' => ['POST'],
        'handler' => function () {
            SessionCookie::clear();
            http_response_code(204);
        },
    ],
    '/api/users' => [
        'methods' => ['GET', 'POST', 'PUT', 'DELETE'],
        'script'  => '/api/users.php',
    ],
], [
    '/login'           => '/auth/login',
    '/register'        => '/auth/register',
    '/forgot-password' => '/auth/forgot-password',
    '/users'           => '/users',
]);

$uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);

if ($router->dispatch($uri, $_SERVER['REQUEST_METHOD']) === false) {
    return false;
}
