mirror of
https://github.com/pierre42100/ComunicAPI
synced 2024-11-23 13:59:29 +00:00
Can update user page like status
This commit is contained in:
parent
a902a44927
commit
41f6e94c19
59
RestControllers/likesController.php
Normal file
59
RestControllers/likesController.php
Normal file
@ -0,0 +1,59 @@
|
||||
<?php
|
||||
/**
|
||||
* API likes controller
|
||||
*
|
||||
* @author Pierre HUBERT
|
||||
*/
|
||||
|
||||
class likesController {
|
||||
|
||||
/**
|
||||
* Update a specific component like
|
||||
*
|
||||
* @url POST /likes/update
|
||||
*/
|
||||
public function update_like(){
|
||||
|
||||
user_login_required(); //Need login
|
||||
|
||||
//Get component kind
|
||||
if(!isset($_POST["type"]))
|
||||
Rest_fatal_error(401, "Please specify like type !");
|
||||
|
||||
$type = $_POST["type"];
|
||||
|
||||
//Check new status for the like
|
||||
if(!isset($_POST['like']))
|
||||
Rest_fatal_error(400, "Please specify the new like status with the request !");
|
||||
$like = $_POST['like'] == "true";
|
||||
|
||||
//Find the right component type for checks
|
||||
switch($type){
|
||||
|
||||
//In case of user
|
||||
case "user":
|
||||
|
||||
//Extract informations
|
||||
$id = getPostUserId("id");
|
||||
$componentType = Likes::LIKE_USER;
|
||||
|
||||
//Check if user can access page
|
||||
if(!CS::get()->components->user->userAllowed(userID, $id))
|
||||
Rest_fatal_error(401, "You can not access this user information !");
|
||||
|
||||
break;
|
||||
|
||||
|
||||
//Default case : error
|
||||
default:
|
||||
Rest_fatal_error(404, "Didn't find specified component type !");
|
||||
}
|
||||
|
||||
//Update like status
|
||||
CS::get()->components->likes->update(userID, $like, $id, $componentType);
|
||||
|
||||
//Success
|
||||
return array("success" => "Like status updated.");
|
||||
}
|
||||
|
||||
}
|
@ -69,6 +69,48 @@ class Likes {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Update like status
|
||||
*
|
||||
* @param int $userID The ID of the user
|
||||
* @param bool $like New like status
|
||||
* @param int $id The ID of the component element to update
|
||||
* @param string $kind The kind of component
|
||||
*/
|
||||
public function update(int $userID, bool $like, int $id, string $kind){
|
||||
|
||||
//Check if the request is not to like anymore
|
||||
if(!$like){
|
||||
|
||||
//Delete on the database
|
||||
$conditions = "ID_personne = ? AND ID_type = ? AND type = ?";
|
||||
$values = array($userID, $id, $this::KINDS_DB[$kind]);
|
||||
CS::get()->db->deleteEntry($this::LIKES_TABLE, $conditions, $values);
|
||||
|
||||
}
|
||||
|
||||
//We have to like component
|
||||
else {
|
||||
|
||||
//Check if user is already liking component
|
||||
if($this->is_liking($userID, $id, $kind))
|
||||
return; //Nothing to be done
|
||||
|
||||
//Insert in the database
|
||||
$values = array(
|
||||
"ID_type" => $id,
|
||||
"ID_personne" => $userID,
|
||||
"Date_envoi" => mysql_date(),
|
||||
"type" => $this::KINDS_DB[$kind]
|
||||
);
|
||||
|
||||
//Insert in the database
|
||||
CS::get()->db->addLine($this::LIKES_TABLE, $values);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//Register class
|
||||
|
Loading…
Reference in New Issue
Block a user