Follow state of a conversation can be updated

This commit is contained in:
Pierre 2017-06-18 10:07:52 +02:00
parent b1e340e0c1
commit 952779f527
7 changed files with 84 additions and 15 deletions

View File

@ -12,7 +12,7 @@ class conversationsController{
*
* @url POST /conversations/getList
*/
public function getConversationsList(){
public function getList(){
user_login_required();
//Try to get the list
@ -31,7 +31,7 @@ class conversationsController{
*
* @url POST /conversations/getInfosOne
*/
public function getOneConversationInformations(){
public function getOneInformations(){
user_login_required();
//First, check the parametres
@ -62,7 +62,7 @@ class conversationsController{
*
* @url POST /conversations/create
*/
public function createConversation(){
public function create(){
user_login_required();
//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 !");
}
}

View File

@ -39,7 +39,7 @@ class friendsController{
Rest_fatal_error(501, "Please check your parametres !");
//Extract informations and process request
$friendID = $_POST['friendID']*1;
$friendID = toInt($_POST['friendID']);
$acceptRequest = $_POST['accept'] == "true";
//Try to perform request

View File

@ -21,7 +21,7 @@ class searchController
Rest_fatal_error(400, "Please specify search terms");
//Check for search limit
$searchLimit = (isset($_POST['searchLimit']) ? $_POST['searchLimit']*1 : 5);
$searchLimit = (isset($_POST['searchLimit']) ? toInt($_POST['searchLimit']) : 5);
//Check the limit
if($searchLimit < 1 || $searchLimit > 25)

View File

@ -72,18 +72,14 @@ class userController
//Determine userID
if(isset($_POST['userID'])){
$usersID = array($_POST['userID']*1);
$usersID = array(toInt($_POST['userID']));
}
elseif(isset($_POST['usersID'])){
//Generate users ID list
$usersID = array();
foreach(explode(",", $_POST['usersID']) as $userID){
if($userID*1 > 0)
$usersID[$userID*1] = $userID*1;
}
$usersID = users_list_to_array($_POST['usersID']);
//Check for errors
if(count($userID) == 0)
if(count($usersID) == 0)
Rest_fatal_error(400, "No user ID were specified!");
}
else

View File

@ -207,6 +207,45 @@ class conversations {
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

View File

@ -45,7 +45,8 @@ function users_list_to_array($list) : array{
//Check the entry is valid
if(toInt($process) < 1)
return array();
//return array();
continue; //Ignore entry
//Add the entry to the list
$usersList[toInt($process)] = toInt($process);

View File

@ -24,8 +24,11 @@ require PROJECT_PATH."3rdparty/RestServer/RestServer.php";
if(!isset($_GET["format"]))
$_GET['format'] = "json";
//Specify we are on Comunic API Server
header("Technology: Official Comunic API Server");
//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['serviceToken'] = "testPasswd";
}