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