mirror of
				https://github.com/pierre42100/ComunicAPI
				synced 2025-11-04 12:14:12 +00:00 
			
		
		
		
	Method getAdvancedUserInfo of API working
This commit is contained in:
		@@ -16,9 +16,11 @@ class userController
 | 
			
		||||
	 *
 | 
			
		||||
	 * @url POST /user/getInfos
 | 
			
		||||
	 * @url POST /user/getInfosMultiple
 | 
			
		||||
	 * @url POST /user/getInfo
 | 
			
		||||
	 * @url POST /user/getInfoMultiple
 | 
			
		||||
	 * @return array The result
 | 
			
		||||
	 */
 | 
			
		||||
	public function getUserInfos() : array{
 | 
			
		||||
	public function getUserInfo() : array{
 | 
			
		||||
 | 
			
		||||
		//Determine userID
 | 
			
		||||
		if(isset($_POST['userID'])){
 | 
			
		||||
@@ -64,8 +66,9 @@ class userController
 | 
			
		||||
	 * Get advanced user informations
 | 
			
		||||
	 *
 | 
			
		||||
	 * @url POST /user/getAdvancedUserInfos
 | 
			
		||||
	 * @url POST /user/getAdvancedUserInfo
 | 
			
		||||
	 */
 | 
			
		||||
	public function getAdvancedInfos(){
 | 
			
		||||
	public function getAdvancedInfo(){
 | 
			
		||||
 | 
			
		||||
		//Get the ID of the target user
 | 
			
		||||
		$userID = getPostUserID("userID");
 | 
			
		||||
@@ -75,30 +78,32 @@ class userController
 | 
			
		||||
			Rest_fatal_error(401, "You are not allowed to access these information !");
 | 
			
		||||
		
 | 
			
		||||
		//Get user informations
 | 
			
		||||
		$userInfos = CS::get()->components->user->getUserInfos($userID, true);
 | 
			
		||||
		$userInfos = CS::get()->components->user->getUserAdvancedInfo($userID, true);
 | 
			
		||||
 | 
			
		||||
		//Check if we got a response
 | 
			
		||||
		if(count($userInfos) == 0)
 | 
			
		||||
		if(!$userInfos->isValid())
 | 
			
		||||
			Rest_fatal_error(500, "Couldn't get informations about the user !");
 | 
			
		||||
		
 | 
			
		||||
		//Parse user information for the API
 | 
			
		||||
		$data = $this->advancedUserToAPI($userInfos);
 | 
			
		||||
 | 
			
		||||
		//Get the number of friends (if allowed)
 | 
			
		||||
		if($userInfos['friend_list_public'] === true){
 | 
			
		||||
			$userInfos['number_friends'] = CS::get()->components->friends->count_all($userID);
 | 
			
		||||
		if($userInfos->is_friendListPublic()){
 | 
			
		||||
			$data['number_friends'] = CS::get()->components->friends->count_all($userID);
 | 
			
		||||
		}
 | 
			
		||||
		else
 | 
			
		||||
			//User friends won't be displayed
 | 
			
		||||
			$userInfos["number_friends"] = 0;
 | 
			
		||||
			$data["number_friends"] = 0;
 | 
			
		||||
 | 
			
		||||
		//User can not post text on this page by default
 | 
			
		||||
		$userInfos["can_post_texts"] = FALSE;
 | 
			
		||||
		$data["can_post_texts"] = FALSE;
 | 
			
		||||
		
 | 
			
		||||
		//Get some informations only is user is signed in
 | 
			
		||||
		if(user_signed_in()){
 | 
			
		||||
			$userInfos["user_like_page"] = CS::get()->components->likes->is_liking(userID, $userID, Likes::LIKE_USER);
 | 
			
		||||
			$data["user_like_page"] = CS::get()->components->likes->is_liking(userID, $userID, Likes::LIKE_USER);
 | 
			
		||||
 | 
			
		||||
			//Check if the user can post texts on this page
 | 
			
		||||
			$userInfos["can_post_texts"] = 
 | 
			
		||||
			$data["can_post_texts"] = 
 | 
			
		||||
				//If it is his page, yes by default
 | 
			
		||||
				userID == $userID ? TRUE : 
 | 
			
		||||
				//Else check friendship status
 | 
			
		||||
@@ -106,7 +111,7 @@ class userController
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		//Return user informations
 | 
			
		||||
		return $userInfos;
 | 
			
		||||
		return $data;
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@@ -152,4 +157,46 @@ class userController
 | 
			
		||||
		return array("userID" => $id);
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Turn a User object into an API array
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @param User $user Information about the user
 | 
			
		||||
	 * @return array Information about the user compatible with the API
 | 
			
		||||
	 */
 | 
			
		||||
	public function userToAPI(User $user) : array {
 | 
			
		||||
 | 
			
		||||
		$data = array();
 | 
			
		||||
 | 
			
		||||
		$data['userID'] = $user->get_id();
 | 
			
		||||
		$data['firstName'] = $user->get_firstName();
 | 
			
		||||
		$data['lastName'] = $user->get_lastName();
 | 
			
		||||
		$data['publicPage'] = $user->is_publicPage() ? "true" : "false";
 | 
			
		||||
		$data['openPage'] = $user->is_openPage() ? "true" : "false";
 | 
			
		||||
		$data['virtualDirectory'] = $user->has_virtualDirectory() ? $user->get_virtualDirectory() : "";
 | 
			
		||||
		$data['accountImage'] = $user->get_accountImageURL();
 | 
			
		||||
 | 
			
		||||
		return $data;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Turn an AdvancedUser object into an API array
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @param AdvancedUser $user Information about the user
 | 
			
		||||
	 * @return array Data compatible with the API
 | 
			
		||||
	 */
 | 
			
		||||
	private function advancedUserToAPI(AdvancedUser $user) : array {
 | 
			
		||||
 | 
			
		||||
		$data = $this->userToAPI($user);
 | 
			
		||||
 | 
			
		||||
		$data['friend_list_public'] = $user->is_friendListPublic();
 | 
			
		||||
		$data['personnalWebsite'] = $user->has_personnalWebsite() ? $user->get_personnalWebsite() : "";
 | 
			
		||||
		$data['noCommentOnHisPage'] = $user->is_disallowComments();
 | 
			
		||||
		$data['allowPostFromFriendOnHisPage'] = $user->is_allowPostFromFriends();
 | 
			
		||||
		$data['account_creation_time'] = $user->get_creation_time();
 | 
			
		||||
		$data['backgroundImage'] = $user->get_backgroundImage();
 | 
			
		||||
		$data['pageLikes'] = $user->get_pageLikes();
 | 
			
		||||
 | 
			
		||||
		return $data;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user