mirror of
				https://github.com/pierre42100/ComunicAPI
				synced 2025-11-04 04:04:20 +00:00 
			
		
		
		
	Can delete the entire list posts of a user
This commit is contained in:
		@@ -153,13 +153,8 @@ class Posts {
 | 
			
		||||
		//Check if the user allow comments on his page or not
 | 
			
		||||
		$getComments = CS::get()->components->user->allowComments($targetID);
 | 
			
		||||
 | 
			
		||||
		//Parse posts
 | 
			
		||||
		$posts = array();
 | 
			
		||||
		foreach($list as $post){
 | 
			
		||||
			$posts[] = $this->dbToPost($post, $getComments);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return $posts;
 | 
			
		||||
		//Parse and return posts
 | 
			
		||||
		return $this->processGetMultiple($list, $getComments);
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@@ -231,6 +226,34 @@ class Posts {
 | 
			
		||||
		return $posts;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Get the entire list of posts of a user, including posts made by the
 | 
			
		||||
	 * user on other page plus the posts of his friend on his page
 | 
			
		||||
	 * 
 | 
			
		||||
	 * This function does not take care of visibility level, and does not admit
 | 
			
		||||
	 * any kind of limit
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @param int $userID The ID of the target user
 | 
			
		||||
	 * @return array The list of posts
 | 
			
		||||
	 */
 | 
			
		||||
	public function getUserEntirePostsList(int $userID) : array {
 | 
			
		||||
 | 
			
		||||
		//Prepare database request
 | 
			
		||||
		$conditions = "WHERE ID_personne = ? OR ID_amis = ?";
 | 
			
		||||
		$dataConds = array($userID, $userID);
 | 
			
		||||
 | 
			
		||||
		//Perform the request
 | 
			
		||||
		$list = CS::get()->db->select(
 | 
			
		||||
			$this::TABLE_NAME,
 | 
			
		||||
			$conditions,
 | 
			
		||||
			$dataConds
 | 
			
		||||
		);
 | 
			
		||||
 | 
			
		||||
		//Parse and return posts (do not load comments)
 | 
			
		||||
		return $this->processGetMultiple($list, FALSE);
 | 
			
		||||
		
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Check whether a post exists or not
 | 
			
		||||
	 * 
 | 
			
		||||
@@ -548,6 +571,49 @@ class Posts {
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Delete all the posts of a user
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @param int $userID The ID of the target user
 | 
			
		||||
	 * @return bool TRUE for a success / FALSE else
 | 
			
		||||
	 */
 | 
			
		||||
	public function deleteAllUser(int $userID) : bool {
 | 
			
		||||
 | 
			
		||||
		//Get the list of posts of the user
 | 
			
		||||
		$posts = $this->getUserEntirePostsList($userID);
 | 
			
		||||
 | 
			
		||||
		//Delete the list of posts
 | 
			
		||||
		foreach($posts as $post){
 | 
			
		||||
 | 
			
		||||
			//Delete the posts
 | 
			
		||||
			if(!$this->delete($post->get_id()))
 | 
			
		||||
				return FALSE;
 | 
			
		||||
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Success
 | 
			
		||||
		return TRUE;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Process processing of multiples posts entries in database
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @param array $entries Entries in the database
 | 
			
		||||
	 * @param bool $load_comments Specify whether the comments should
 | 
			
		||||
	 * be loaded or not
 | 
			
		||||
	 * @return array The list of parsed posts
 | 
			
		||||
	 */
 | 
			
		||||
	private function processGetMultiple(array $entries, bool $load_comments) : array {
 | 
			
		||||
 | 
			
		||||
		//Parse posts
 | 
			
		||||
		$posts = array();
 | 
			
		||||
		foreach($entries as $post){
 | 
			
		||||
			$posts[] = $this->dbToPost($post, $load_comments);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return $posts;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Turn a database entry into a Post object
 | 
			
		||||
	 * 
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user