mirror of
				https://github.com/pierre42100/ComunicAPI
				synced 2025-11-03 19:54:14 +00:00 
			
		
		
		
	Follow state of a conversation can be updated
This commit is contained in:
		@@ -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";
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user