mirror of
https://github.com/pierre42100/ComunicAPI
synced 2024-11-27 15:59:29 +00:00
Can get the list of members of a group
This commit is contained in:
parent
7a4dd8ea9f
commit
65ab64c22c
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user