You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

103 lines
2.5 KiB

<?php
use App\Configuration;
use App\Enumerators\SessionElement;
use App\Wrappers\SessionWrapper;
use App\Wrappers\TwigWrapper;
require_once __DIR__ . "/../vendor/autoload.php";
SessionWrapper::Start();
// Get the request URI and break it into segments
$requestUri = parse_url($_SERVER["REQUEST_URI"], PHP_URL_PATH);
$requestElements = explode("/", trim($requestUri, "/"));
// Define routing map
$routes = [
"" => '/../Pages/index.php',
"login" => '/../Pages/login.php',
"logout" => '/../Pages/logout.php',
"change-password" => '/../Pages/change-password.php',
"profile" => '/../Pages/profile.php',
"tunes" => '/../Pages/tunes.php',
"tune-sets" => '/../Pages/tune-sets.php',
"dances" => '/../Pages/dances.php',
];
// Handle static and API routes
$excludedRoutes = [
"favicon.ico",
"Static",
"API",
"FormHandling",
];
if (in_array($requestElements[0], $excludedRoutes))
{
return false;
}
// Route handling for top-level pages
if (isset($routes[$requestElements[0]]))
{
require_once __DIR__ . $routes[$requestElements[0]];
return true;
}
if ($requestElements[0] === "tune" && isset($requestElements[1]))
{
$_GET['tune-id'] = $requestElements[1];
if (count($requestElements) === 2)
{
require_once __DIR__ . '/../Pages/tune/uuid.php';
return true;
}
}
elseif ($requestElements[0] === "tune-set" && isset($requestElements[1]))
{
$_GET['tune-set-id'] = $requestElements[1];
if (count($requestElements) === 2)
{
require_once __DIR__ . '/../Pages/tune-set/uuid.php';
return true;
}
$tuneSubRoutes = [
"suggest-variant" => '/../Pages/tune-set/uuid/suggest-variant.php',
"suggest-dance" => '/../Pages/tune-set/uuid/suggest-dance.php',
];
if (isset($tuneSubRoutes[$requestElements[2]])) {
require_once __DIR__ . $tuneSubRoutes[$requestElements[2]];
return true;
}
}
elseif ($requestElements[0] === "dance" && isset($requestElements[1]))
{
$_GET['dance-id'] = $requestElements[1];
if (count($requestElements) === 2)
{
require_once __DIR__ . '/../Pages/dance/uuid.php';
return true;
}
}
elseif ($requestElements[0] === "create" && isset($requestElements[1]))
{
switch($requestElements[1])
{
case "tune":
require_once __DIR__ . '/../Pages/create/tune.php';
return true;
}
}
// Default: route not found
http_response_code(404);
echo "404 Not Found";
return false;