mirror of
https://github.com/pierre42100/ComunicAPI
synced 2024-11-27 07:49:27 +00:00
Follow state of a conversation can be updated
This commit is contained in:
parent
b1e340e0c1
commit
952779f527
@ -12,7 +12,7 @@ class conversationsController{
|
|||||||
*
|
*
|
||||||
* @url POST /conversations/getList
|
* @url POST /conversations/getList
|
||||||
*/
|
*/
|
||||||
public function getConversationsList(){
|
public function getList(){
|
||||||
user_login_required();
|
user_login_required();
|
||||||
|
|
||||||
//Try to get the list
|
//Try to get the list
|
||||||
@ -31,7 +31,7 @@ class conversationsController{
|
|||||||
*
|
*
|
||||||
* @url POST /conversations/getInfosOne
|
* @url POST /conversations/getInfosOne
|
||||||
*/
|
*/
|
||||||
public function getOneConversationInformations(){
|
public function getOneInformations(){
|
||||||
user_login_required();
|
user_login_required();
|
||||||
|
|
||||||
//First, check the parametres
|
//First, check the parametres
|
||||||
@ -62,7 +62,7 @@ class conversationsController{
|
|||||||
*
|
*
|
||||||
* @url POST /conversations/create
|
* @url POST /conversations/create
|
||||||
*/
|
*/
|
||||||
public function createConversation(){
|
public function create(){
|
||||||
user_login_required();
|
user_login_required();
|
||||||
|
|
||||||
//Check for parametres
|
//Check for parametres
|
||||||
@ -96,4 +96,34 @@ class conversationsController{
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update a conversation settings
|
||||||
|
*
|
||||||
|
* @url POST /conversations/updateSettings
|
||||||
|
*/
|
||||||
|
public function updateSettings(){
|
||||||
|
user_login_required();
|
||||||
|
|
||||||
|
//Check conversation ID was specified
|
||||||
|
if(!isset($_POST["conversationID"]))
|
||||||
|
Rest_fatal_error("501", "Please specify a conversation ID !");
|
||||||
|
$conversationID = toInt($_POST["conversationID"]);
|
||||||
|
|
||||||
|
//Check if the user is a conversation moderator or not
|
||||||
|
if(!CS::get()->components->conversations->userBelongsTo(userID, $conversationID))
|
||||||
|
Rest_fatal_error("401", "Specified user doesn't belongs to the conversation !");
|
||||||
|
|
||||||
|
//Check if user want to update its follow state
|
||||||
|
if(isset($_POST['following'])){
|
||||||
|
$follow = $_POST["following"] === "true" ? true : false;
|
||||||
|
|
||||||
|
//Try to update follow state
|
||||||
|
if(!CS::get()->components->conversations->changeFollowState(userID, $conversationID, $follow))
|
||||||
|
Rest_fatal_error(500, "Couldn't update user follow state !");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//Success
|
||||||
|
return array("success" => "User informations were successfully updated !");
|
||||||
|
}
|
||||||
}
|
}
|
@ -39,7 +39,7 @@ class friendsController{
|
|||||||
Rest_fatal_error(501, "Please check your parametres !");
|
Rest_fatal_error(501, "Please check your parametres !");
|
||||||
|
|
||||||
//Extract informations and process request
|
//Extract informations and process request
|
||||||
$friendID = $_POST['friendID']*1;
|
$friendID = toInt($_POST['friendID']);
|
||||||
$acceptRequest = $_POST['accept'] == "true";
|
$acceptRequest = $_POST['accept'] == "true";
|
||||||
|
|
||||||
//Try to perform request
|
//Try to perform request
|
||||||
|
@ -21,7 +21,7 @@ class searchController
|
|||||||
Rest_fatal_error(400, "Please specify search terms");
|
Rest_fatal_error(400, "Please specify search terms");
|
||||||
|
|
||||||
//Check for search limit
|
//Check for search limit
|
||||||
$searchLimit = (isset($_POST['searchLimit']) ? $_POST['searchLimit']*1 : 5);
|
$searchLimit = (isset($_POST['searchLimit']) ? toInt($_POST['searchLimit']) : 5);
|
||||||
|
|
||||||
//Check the limit
|
//Check the limit
|
||||||
if($searchLimit < 1 || $searchLimit > 25)
|
if($searchLimit < 1 || $searchLimit > 25)
|
||||||
|
@ -72,18 +72,14 @@ class userController
|
|||||||
|
|
||||||
//Determine userID
|
//Determine userID
|
||||||
if(isset($_POST['userID'])){
|
if(isset($_POST['userID'])){
|
||||||
$usersID = array($_POST['userID']*1);
|
$usersID = array(toInt($_POST['userID']));
|
||||||
}
|
}
|
||||||
elseif(isset($_POST['usersID'])){
|
elseif(isset($_POST['usersID'])){
|
||||||
//Generate users ID list
|
//Generate users ID list
|
||||||
$usersID = array();
|
$usersID = users_list_to_array($_POST['usersID']);
|
||||||
foreach(explode(",", $_POST['usersID']) as $userID){
|
|
||||||
if($userID*1 > 0)
|
|
||||||
$usersID[$userID*1] = $userID*1;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Check for errors
|
//Check for errors
|
||||||
if(count($userID) == 0)
|
if(count($usersID) == 0)
|
||||||
Rest_fatal_error(400, "No user ID were specified!");
|
Rest_fatal_error(400, "No user ID were specified!");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -207,6 +207,45 @@ class conversations {
|
|||||||
return $result != 0;
|
return $result != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Change the follow state of a user on conversation
|
||||||
|
*
|
||||||
|
* @param Integer $userID The ID to update
|
||||||
|
* @param Integer $conversationID The ID of the conversation
|
||||||
|
* @param Boolean $follow Specify if the conversation is followed or not
|
||||||
|
* @return Boolean True for a success
|
||||||
|
*/
|
||||||
|
public function changeFollowState($userID, $conversationID, $follow){
|
||||||
|
|
||||||
|
//Prepare the request on the database
|
||||||
|
$tableName = $this->conversationsUsersTable;
|
||||||
|
$conditions = "ID_".$this->conversationsListTable." = ? AND ID_utilisateurs = ?";
|
||||||
|
$condVals = array(
|
||||||
|
$conversationID,
|
||||||
|
$userID
|
||||||
|
);
|
||||||
|
|
||||||
|
//Defines modifications
|
||||||
|
$modifs = array(
|
||||||
|
"following" => $follow ? 1 : 0,
|
||||||
|
);
|
||||||
|
|
||||||
|
//Update the table
|
||||||
|
if(!CS::get()->db->updateDB($tableName, $conditions, $modifs, $condVals))
|
||||||
|
return false; //An error occured
|
||||||
|
|
||||||
|
//Success
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if a user is a conversation moderator or not
|
||||||
|
*
|
||||||
|
* @param Integer $userID The ID of the user to check
|
||||||
|
* @param Integer $conversationID The ID of the conversation to check
|
||||||
|
* @return Boolean True if the user is a conversation moderator or not
|
||||||
|
*/
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//Register component
|
//Register component
|
||||||
|
@ -45,7 +45,8 @@ function users_list_to_array($list) : array{
|
|||||||
|
|
||||||
//Check the entry is valid
|
//Check the entry is valid
|
||||||
if(toInt($process) < 1)
|
if(toInt($process) < 1)
|
||||||
return array();
|
//return array();
|
||||||
|
continue; //Ignore entry
|
||||||
|
|
||||||
//Add the entry to the list
|
//Add the entry to the list
|
||||||
$usersList[toInt($process)] = toInt($process);
|
$usersList[toInt($process)] = toInt($process);
|
||||||
|
@ -24,8 +24,11 @@ require PROJECT_PATH."3rdparty/RestServer/RestServer.php";
|
|||||||
if(!isset($_GET["format"]))
|
if(!isset($_GET["format"]))
|
||||||
$_GET['format'] = "json";
|
$_GET['format'] = "json";
|
||||||
|
|
||||||
|
//Specify we are on Comunic API Server
|
||||||
|
header("Technology: Official Comunic API Server");
|
||||||
|
|
||||||
//Set debug clients tokens
|
//Set debug clients tokens
|
||||||
if($cs->config->get("site_mode") == "debug"){ //DEBUG ONLY
|
if($cs->config->get("site_mode") === "debug"){ //DEBUG ONLY
|
||||||
$_POST['serviceName'] = "testService";
|
$_POST['serviceName'] = "testService";
|
||||||
$_POST['serviceToken'] = "testPasswd";
|
$_POST['serviceToken'] = "testPasswd";
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user