mirror of
				https://github.com/pierre42100/ComunicAPI
				synced 2025-11-03 19:54:14 +00:00 
			
		
		
		
	Can get the list of members of a group
This commit is contained in:
		@@ -233,6 +233,28 @@ class GroupsController {
 | 
			
		||||
		);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Get the entire list of the members of a group
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @url POST /groups/get_members
 | 
			
		||||
	 */
 | 
			
		||||
	public function getMembers(){
 | 
			
		||||
 | 
			
		||||
		user_login_required();
 | 
			
		||||
 | 
			
		||||
		//Get the ID of the group (with admin access)
 | 
			
		||||
		$groupID = getPostGroupIdWithAccess("id", GroupInfo::MODERATOR_ACCESS);
 | 
			
		||||
 | 
			
		||||
		//Get the list of members of the group
 | 
			
		||||
		$members = components()->groups->getListMembers($groupID);
 | 
			
		||||
 | 
			
		||||
		//Parse the list of members
 | 
			
		||||
		foreach($members as $num => $member)
 | 
			
		||||
			$members[$num] = self::GroupMemberToAPI($member);
 | 
			
		||||
 | 
			
		||||
		return $members;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Respond to a membership invitation
 | 
			
		||||
	 * 
 | 
			
		||||
@@ -366,4 +388,21 @@ class GroupsController {
 | 
			
		||||
 | 
			
		||||
		return $data;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Turn GroupMember oject into an API array
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @param GroupMember $member The member entry to convert
 | 
			
		||||
	 * @return array Generated entry
 | 
			
		||||
	 */
 | 
			
		||||
	public static function GroupMemberToAPI(GroupMember $member) : array {
 | 
			
		||||
		$data = array();
 | 
			
		||||
 | 
			
		||||
		$data["user_id"] = $member->get_userID();
 | 
			
		||||
		$data["group_id"] = $member->get_group_id();
 | 
			
		||||
		$data["time_create"] = $member->get_time_sent();
 | 
			
		||||
		$data["level"] = self::GROUPS_MEMBERSHIP_LEVELS[$member->get_level()];
 | 
			
		||||
 | 
			
		||||
		return $data;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
@@ -168,6 +168,24 @@ class GroupsComponent {
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Get the list of members of a group
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @param int $groupID The ID of the group to fetch
 | 
			
		||||
	 * @return array The list of members of the group
 | 
			
		||||
	 */
 | 
			
		||||
	public function getListMembers(int $groupID) : array {
 | 
			
		||||
 | 
			
		||||
		$members = db()->select(
 | 
			
		||||
			self::GROUPS_MEMBERS_TABLE,
 | 
			
		||||
			"WHERE groups_id = ?",
 | 
			
		||||
			array($groupID)
 | 
			
		||||
		);
 | 
			
		||||
 | 
			
		||||
		//Process the list of results
 | 
			
		||||
		return $this->multipleDBToGroupMember($members);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Insert a new group member
 | 
			
		||||
	 * 
 | 
			
		||||
@@ -524,6 +542,39 @@ class GroupsComponent {
 | 
			
		||||
 | 
			
		||||
		return $data;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Turn multiple database entries into GroupMember entries
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @param array $entries The entries to process
 | 
			
		||||
	 * @return array Generated GroupMember objects
 | 
			
		||||
	 */
 | 
			
		||||
	private function multipleDBToGroupMember(array $entries) : array {
 | 
			
		||||
		foreach($entries as $num => $entry)
 | 
			
		||||
			$entries[$num] = $this->dbToGroupMember($entry);
 | 
			
		||||
		
 | 
			
		||||
		return $entries;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Turn a database entry into a GroupMember entry
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @param array $entry The database entry to convert
 | 
			
		||||
	 * @return GroupMember Generated entry
 | 
			
		||||
	 */
 | 
			
		||||
	private function dbToGroupMember(array $entry) : GroupMember {
 | 
			
		||||
 | 
			
		||||
		$member = new GroupMember();
 | 
			
		||||
 | 
			
		||||
		$member->set_id($entry["id"]);
 | 
			
		||||
		$member->set_group_id($entry["groups_id"]);
 | 
			
		||||
		$member->set_userID($entry["user_id"]);
 | 
			
		||||
		$member->set_time_sent($entry["time_create"]);
 | 
			
		||||
		$member->set_level($entry["level"]);
 | 
			
		||||
 | 
			
		||||
		return $member;
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//Register component
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user