Can get friendship status

This commit is contained in:
Pierre 2017-12-20 18:53:00 +01:00
parent 558f7dc59f
commit 583ef8fc2d
2 changed files with 72 additions and 6 deletions

View File

@ -79,4 +79,48 @@ class friendsController{
return array("success" => "The friend was removed from the list !");
}
/**
* Get the status of a friendship
*
* Check if the users are friends, or this there is a pending request...
*
* @url POST /friends/getStatus
*/
public function getStatus(){
user_login_required(); //Login required
//Check if the a friendID has been specified
if(!isset($_POST['friendID']))
Rest_fatal_error(400, "Please specify a friend ID !");
//Get it
$friendID = toInt($_POST['friendID']);
//Prepare the response
$response = array(
"are_friend" => false,
"sent_request" => false,
"received_request" => false,
);
//Check if the two personns are friend
$response['are_friend'] =
CS::get()->components->friends->are_friend(userID, $friendID);
//Perform next check only if the personns are not already friend
if(!$response['are_friend']){
//Check if the current user has sent a request to the other user
if(CS::get()->components->friends->sent_request(userID, $friendID))
$response["sent_request"] = true;
//Check if the current user has received a friendship request
if(CS::get()->components->friends->sent_request($friendID, userID))
$response["received_request"] = true;
}
//Return the response
return $response;
}
}

View File

@ -185,6 +185,28 @@ class friends {
//Return the result
return count($response) > 0;
}
/**
* Check whether a user has sent a friendship
* request to another friend
*
* @param $user The ID of the user supposed to have sent a request
* @param $targetUser The ID of the target user
* @return TRUE if a request has been sent / FALSE else
*/
public function sent_request(int $user, int $targetUser) : bool {
//Query the friend table
$tableName = $this->friendsTable;
$conditions = "WHERE ID_personne = ? AND ID_amis = ? AND actif = 0";
$condValues = array($targetUser, $user);
//Try to perform the request
$response = CS::get()->db->select($tableName, $conditions, $condValues);
//Return result
return count($response) > 0;
}
}
//Register component