24 ControllerFactory::getController(
"game",
$loader,
$twig)->call(
"showHomePage");
30 ControllerFactory::getController(
"profile",
$loader,
$twig)->call(
"showByPlayer", [
31 "playerUuid" => $_SESSION[
"uuid"]
36$router->put(
'/profile/update-style/:idArticle',
function ($idArticle) use (
$loader,
$twig) {
37 ControllerFactory::getController(
"profile",
$loader,
$twig)->call(
"updateStyle", [
38 "uuidPlayer" => $_SESSION[
"uuid"],
39 "idArticle" => $idArticle,
45 ControllerFactory::getController(
"profile",
$loader,
$twig)->call(
"editPassword", [
46 "newPassword" => rawurldecode($_POST[
"newPassword"]),
53 ControllerFactory::getController(
"auth",
$loader,
$twig)->call(
"showLoginPage");
60 if (isset($_POST[
'email']) && isset($_POST[
'password'])) {
61 ControllerFactory::getController(
"auth",
$loader,
$twig)->call(
"login", [
62 "email" => $_POST[
'email'],
63 "password" => $_POST[
'password'],
64 "rememberMe" => isset($_POST[
'rememberMe']) && $_POST[
'rememberMe'] ===
'true',
65 "cloudflareCaptchaToken" => $_POST[
'cfToken'] ??
null
69 throw new Exception(
"Merci de renseigner une adresse e-mail et un mot de passe valides");
70 }
catch (Exception $e) {
71 MessageHandler::addExceptionParametersToSession($e);
72 ControllerFactory::getController(
"auth",
$loader,
$twig)->call(
"showLoginPage");
77 ControllerFactory::getController(
"auth",
$loader,
$twig)->call(
"logout");
82 ControllerFactory::getController(
"game",
$loader,
$twig)->call(
"showGame", [
"code" => $code]);
86 ControllerFactory::getController(
"game",
$loader,
$twig)->call(
"joinGameWithCode", [
94 ControllerFactory::getController(
"game",
$loader,
$twig)->call(
"quitGame", [
96 "playerUuid" => $_SESSION[
'uuid']
102 ControllerFactory::getController(
"game",
$loader,
$twig)->call(
"joinGameFromSearch", [
109 ControllerFactory::getController(
"game",
$loader,
$twig)->call(
"initGame", [
111 "settings" => json_decode($_POST[
'settings'],
true)
117 ControllerFactory::getController(
"game",
$loader,
$twig)->call(
"changeVisibility", [
119 "isPrivate" => $_POST[
'isPrivate'] ===
'true'
125 ControllerFactory::getController(
"game",
$loader,
$twig)->call(
"createGame", [
131 ControllerFactory::getController(
"shop",
$loader,
$twig)->call(
"show");
136 ControllerFactory::getController(
"basket",
$loader,
$twig)->call(
"show");
141 ControllerFactory::getController(
"basket",
$loader,
$twig)->call(
"addArticleToBasket");
147 ControllerFactory::getController(
"basket",
$loader,
$twig)->call(
"removeArticleBasket", [
"id" => $id]);
152 if (empty($_SESSION[
'basket'])) {
153 MessageHandler::addExceptionParametersToSession(
new UnauthorizedAccessException(
"Votre panier est vide"));
154 header(
'Location: /shop');
157 ControllerFactory::getController(
"shop",
$loader,
$twig)->call(
"showCheckout");
161$router->post(
'/shop/basket/checkout',
function () {
166 ControllerFactory::getController(
"shop",
$loader,
$twig)->call(
"checkPaymentRequirement", array($_POST));
171 ControllerFactory::getController(
"shop",
$loader,
$twig)->call(
"showSuccessPayment", [
"articles" => $_SESSION[
'basket'],
"player" => $_SESSION[
'uuid'],
"paymentType" =>
'card']);
176 ControllerFactory::getController(
"auth",
$loader,
$twig)->call(
"showRegistrationPage");
181 if (isset($_POST[
'username']) && isset($_POST[
'email']) && isset($_POST[
'password']) && isset($_POST[
'passwordConfirm']) && isset($_POST[
'termsOfService']) && isset($_POST[
'privacyPolicy'])) {
182 ControllerFactory::getController(
"auth",
$loader,
$twig)->call(
"register", [
183 "username" => $_POST[
'username'],
184 "email" => $_POST[
'email'],
185 "password" => $_POST[
'password'],
186 "passwordConfirm" => $_POST[
'passwordConfirm'],
187 "termsOfServiceIsChecked" => $_POST[
'termsOfService'] ===
'true',
188 "privacyPolicyIsChecked" => $_POST[
'privacyPolicy'] ===
'true',
189 "cloudflareCaptchaToken" => $_POST[
'cfToken'] ??
null
193 throw new MalformedRequestException(
"Données reçues incomplètes.");
197 ControllerFactory::getController(
"auth",
$loader,
$twig)->call(
"confirmEmail", [
"token" => $token,
"isLoggedIn" => isset($_SESSION[
'uuid'])]);
202 ControllerFactory::getController(
"auth",
$loader,
$twig)->call(
"showForgotPasswordPage");
207 ControllerFactory::getController(
"auth",
$loader,
$twig)->call(
"sendResetPasswordLink", [
"email" => $_POST[
'email'] ??
null]);
212 ControllerFactory::getController(
"auth",
$loader,
$twig)->call(
"showResetPasswordPage", [
"token" => $token]);
217 ControllerFactory::getController(
"auth",
$loader,
$twig)->call(
"resetPassword", [
219 "password" => $_POST[
'password'],
220 "passwordConfirm" => $_POST[
'passwordConfirm']
225 ControllerFactory::getController(
"profile",
$loader,
$twig)->call(
"showByPlayer", [
"playerUuid" => $uuid]);
229$router->put(
'/profile',
function () {
230 echo
"Mise à jour du profil<br/>";
231 echo
"A IMPLEMENTER";
236 ControllerFactory::getController(
"shop",
$loader,
$twig)->call(
"showInvoice", [
"invoiceId" => $id]);
240 ControllerFactory::getController(
"profile",
$loader,
$twig)->call(
"disableAccount", [
"uuid" => $uuid]);
245 ControllerFactory::getController(
"suggestion",
$loader,
$twig)->call(
"sendSuggestion", [
246 "object" => $_POST[
"object"],
247 "suggestion" => $_POST[
'suggestion']
253 ControllerFactory::getController(
"policy",
$loader,
$twig)->call(
"showCgu");
258 ControllerFactory::getController(
"game",
$loader,
$twig)->call(
"getGameInformations", [
"id" => $id]);
263 ControllerFactory::getController(
"dashboard",
$loader,
$twig)->call(
"denySuggestion", [
"id" => $id]);
268 ControllerFactory::getController(
"dashboard",
$loader,
$twig)->call(
"acceptSuggestion", [
"id" => $id]);
273 ControllerFactory::getController(
"dashboard",
$loader,
$twig)->call(
"showDashboard");
278 ControllerFactory::getController(
"dashboard",
$loader,
$twig)->call(
"getSuggestionInfo", [
"id" => $id]);
283 ControllerFactory::getController(
"ranking",
$loader,
$twig)->call(
"showRanking");
287 ControllerFactory::getController(
"profile",
$loader,
$twig)->call(
"getPlayerInformations", [
288 "searchBy" => $_POST[
"searchBy"],
289 "playerUuid" => $_POST[
"data"]
295 ControllerFactory::getController(
"game",
$loader,
$twig)->call(
"endGame", [
297 "token" => $_POST[
'token'] ??
"",
298 "results" => json_decode($_POST[
'results'] ??
"",
true),
303$router->put(
'/profile/update-username/:username',
function ($username) use (
$loader,
$twig) {
304 ControllerFactory::getController(
"profile",
$loader,
$twig)->call(
"updateUsername", [
"username" => $username]);
309 ControllerFactory::getController(
"profile",
$loader,
$twig)->call(
"updateEmail", [
"email" => $_POST[
'newEmail']]);
314 ControllerFactory::getController(
"dashboard",
$loader,
$twig)->call(
"getAllSuggestionsWaiting");
319 ControllerFactory::getController(
"dashboard",
$loader,
$twig)->call(
"getAllReportsWaiting");
324 ControllerFactory::getController(
"profile",
$loader,
$twig)->call(
"reportPlayer", [
325 "object" => match (strtolower($_POST[
'object'])) {
326 "langage" => ReportObject::LANGUAGE,
327 "spam" => ReportObject::SPAM,
328 "lien" => ReportObject::LINKS,
329 "fairplay" => ReportObject::FAIRPLAY,
330 "autres" => ReportObject::OTHER
332 "description" => $_POST[
'description'],
333 "reportedUuid" => $_POST[
'reportedUuid'],
334 "senderUuid" => $_SESSION[
'uuid']
340 ControllerFactory::getController(
"dashboard",
$loader,
$twig)->call(
"getReportInformations", [
"reportId" => $reportId]);
345 ControllerFactory::getController(
"profile",
$loader,
$twig)->call(
"penalizePlayer", [
347 "createdBy" => $_SESSION[
'uuid'],
348 "penalizedUuid" => $_POST[
'penalizedUuid'],
349 "reason" => $_POST[
'reason'],
350 "duration" => $_POST[
'duration'],
351 "durationType" => $_POST[
'durationType'],
352 "penaltyType" => match ($_POST[
'penaltyType']) {
353 "muted" => PenaltyType::MUTED,
354 "banned" => PenaltyType::BANNED,
357 "reportId" => $_POST[
'reportId']
363 ControllerFactory::getController(
"game",
$loader,
$twig)->call(
"isPlayerMuted", [
364 "playerUsername" => $_POST[
'username'],
Classe UnauthorizedAccessException.
Gestion de l'affichage des erreurs.
Classe Router permettant de gérer les routes.
Classe ControllerFactory.
ReportObject
Les 4 thèmes pour les signalements.
PenaltyType
Enumération des types de sanctions.