10namespace ComusParty\Controllers;
12use ComusParty\App\MessageHandler;
13use ComusParty\Models\PlayerDAO;
14use ComusParty\Models\ReportDAO;
15use ComusParty\Models\SuggestionDAO;
16use DateMalformedStringException;
18use Twig\Error\LoaderError;
19use Twig\Error\RuntimeError;
20use Twig\Error\SyntaxError;
21use Twig\Loader\FilesystemLoader;
50 $suggestions = $suggestsManager->findAllWaiting();
53 $reports = $reportsManager->findAllWaiting();
55 $template = $this->
getTwig()->load(
'moderator/dashboard.twig');
56 echo $template->render(array(
57 "suggestions" => $suggestions,
70 if ($suggestsManager->deny($id)) {
71 echo MessageHandler::sendJsonMessage(
"La suggestion a bien été refusée");
73 MessageHandler::sendJsonCustomException(500,
"Une erreur est survenue lors du refus de la suggestion");
85 if ($suggestsManager->accept($id)) {
86 echo MessageHandler::sendJsonMessage(
"La suggestion a bien été acceptée");
88 MessageHandler::sendJsonCustomException(500,
"Une erreur est survenue lors de l'acceptation de la suggestion");
102 $suggestion = $suggestsManager->findById($id);
103 echo MessageHandler::sendJsonMessage(
"Informations récupérées", [
105 "id" => $suggestion->getId(),
106 "object" => $suggestion->getObject()->name,
107 "content" => $suggestion->getContent(),
108 "author_username" => $suggestion->getAuthorUsername(),
121 $suggestions = $suggestsManager->findAllWaiting();
122 if (empty($suggestions)) {
123 echo MessageHandler::sendJsonMessage(
"Aucune suggestion en attente", [
124 "suggestions" =>
null,
128 echo MessageHandler::sendJsonMessage(
"Suggestions récupérées", [
129 "suggestions" => array_map(fn($suggestion) => [
130 "id" => $suggestion->getId(),
131 "object" => $suggestion->getObject()->name,
132 "content" => $suggestion->getContent(),
133 "author_username" => $suggestion->getAuthorUsername(),
134 "created_at" => $suggestion->getCreatedAt()->getTimestamp() * 1000,
149 $report = $reportsManager->findById($id);
150 echo MessageHandler::sendJsonMessage(
"Informations récupérées", [
152 "id" => $report->getId(),
153 "object" => $report->getObject()->name,
154 "description" => $report->getDescription(),
155 "author_uuid" => $report->getSenderUuid(),
156 "author_username" => $playerManager->findByUuid($report->getSenderUuid())->getUsername(),
157 "reported_uuid" => $report->getReportedUuid(),
158 "reported_username" => $playerManager->findByUuid($report->getReportedUuid())->getUsername(),
159 "created_at" => $report->getCreatedAt()->getTimestamp() * 1000,
173 $reports = $reportsManager->findAllWaiting();
174 if (empty($reports)) {
175 echo MessageHandler::sendJsonMessage(
"Aucun signalement en attente", [
180 echo MessageHandler::sendJsonMessage(
"Signalements récupérés", [
181 "reports" => array_map(fn($report) => [
182 "id" => $report->getId(),
183 "object" => $report->getObject()->name,
184 "description" => $report->getDescription(),
185 "author_uuid" => $report->getSenderUuid(),
186 "author_username" => (
new PlayerDAO($this->
getPdo()))->findByUuid($report->getSenderUuid())->getUsername(),
187 "reported_uuid" => $report->getReportedUuid(),
188 "reported_username" => (
new PlayerDAO($this->
getPdo()))->findByUuid($report->getReportedUuid())->getUsername(),
189 "created_at" => $report->getCreatedAt()->getTimestamp() * 1000,
Classe ControllerDashboard.
getSuggestionInfo(?int $id)
Récupère les informations à propos d'une sugestion et les renvoi sous format JSON.
getAllSuggestionsWaiting()
Récupère toutes les suggestions en attente et les renvois sous format JSON.
__construct(FilesystemLoader $loader, Environment $twig)
Constructeur de la classe ControllerDashboard.
showDashboard()
Affiche la page d'accueil du dashboard.
getReportInformations(?int $id)
Retourne les informations au format JSON à propos d'un signalement.
denySuggestion(int $id)
Refuse une suggestion et affiche le résultat de l'exécution de la requête en base de données.
getAllReportsWaiting()
Renvoi les informations au format JSON de tous les signalements en attente.
acceptSuggestion(int $id)
Accepte une suggestion et affiche le résultat de l'exécution de la requête en base de données.
getTwig()
Retourne l'attribut twig, correspondant à l'environnement de Twig.
getPdo()
Retourne l'attribut PDO, correspondant à la connexion à la base de données.