<?php

require_once "server_files/config.php";

require_once "server_files/classes/Role.php";
require_once "server_files/classes/SchoolClass.php";
require_once "server_files/classes/Team.php";
require_once "server_files/classes/Tournament.php";
require_once "server_files/classes/User.php";
require_once "server_files/classes/ValidationStatus.php";
require_once "server_files/services/mail.php";
require_once "server_files/utils.php";
require_once "server_files/model.php";

loadUserValues();

if (!isset($_GET["path"]))
	require_once "server_files/403.php";

$path = $_GET["path"];

$ROUTES = [];

# URL paths

$ROUTES["^(|accueil|index|accueil\.php|accueil\.html|accueil\.py|index\.php|index\.html|index\.py)$"] = ["server_files/controllers/index.php"];
$ROUTES["^ajouter_equipe$"] = ["server_files/controllers/ajouter_equipe.php"];
$ROUTES["^ajouter_organisateur$"] = ["server_files/controllers/ajouter_organisateur.php"];
$ROUTES["^ajouter_tournoi$"] = ["server_files/controllers/ajouter_tournoi.php"];
$ROUTES["^confirmer_mail/([a-z0-9]*)/?$"] = ["server_files/controllers/confirmer_mail.php", "token"];
$ROUTES["^connexion/?$"] = ["server_files/controllers/connexion.php"];
$ROUTES["^deconnexion/?$"] = ["server_files/controllers/deconnexion.php"];
$ROUTES["^equipe/([A-Z]{3})/?$"] = ["server_files/controllers/equipe.php", "trigram"];
$ROUTES["^file/[a-z0-9]{64}/?$"] = ["server_files/controllers/view_file.php", "file_id"];
$ROUTES["^informations/([0-9]*)/.*?$"] = ["server_files/controllers/informations.php", "id"];
$ROUTES["^inscription/?$"] = ["server_files/controllers/inscription.php"];
$ROUTES["^mon_compte/?$"] = ["server_files/controllers/mon_compte.php"];
$ROUTES["^mon_equipe/(modifier)/?$"] = ["server_files/controllers/mon_equipe.php", "modifier"];
$ROUTES["^mon_equipe/?$"] = ["server_files/controllers/mon_equipe.php"];
$ROUTES["^rejoindre_equipe/?$"] = ["server_files/controllers/rejoindre_equipe.php"];
$ROUTES["^solutions/?$"] = ["server_files/controllers/solutions.php"];
$ROUTES["^solutions_orga/?$"] = ["server_files/controllers/solutions_orga.php"];
$ROUTES["^syntheses/?$"] = ["server_files/controllers/syntheses.php"];
$ROUTES["^syntheses_orga/?$"] = ["server_files/controllers/syntheses_orga.php"];
$ROUTES["^tournoi/(.*)/(modifier)/?$"] = ["server_files/controllers/tournoi.php", "name", "modifier"];
$ROUTES["^tournoi/(.*)/?$"] = ["server_files/controllers/tournoi.php", "name"];
$ROUTES["^tournois/?$"] = ["server_files/controllers/tournois.php"];

# Assets files

$ROUTES["^favicon\.ico$"] = ["assets/favicon.ico", "image/x-icon"];
$ROUTES["^logo\.svg$"] = ["assets/logo.svg", "image/svg+xml"];
$ROUTES["^style\.css$"] = ["assets/style.css", "text/css"];

foreach ($ROUTES as $route => $file) {
	if (preg_match('#' . $route . '#', $path, $matches)) {
		for ($i = 1; $i < sizeof($file); ++$i)
			$_GET[$file[$i]] = $matches[$i];

		if (!preg_match("#php$#", $file[0])) {
			header("Content-Type: " . $matches[1]);
			readfile($file[0]);
			exit();
		}

		/** @noinspection PhpIncludeInspection */
		require $file[0];
		exit();
	}
}

require_once "server_files/404.php";