From 9c62d676e9d20e3ed566145ef5fe67fafe4fb5ce Mon Sep 17 00:00:00 2001 From: galaxyoyo Date: Thu, 5 Sep 2019 19:07:59 +0200 Subject: [PATCH] =?UTF-8?q?Cr=C3=A9ation=20de=20quelques=20classes=20en=20?= =?UTF-8?q?vue=20d'une=20restructuration=20du=20code?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server_files/classes/role.php | 38 +++ server_files/classes/team.php | 148 +++++++++ server_files/classes/tournament.php | 186 ++++++++++++ server_files/classes/user.php | 334 +++++++++++++++++++++ server_files/classes/validation_status.php | 32 ++ 5 files changed, 738 insertions(+) create mode 100644 server_files/classes/role.php create mode 100644 server_files/classes/team.php create mode 100644 server_files/classes/tournament.php create mode 100644 server_files/classes/user.php create mode 100644 server_files/classes/validation_status.php diff --git a/server_files/classes/role.php b/server_files/classes/role.php new file mode 100644 index 0000000..7bb1ab6 --- /dev/null +++ b/server_files/classes/role.php @@ -0,0 +1,38 @@ +prepare("SELECT * FROM `teams` WHERE `id` = ?;"); + $req->execute([htmlspecialchars($id)]); + $data = $req->fetch(); + + if ($data === false) + throw new InvalidArgumentException("L'équipe spécifiée n'existe pas."); + + $this->id = $id; + $this->name = $data["name"]; + $this->trigram = $data["trigram"]; + $this->tournament = $data["tournament"]; + $this->encadrants = [$data["encadrant_1"], $data["encadrant_2"]]; + $this->participants = [$data["participant_1"], $data["participant_2"], $data["participant_3"], $data["participant_4"], $data["participant_5"], $data["participant_6"]]; + $this->inscription_date = $data["inscription_date"]; + $this->validation_status = ValidationStatus::fromName($data["validation_status"]); + $this->final_selection = $data["final_selection"] == true; + $this->access_code = $data["access_code"]; + $this->year = $data["year"]; + } + + public function getId() + { + return $this->id; + } + + public function getName() + { + return $this->name; + } + + public function setName($name) + { + global $DB; + $this->name = $name; + $DB->prepare("UPDATE `teams` SET `name` = ? WHERE `id` = ?;")->execute([$name, $this->id]); + } + + public function getTrigram() + { + return $this->trigram; + } + + public function setTrigram($trigram) + { + global $DB; + $this->trigram = $trigram; + $DB->prepare("UPDATE `teams` SET `trigram` = ? WHERE `id` = ?;")->execute([$trigram, $this->id]); + } + + public function getTournamentId() + { + return $this->tournament; + } + + public function setTournamentId($tournament) + { + global $DB; + $this->tournament = $tournament; + $DB->prepare("UPDATE `teams` SET `tournament` = ? WHERE `id` = ?;")->execute([$tournament, $this->id]); + } + + public function getEncadrants() + { + return $this->encadrants; + } + + public function setEncadrant($i, $encadrant) + { + global $DB; + $this->encadrants[$i - 1] = $encadrant; + /** @noinspection SqlResolve */ + $DB->prepare("UPDATE `teams` SET `encadrant_$i` = ? WHERE `id` = ?;")->execute([$encadrant, $this->id]); + } + + public function getParticipants() + { + return $this->participants; + } + + public function setParticipant($i, $participant) + { + global $DB; + $this->participants[$i - 1] = $participant; + /** @noinspection SqlResolve */ + $DB->prepare("UPDATE `teams` SET `participant_$i` = ? WHERE `id` = ?;")->execute([$participant, $this->id]); + } + + public function getInscriptionDate() + { + return $this->inscription_date; + } + + public function getValidationStatus() + { + return $this->validation_status; + } + + public function setValidationStatus($status) + { + global $DB; + $this->validation_status = $status; + /** @noinspection PhpUndefinedMethodInspection */ + $DB->prepare("UPDATE `teams` SET `validation_status` = ? WHERE `id` = ?;")->execute([$status->getName(), $this->id]); + } + + public function isSelectedForFinal() + { + return $this->final_selection; + } + + public function selectForFinal($selected) + { + global $DB; + $this->final_selection = $selected; + $DB->prepare("UPDATE `teams` SET `final_selection` = ? WHERE `id` = ?;")->execute([$selected, $this->id]); + } + + public function getAccessCode() + { + return $this->access_code; + } + + public function getYear() + { + return $this->year; + } +} diff --git a/server_files/classes/tournament.php b/server_files/classes/tournament.php new file mode 100644 index 0000000..748cca8 --- /dev/null +++ b/server_files/classes/tournament.php @@ -0,0 +1,186 @@ +prepare("SELECT * FROM `tournaments` WHERE `id` = ?;"); + $req->execute([htmlspecialchars($id)]); + $data = $req->fetch(); + + if ($data === false) + throw new InvalidArgumentException("Le tournoi spécifié n'existe pas."); + + $this->id = $id; + $this->name = $data["name"]; + $this->size = $data["size"]; + $this->place = $data["place"]; + $this->price = $data["price"]; + $this->description = $data["description"]; + $this->date_start = $data["date_start"]; + $this->date_end = $data["date_end"]; + $this->date_inscription = $data["date_inscription"]; + $this->date_solutions = $data["date_solutions"]; + $this->date_syntheses = $data["date_syntheses"]; + $this->final = $data["final"] == true; + $this->year = $data["year"]; + } + + public function getId() + { + return $this->id; + } + + public function getName() + { + return $this->name; + } + + public function setName($name) + { + global $DB; + $this->name = $name; + $DB->prepare("UPDATE `tournaments` SET `name` = ? WHERE `id` = ?;")->execute([$name, $this->id]); + } + + public function getSize() + { + return $this->size; + } + + public function setSize($size) + { + global $DB; + $this->size = $size; + $DB->prepare("UPDATE `tournaments` SET `size` = ? WHERE `id` = ?;")->execute([$size, $this->id]); + } + + public function getPlace() + { + return $this->place; + } + + public function setPlace($place) + { + global $DB; + $this->place = $place; + $DB->prepare("UPDATE `tournaments` SET `place` = ? WHERE `id` = ?;")->execute([$place, $this->id]); + } + + public function getPrice() + { + return $this->price; + } + + public function setPrice($price) + { + global $DB; + $this->price = $price; + $DB->prepare("UPDATE `tournaments` SET `price` = ? WHERE `id` = ?;")->execute([$price, $this->id]); + } + + public function getDescription() + { + return $this->description; + } + + public function setDescription($desc) + { + global $DB; + $this->description = $desc; + $DB->prepare("UPDATE `tournaments` SET `description` = ? WHERE `id` = ?;")->execute([$desc, $this->id]); + } + + public function getStartDate() + { + return $this->date_start; + } + + public function setStartDate($date) + { + global $DB; + $this->date_start = $date; + $DB->prepare("UPDATE `tournaments` SET `date_start` = ? WHERE `id` = ?;")->execute([$date, $this->id]); + } + + public function getEndDate() + { + return $this->date_end; + } + + public function setEndDate($date) + { + global $DB; + $this->date_end = $date; + $DB->prepare("UPDATE `tournaments` SET `date_end` = ? WHERE `id` = ?;")->execute([$date, $this->id]); + } + + public function getInscriptionDate() + { + return $this->date_inscription; + } + + public function setInscriptionDate($date) + { + global $DB; + $this->date_inscription = $date; + $DB->prepare("UPDATE `tournaments` SET `date_inscription` = ? WHERE `id` = ?;")->execute([$date, $this->id]); + } + + public function getSolutionsDate() + { + return $this->date_solutions; + } + + public function setSolutionsDate($date) + { + global $DB; + $this->date_solutions = $date; + $DB->prepare("UPDATE `tournaments` SET `date_solutions` = ? WHERE `id` = ?;")->execute([$date, $this->id]); + } + + public function getSynthesesDate() + { + return $this->date_syntheses; + } + + public function setSynthesesDate($date) + { + global $DB; + $this->date_syntheses = $date; + $DB->prepare("UPDATE `tournaments` SET `date_syntheses` = ? WHERE `id` = ?;")->execute([$date, $this->id]); + } + + public function isFinal() + { + return $this->final; + } + + public function setFinal($final) + { + global $DB; + $this->final = $final; + $DB->prepare("UPDATE `tournaments` SET `final` = ? WHERE `id` = ?;")->execute([$final, $this->id]); + } + + public function getYear() + { + return $this->year; + } +} \ No newline at end of file diff --git a/server_files/classes/user.php b/server_files/classes/user.php new file mode 100644 index 0000000..692c678 --- /dev/null +++ b/server_files/classes/user.php @@ -0,0 +1,334 @@ +prepare("SELECT * FROM `users` WHERE `id` = ?;"); + $req->execute([htmlspecialchars($id)]); + $data = $req->fetch(); + + if ($data === false) + throw new InvalidArgumentException("L'utilisateur spécifié n'existe pas."); + + $this->id = $id; + $this->email = $data["email"]; + $this->pwd_hash = $data["pwd_hash"]; + $this->surname = $data["surname"]; + $this->first_name = $data["first_name"]; + $this->birth_date = $data["birth_date"]; + $this->gender = $data["gender"]; + $this->address = $data["address"]; + $this->postal_code = $data["postal_code"]; + $this->city = $data["city"]; + $this->country = $data["country"]; + $this->phone_number = $data["phone_number"]; + $this->school = $data["school"]; + $this->class = $data["class"]; + $this->responsible_name = $data["responsible_name"]; + $this->responsible_phone = $data["responsible_phone"]; + $this->responsible_email = $data["responsible_email"]; + $this->description = $data["description"]; + $this->role = Role::fromName($data["role"]); + $this->team_id = $data["team_id"]; + $this->year = $data["year"]; + $this->confirm_email = $data["confirm_email"]; + $this->forgotten_password = $data["forgotten_password"]; + + } + + public function getEmail() + { + return $this->email; + } + + public function setEmail($email) + { + global $DB; + $this->email = $email; + $DB->prepare("UPDATE `users` SET `email` = ?, WHERE `id` = ?;")->execute([$email, $this->getId()]); + } + + public function getId() + { + return $this->id; + } + + public function checkPassword($password) + { + return password_verify($password, $this->pwd_hash); + } + + public function setPassword($password) + { + $this->setPasswordHash(password_hash($password, PASSWORD_BCRYPT)); + } + + private function setPasswordHash($password_hash) + { + global $DB; + $this->pwd_hash = $password_hash; + $DB->prepare("UPDATE `users` SET `pwd_hash` = ?, WHERE `id` = ?;")->execute([$password_hash, $this->getId()]); + } + + public function getSurname() + { + return $this->surname; + } + + public function setSurname($surname) + { + global $DB; + $this->surname = $surname; + $DB->prepare("UPDATE `users` SET `surname` = ?, WHERE `id` = ?;")->execute([$surname, $this->getId()]); + } + + public function getFirstName() + { + return $this->first_name; + } + + public function setFirstName($first_name) + { + global $DB; + $this->first_name = $first_name; + $DB->prepare("UPDATE `users` SET `first_name` = ?, WHERE `id` = ?;")->execute([$first_name, $this->getId()]); + } + + public function getBirthDate() + { + return $this->birth_date; + } + + public function setBirthDate($birth_date) + { + global $DB; + $this->birth_date = $birth_date; + $DB->prepare("UPDATE `users` SET `birth_date` = ?, WHERE `id` = ?;")->execute([$birth_date, $this->getId()]); + } + + public function getGender() + { + return $this->gender; + } + + public function setGender($gender) + { + global $DB; + $this->gender = $gender; + $DB->prepare("UPDATE `users` SET `email` = ?, WHERE `id` = ?;")->execute([$gender, $this->getId()]); + } + + public function getAddress() + { + return $this->address; + } + + public function setAddress($address) + { + global $DB; + $this->address = $address; + $DB->prepare("UPDATE `users` SET `address` = ?, WHERE `id` = ?;")->execute([$address, $this->getId()]); + } + + public function getPostalCode() + { + return $this->postal_code; + } + + public function setPostalCode($postal_code) + { + global $DB; + $this->postal_code = $postal_code; + $DB->prepare("UPDATE `users` SET `postal_code` = ?, WHERE `id` = ?;")->execute([$postal_code, $this->getId()]); + } + + public function getCity() + { + return $this->city; + } + + public function setCity($city) + { + global $DB; + $this->city = $city; + $DB->prepare("UPDATE `users` SET `city` = ?, WHERE `id` = ?;")->execute([$city, $this->getId()]); + } + + public function getCountry() + { + return $this->country; + } + + public function setCountry($country) + { + global $DB; + $this->country = $country; + $DB->prepare("UPDATE `users` SET `country` = ?, WHERE `id` = ?;")->execute([$country, $this->getId()]); + } + + public function getPhoneNumber() + { + return $this->phone_number; + } + + public function setPhoneNumber($phone_number) + { + global $DB; + $this->phone_number = $phone_number; + $DB->prepare("UPDATE `users` SET `phone_number` = ?, WHERE `id` = ?;")->execute([$phone_number, $this->getId()]); + } + + public function getSchool() + { + return $this->school; + } + + public function setSchool($school) + { + global $DB; + $this->school = $school; + $DB->prepare("UPDATE `users` SET `school` = ?, WHERE `id` = ?;")->execute([$school, $this->getId()]); + } + + public function getClass() + { + return $this->class; + } + + public function setClass($class) + { + global $DB; + $this->class = $class; + $DB->prepare("UPDATE `users` SET `class` = ?, WHERE `id` = ?;")->execute([$class, $this->getId()]); + } + + public function getResponsibleName() + { + return $this->responsible_name; + } + + public function setResponsibleName($responsible_name) + { + global $DB; + $this->responsible_name = $responsible_name; + $DB->prepare("UPDATE `users` SET `responsible_name` = ?, WHERE `id` = ?;")->execute([$responsible_name, $this->getId()]); + } + + public function getResponsiblePhone() + { + return $this->responsible_phone; + } + + public function setResponsiblePhone($responsible_phone) + { + global $DB; + $this->responsible_phone = $responsible_phone; + $DB->prepare("UPDATE `users` SET `responsible_phone` = ?, WHERE `id` = ?;")->execute([$responsible_phone, $this->getId()]); + } + + public function getResponsibleEmail() + { + return $this->responsible_email; + } + + public function setResponsibleEmail($responsible_email) + { + global $DB; + $this->responsible_email = $responsible_email; + $DB->prepare("UPDATE `users` SET `responsible_email` = ?, WHERE `id` = ?;")->execute([$responsible_email, $this->getId()]); + } + + public function getDescription() + { + return $this->description; + } + + public function setDescription($desc) + { + global $DB; + $this->description = $desc; + $DB->prepare("UPDATE `users` SET `description` = ?, WHERE `id` = ?;")->execute([$desc, $this->getId()]); + } + + public function getRole() + { + return $this->role; + } + + public function setRole($role) + { + global $DB; + $this->role = $role; + /** @noinspection PhpUndefinedMethodInspection */ + $DB->prepare("UPDATE `users` SET `email` = ?, WHERE `id` = ?;")->execute([$role->getName(), $this->getId()]); + } + + public function getTeamId() + { + return $this->team_id; + } + + public function setTeamId($team_id) + { + global $DB; + $this->team_id = $team_id; + $DB->prepare("UPDATE `users` SET `team_id` = ?, WHERE `id` = ?;")->execute([$team_id, $this->getId()]); + } + + public function getYear() + { + return $this->year; + } + + public function getConfirmEmailToken() + { + return $this->confirm_email; + } + + public function setConfirmEmailToken($token) + { + global $DB; + $this->confirm_email = $token; + $DB->prepare("UPDATE `users` SET `confirm_email` = ?, WHERE `id` = ?;")->execute([$token, $this->getId()]); + } + + public function getForgottenPasswordToken() + { + return $this->forgotten_password; + } + + public function setForgottenPasswordToken($token) + { + global $DB; + $this->forgotten_password = $token; + $DB->prepare("UPDATE `users` SET `forgotten_password` = ?, WHERE `id` = ?;")->execute([$token, $this->getId()]); + } +} \ No newline at end of file diff --git a/server_files/classes/validation_status.php b/server_files/classes/validation_status.php new file mode 100644 index 0000000..be67370 --- /dev/null +++ b/server_files/classes/validation_status.php @@ -0,0 +1,32 @@ +