mirror of
https://github.com/pierre42100/ComunicAPI
synced 2024-11-23 13:59:29 +00:00
Can respond friendship requests
This commit is contained in:
parent
c219dc94e3
commit
b3b67a53e6
@ -26,4 +26,31 @@ class friendsController{
|
|||||||
return $friendsList;
|
return $friendsList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Respond to a friendship request
|
||||||
|
*
|
||||||
|
* @url POST /friends/respondRequest
|
||||||
|
*/
|
||||||
|
public function respondRequest(){
|
||||||
|
user_login_required(); //Login required
|
||||||
|
|
||||||
|
//Check parametres
|
||||||
|
if(!isset($_POST["friendID"]) OR !isset($_POST['accept']))
|
||||||
|
Rest_fatal_error(501, "Please check your parametres !");
|
||||||
|
|
||||||
|
//Extract informations and process request
|
||||||
|
$friendID = $_POST['friendID']*1;
|
||||||
|
$acceptRequest = $_POST['accept'] == "true";
|
||||||
|
|
||||||
|
//Try to perform request
|
||||||
|
$result = CS::get()->components->friends->respondRequest(userID, $friendID, $acceptRequest);
|
||||||
|
|
||||||
|
//Return result
|
||||||
|
if($result != true)
|
||||||
|
Rest_fatal_error(500, "Couldn't respond to friendship request !");
|
||||||
|
|
||||||
|
//Else it is a success
|
||||||
|
return array("success" => "A response was given to friendship request !");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
1
classes/.htaccess
Normal file
1
classes/.htaccess
Normal file
@ -0,0 +1 @@
|
|||||||
|
Deny from all
|
@ -58,6 +58,92 @@ class friends {
|
|||||||
return $friendsList;
|
return $friendsList;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Respond to a friendship request
|
||||||
|
*
|
||||||
|
* @param Integer $userID The ID of the user who respond to the request
|
||||||
|
* @param Integer $friendID The ID of the target friend
|
||||||
|
* @param Boolean $accept Defines wether the friend request was accepted or not
|
||||||
|
* @return Boolean True or false depending of the success of the operation
|
||||||
|
*/
|
||||||
|
public function respondRequest($userID, $friendID, $accept){
|
||||||
|
//If the request is to refuse friendship request, there isn't any security check to perform
|
||||||
|
if(!$accept){
|
||||||
|
//Perform a request on the database
|
||||||
|
$conditions = "ID_personne = ? AND ID_amis = ? AND actif = 0";
|
||||||
|
$conditionsValues = array(
|
||||||
|
$userID*1,
|
||||||
|
$friendID*1
|
||||||
|
);
|
||||||
|
|
||||||
|
//Try to perform request
|
||||||
|
if(CS::get()->db->deleteEntry($this->friendsTable, $conditions, $conditionsValues))
|
||||||
|
return true; //Operation is a success
|
||||||
|
else
|
||||||
|
return false; //An error occured
|
||||||
|
}
|
||||||
|
|
||||||
|
//Else it is a little more complicated
|
||||||
|
//First, check the request was really performed
|
||||||
|
if(!$this->checkFriendShipRequestExistence($friendID, $userID))
|
||||||
|
return false; //There isn't any existing request
|
||||||
|
|
||||||
|
//Else we can update the database to accept the request
|
||||||
|
//Update the table
|
||||||
|
$conditions = "ID_personne = ? AND ID_amis = ? AND actif = 0";
|
||||||
|
$whereValues = array(
|
||||||
|
$userID*1,
|
||||||
|
$friendID*1
|
||||||
|
);
|
||||||
|
$modifs = array(
|
||||||
|
"actif" => 1
|
||||||
|
);
|
||||||
|
|
||||||
|
//First update the table
|
||||||
|
if(!CS::get()->db->updateDB($this->friendsTable, $conditions, $modifs, $whereValues))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
//Then insert the second friend line
|
||||||
|
$insertValues = array(
|
||||||
|
"ID_personne" => $friendID,
|
||||||
|
"ID_amis" => $userID,
|
||||||
|
"actif" => 1
|
||||||
|
);
|
||||||
|
if(!CS::get()->db->addLine($this->friendsTable, $insertValues))
|
||||||
|
return false; //An error occurred
|
||||||
|
|
||||||
|
//The operation is a success
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if a friendship request was performed by someone to someone
|
||||||
|
*
|
||||||
|
* @param Integer $userID The user who may have performed a request
|
||||||
|
* @param Integer $friendID The destination of the request
|
||||||
|
* @return Boolean True or false depending of the success of the operation
|
||||||
|
*/
|
||||||
|
public function checkFriendShipRequestExistence($userID, $friendID){
|
||||||
|
//Perform a request on the database
|
||||||
|
$conditions = "WHERE ID_personne = ? AND ID_amis = ? AND actif = 0";
|
||||||
|
$dataConditions = array(
|
||||||
|
$friendID*1,
|
||||||
|
$userID*1
|
||||||
|
);
|
||||||
|
$fieldsList = array("ID");
|
||||||
|
|
||||||
|
//Try to perform request
|
||||||
|
$results = CS::get()->db->select($this->friendsTable, $conditions, $dataConditions, $fieldsList);
|
||||||
|
|
||||||
|
//Check for errors
|
||||||
|
if($results === false)
|
||||||
|
return false; //An error occured
|
||||||
|
|
||||||
|
//Else we check the results
|
||||||
|
else
|
||||||
|
return count($results) === 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//Register component
|
//Register component
|
||||||
|
Loading…
Reference in New Issue
Block a user