diff --git a/RestControllers/likesController.php b/RestControllers/LikesController.php similarity index 76% rename from RestControllers/likesController.php rename to RestControllers/LikesController.php index 686185c..795d291 100644 --- a/RestControllers/likesController.php +++ b/RestControllers/LikesController.php @@ -5,7 +5,7 @@ * @author Pierre HUBERT */ -class likesController { +class LikesController { /** * Update a specific component like @@ -80,4 +80,23 @@ class likesController { return array("success" => "Like status updated."); } + + /** + * Turn a UserLike object into valid API entry + * + * @param UserLike $object The object to convert + * @return array Valid API database entry + */ + public static function UserLikeToAPI(UserLike $object) : array { + + $data = array(); + + $data["id"] = $object->get_id(); + $data["userID"] = $object->get_userID(); + $data["time_sent"] = $object->get_time_sent(); + $data["elem_type"] = $object->get_elem_type(); + $data["elem_id"] = $object->get_elem_id(); + + return $data; + } } \ No newline at end of file diff --git a/classes/components/likes.php b/classes/components/likes.php index b6ba5d2..f753b9f 100644 --- a/classes/components/likes.php +++ b/classes/components/likes.php @@ -111,6 +111,29 @@ class Likes { } + /** + * Get all the likes of a user, as UserLike objects + * + * @param int $userID The ID of the target user + * @return array The list of likes + */ + public function get_all_user(int $userID) : array { + + //Query the database + $table = self::LIKES_TABLE; + $condition = "WHERE ID_personne = ?"; + $condValues = array($userID); + + $entries = cs()->db->select($table, $condition, $condValues); + $likes = array(); + + //Process the list of likes + foreach($entries as $entry) + $likes[] = $this->dbToUserLike($entry); + + return $likes; + } + /** * Delete all the likes associated to an element * @@ -146,6 +169,25 @@ class Likes { } + + /** + * Turn database entry into UserLike object + * + * @param array $entry The database entry + * @return UserLike Generated user like object + */ + private static function dbToUserLike(array $entry) : UserLike { + $like = new UserLike(); + + $like->set_id($entry["ID"]); + $like->set_userID($entry["ID_personne"]); + $like->set_time_sent(strtotime($entry["Date_envoi"])); + $like->set_elem_id($entry["ID_type"]); + $like->set_elem_type($entry["type"]); + + + return $like; + } } //Register class diff --git a/classes/models/UserLike.php b/classes/models/UserLike.php new file mode 100644 index 0000000..e4fcc44 --- /dev/null +++ b/classes/models/UserLike.php @@ -0,0 +1,39 @@ +elem_id = $elem_id; + } + + public function has_elem_id() : bool { + return $this->elem_id > 0; + } + + public function get_elem_id() : int { + return $this->elem_id; + } + + //Set and get elem type + public function set_elem_type(string $elem_type){ + $this->elem_type = $elem_type == "" ? null : $elem_type; + } + + public function has_elem_type() : bool { + return $this->elem_type != null; + } + + public function get_elem_type() : string { + return $this->elem_type != null ? $this->elem_type : "null"; + } +} \ No newline at end of file