10namespace ComusParty\Models;
12use DateMalformedStringException;
63 $stmt = $this->pdo->prepare(
64 'INSERT INTO ' .
DB_PREFIX .
'report (object, description, treated_by, reported_uuid, sender_uuid, created_at, updated_at)
65 VALUES (:object, :description, :treated_by, :reported_uuid, :sender_uuid, :created_at, :updated_at)'
68 $stmt->bindValue(
':description', $report->
getDescription(), PDO::PARAM_STR);
69 $stmt->bindValue(
':treated_by', $report->
getTreatedBy(), PDO::PARAM_STR);
70 $stmt->bindValue(
':reported_uuid', $report->
getReportedUuid(), PDO::PARAM_STR);
71 $stmt->bindValue(
':sender_uuid', $report->
getSenderUuid(), PDO::PARAM_STR);
72 $stmt->bindValue(
':created_at', $report->
getCreatedAt()->format(
'Y-m-d H:i:s'), PDO::PARAM_STR);
73 $stmt->bindValue(
':updated_at', $report->
getUpdatedAt()->format(
'Y-m-d H:i:s'), PDO::PARAM_STR);
74 return $stmt->execute();
84 return match ($reportObject) {
85 ReportObject::LANGUAGE =>
'language',
86 ReportObject::SPAM =>
'spam',
87 ReportObject::LINKS =>
'links',
88 ReportObject::FAIRPLAY =>
'fairplay',
100 $stmt = $this->pdo->prepare(
103 WHERE treated_by IS NULL'
106 $stmt->setFetchMode(PDO::FETCH_ASSOC);
107 $reportsTab = $stmt->fetchAll();
124 foreach ($data as $row) {
125 $reports[] = $this->
hydrate($row);
139 $report->setId($data[
'id']);
141 match ($data[
'object']) {
142 'language' => ReportObject::LANGUAGE,
143 'spam' => ReportObject::SPAM,
144 'links' => ReportObject::LINKS,
145 'fairplay' => ReportObject::FAIRPLAY,
146 default => ReportObject::OTHER
149 $report->setDescription($data[
'description']);
150 $report->setTreatedBy($data[
'treated_by']);
151 $report->setReportedUuid($data[
'reported_uuid']);
152 $report->setSenderUuid($data[
'sender_uuid']);
153 $report->setCreatedAt(
new DateTime($data[
'created_at']));
154 $report->setUpdatedAt(
new DateTime($data[
'updated_at']));
166 $stmt = $this->pdo->prepare(
171 $stmt->bindValue(
':id', $id, PDO::PARAM_INT);
173 $stmt->setFetchMode(PDO::FETCH_ASSOC);
174 $report = $stmt->fetch();
178 return $this->
hydrate($report);
187 $stmt = $this->pdo->prepare(
189 SET object = :object, description = :description, treated_by = :treated_by, reported_uuid = :reported_uuid
190 , sender_uuid = :sender_uuid, updated_at = NOW()
194 $stmt->bindValue(
':description', $report->
getDescription(), PDO::PARAM_STR);
195 $stmt->bindValue(
':reported_uuid', $report->
getReportedUuid(), PDO::PARAM_STR);
196 $stmt->bindValue(
':sender_uuid', $report->
getSenderUuid(), PDO::PARAM_STR);
197 $stmt->bindValue(
':treated_by', $report->
getTreatedBy(), PDO::PARAM_STR);
198 $stmt->bindValue(
':id', $report->
getId(), PDO::PARAM_INT);
insert(Report $report)
Insère un signalement en base de données.
update(Report $report)
Met à jour un signalement en base de données.
hydrate(array $data)
Hydrate un objet Report avec les valeurs du tableau associatif passé en paramètre.
getPdo()
Retourne la connexion à la base de données.
findById(int $id)
Renvoi un signalement à partir de son ID.
setPdo(?PDO $pdo)
Modifie la connexion à la base de données.
findAllWaiting()
Récupère tous les signalements en base de données qui ne sont pas traités.
__construct(?PDO $pdo)
Le constructeur de la classe PlayerDAO.
hydrateMany(array $data)
Hydrate un tableau d'objets Report avec les valeurs des tableaux associatifs du tableau passé en para...
transformReportObjectToString(ReportObject $reportObject)
Transforme un objet ReportObject en string.
getCreatedAt()
Retourne la date de création du signalement.
getId()
Retourne l'identifiant du signalement.
getSenderUuid()
Retourne l'UUID du joueur ayant effectué le signalement.
getDescription()
Retourne la description du signalement.
getTreatedBy()
Retourne l'UUID du modérateur ayant traité le signalement.
getUpdatedAt()
Retourne la date de mise à jour du signalement.
getObject()
Retourne l'objet du signalement.
getReportedUuid()
Retourne l'UUID du joueur signalé dans le signalement.
ReportObject
Les 4 thèmes pour les signalements.
const DB_PREFIX
Préfixe des tables de la base de données.