feat: retrive all banned users in a guild

This commit is contained in:
BAaboe 2025-07-23 19:08:54 +02:00
parent 3ad73f28fa
commit 7e10086753
6 changed files with 91 additions and 9 deletions

View file

@ -0,0 +1,24 @@
use std::sync::Arc;
use axum::{extract::{Path, State}, http::{Extensions, StatusCode}, response::IntoResponse, Extension, Json};
use uuid::Uuid;
use crate::{api::v1::auth::CurrentUser, error::Error, objects::{self, GuildBan, Member, Permissions}, utils::global_checks, AppState};
pub async fn get(
State(app_state): State<Arc<AppState>>,
Path(guild_uuid): Path<Uuid>,
Extension(CurrentUser(uuid)): Extension<CurrentUser<Uuid>>
) -> Result<impl IntoResponse, Error> {
global_checks(&app_state, uuid).await?;
let mut conn = app_state.pool.get().await?;
let member = Member::check_membership(&mut conn, uuid, guild_uuid).await?;
member.check_permission(&app_state, Permissions::BanMember).await?;
let all_guild_bans = GuildBan::fetch_all(&mut conn, guild_uuid).await?;
Ok((StatusCode::OK, Json(all_guild_bans)))
}

View file

@ -16,6 +16,7 @@ mod channels;
mod invites;
mod members;
mod roles;
mod bans;
use crate::{
AppState,
@ -42,6 +43,8 @@ pub fn router() -> Router<Arc<AppState>> {
.route("/invites", post(invites::create))
// Members
.route("/members", get(members::get))
// Bans
.route("/bans", get(bans::get))
}
/// `GET /api/v1/guilds/{uuid}` DESCRIPTION