10namespace ComusParty\Models;
12use DateMalformedStringException;
62 $stmt = $this->pdo->prepare(
'INSERT INTO ' .
DB_PREFIX .
'suggestion (object, content, author_uuid) VALUES (:object, :content, :author_uuid)');
63 $object = match ($suggestion->
getObject()) {
64 SuggestObject::BUG =>
'bug',
65 SuggestObject::GAME =>
'jeu',
66 SuggestObject::UI =>
'ui',
71 $stmt->bindParam(
':object', $object);
72 $stmt->bindParam(
':content', $content);
73 $stmt->bindParam(
':author_uuid', $authorUuid);
74 return $stmt->execute();
83 $stmt = $this->pdo->prepare(
84 'SELECT s.*, p.username
86 JOIN ' .
DB_PREFIX .
'player p ON s.author_uuid = p.uuid
87 WHERE s.treated_by IS NULL'
90 $stmt->setFetchMode(PDO::FETCH_ASSOC);
91 $suggestsTab = $stmt->fetchAll();
108 foreach ($suggestsTab as $suggestTab) {
109 $suggests[] = $this->
hydrate($suggestTab);
124 $suggestion->setId($data[
'id']);
125 $suggestion->setObject(
126 match ($data[
'object']) {
127 'bug' => SuggestObject::BUG,
128 'jeu' => SuggestObject::GAME,
129 'ui' => SuggestObject::UI,
133 $suggestion->setContent($data[
'content']);
134 $suggestion->setAuthorUuid($data[
'author_uuid']);
135 $suggestion->setCreatedAt(
new DateTime($data[
'created_at']));
136 $suggestion->setAuthorUsername($data[
'username']);
148 public function deny(?
int $id): bool
150 $stmt = $this->pdo->prepare(
'UPDATE ' .
DB_PREFIX .
'suggestion SET treated_by = :treated_by WHERE id = :id');
151 $stmt->bindParam(
':treated_by', $_SESSION[
'uuid']);
152 $stmt->bindParam(
':id', $id);
154 return $stmt->execute();
168 $stmt = $this->pdo->prepare(
'UPDATE ' .
DB_PREFIX .
'suggestion SET treated_by = :treated_by, accepted = 1 WHERE id = :id');
169 $stmt->bindParam(
':treated_by', $_SESSION[
'uuid']);
170 $stmt->bindParam(
':id', $id);
172 return $stmt->execute();
183 $stmt = $this->pdo->prepare(
184 'SELECT s.*, p.username
186 JOIN ' .
DB_PREFIX .
'player p ON s.author_uuid = p.uuid
189 $stmt->bindParam(
':id', $id);
191 $stmt->setFetchMode(PDO::FETCH_ASSOC);
192 $suggestTab = $stmt->fetch();
196 return $this->
hydrate($suggestTab);
hydrate(array $data)
Hydrate un tableau de données en une suggestion.
hydrateMany(array $suggestsTab)
Hydrate un tableau de données en plusieurs suggestions.
create(Suggestion $suggestion)
Insert une suggestion en base de données et retourne le résultat de l'exécution.
getPdo()
Retourne la connexion à la base de données.
accept(?int $id)
Accepte une suggestio en modifiant ses attributs en base de données et retourne le résultat de l'exéc...
findById(?int $id)
Récupère une suggestion en base de données par son identifiant.
setPdo(?PDO $pdo)
Modifie la connexion à la base de données.
findAllWaiting()
Récupère toutes les suggestions en base de données qui ne sont pas traitées.
__construct(?PDO $pdo)
Le constructeur de la classe SuggestionDAO.
deny(?int $id)
Refuse une suggestio en modifiant un attribut en base de données et retourne le résultat de l'exécuti...
getContent()
Permet de récupérer le contenu de la suggestion.
getObject()
Permet de récupérer l'objet de la suggestion.
getAuthorUuid()
Permet de récupérer l'UUID de l'auteur de la suggestion.
@ OTHER
Langage / propos incorrect.
const DB_PREFIX
Préfixe des tables de la base de données.