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
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;
|
|
|