mirror of
https://github.com/wavelog/wavelog.git
synced 2026-03-22 10:24:14 +00:00
add list_clubmembers api endpoint
This commit is contained in:
@@ -1309,4 +1309,52 @@ class API extends CI_Controller {
|
||||
return $url;
|
||||
}
|
||||
|
||||
/* **
|
||||
* List members of a clubstation
|
||||
* API key needs to be of a club officer (permission level 9)
|
||||
* returns array of club member details
|
||||
*/
|
||||
function list_clubmembers($key = '') {
|
||||
header('Content-type: application/json');
|
||||
|
||||
$this->load->model('api_model');
|
||||
if ($this->api_model->access($key) == "No Key Found" || $this->api_model->access($key) == "Key Disabled") {
|
||||
http_response_code(401);
|
||||
echo json_encode(['status' => 'error', 'message' => 'Auth Error, invalid key']);
|
||||
return;
|
||||
}
|
||||
|
||||
$this->load->model('club_model');
|
||||
$userid = $this->api_model->key_userid($key);
|
||||
$created_by = $this->api_model->key_created_by($key);
|
||||
$club_perm = $this->club_model->get_permission_noui($userid,$created_by);
|
||||
if (($userid == $created_by) || (($club_perm ?? 0) != 9)) { // not club officer
|
||||
http_response_code(401);
|
||||
echo json_encode(['status' => 'error', 'message' => 'Auth Error, not enough permissions for this operation']);
|
||||
return;
|
||||
}
|
||||
|
||||
$this->load->model('club_model');
|
||||
$memberlist = $this->club_model->get_club_members($userid);
|
||||
if (!empty($memberlist)) {
|
||||
$members = [];
|
||||
foreach($memberlist as $member) {
|
||||
$members[] = [
|
||||
'callsign' => $member->user_callsign,
|
||||
'first_name' => $member->user_firstname,
|
||||
'last_name' => $member->user_lastname,
|
||||
'user_name' => $member->user_name,
|
||||
'email' => $member->user_email,
|
||||
'p_level' => $member->p_level
|
||||
];
|
||||
}
|
||||
http_response_code(200);
|
||||
echo json_encode(['status' => 'successful', 'members' => $members]);
|
||||
} else {
|
||||
http_response_code(204);
|
||||
echo json_encode(['status' => 'failed', 'reason' => "No club members found", 'members' => '']);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
Reference in New Issue
Block a user