diff --git a/src/api/v1/members/mod.rs b/src/api/v1/member/mod.rs similarity index 57% rename from src/api/v1/members/mod.rs rename to src/api/v1/member/mod.rs index 9e1ea52..3ee9718 100644 --- a/src/api/v1/members/mod.rs +++ b/src/api/v1/member/mod.rs @@ -10,8 +10,12 @@ use crate::{AppState, api::v1::auth::CurrentUser}; mod uuid; -pub fn router() -> Router> { - Router::new() +pub fn router(app_state: Arc) -> Router> { + let router_with_auth = Router::new() .route("/{uuid}", get(uuid::get)) .route("/{uuid}", delete(uuid::delete)) + .layer(from_fn_with_state(app_state, CurrentUser::check_auth_layer)); + + Router::new() + .merge(router_with_auth) } diff --git a/src/api/v1/members/uuid/mod.rs b/src/api/v1/member/uuid/mod.rs similarity index 80% rename from src/api/v1/members/uuid/mod.rs rename to src/api/v1/member/uuid/mod.rs index 16cc7a9..f0425dd 100644 --- a/src/api/v1/members/uuid/mod.rs +++ b/src/api/v1/member/uuid/mod.rs @@ -1,4 +1,4 @@ -//! `/api/v1/members/{uuid}` Member specific endpoints +//! `/api/v1/member/{uuid}` Member specific endpoints use std::sync::Arc; @@ -41,17 +41,15 @@ pub async fn delete( ) -> Result { global_checks(&app_state, uuid).await?; - let mut conn = app_state.pool.get().await?; - - let me = Me::get(&mut conn, uuid).await?; + let me = Me::get(&mut app_state.pool.get().await?, uuid).await?; let member = Member::fetch_one_with_member(&app_state, &me, member_uuid).await?; - let deleter = Member::check_membership(&mut conn, uuid, member.guild_uuid).await?; + let deleter = Member::check_membership(&mut app_state.pool.get().await?, uuid, member.guild_uuid).await?; deleter.check_permission(&app_state, Permissions::ManageMember).await?; - member.delete(&mut conn).await?; + member.delete(&mut app_state.pool.get().await?).await?; Ok(StatusCode::OK) } diff --git a/src/api/v1/mod.rs b/src/api/v1/mod.rs index 3aee3a0..b05774e 100644 --- a/src/api/v1/mod.rs +++ b/src/api/v1/mod.rs @@ -13,14 +13,13 @@ mod invites; mod me; mod stats; mod users; -mod members; +mod member; pub fn router(app_state: Arc) -> Router> { let router_with_auth = Router::new() .nest("/users", users::router()) .nest("/guilds", guilds::router()) .nest("/invites", invites::router()) - .nest("/members", members::router()) .nest("/me", me::router()) .layer(from_fn_with_state( app_state.clone(), @@ -30,6 +29,7 @@ pub fn router(app_state: Arc) -> Router> { Router::new() .route("/stats", get(stats::res)) .nest("/auth", auth::router(app_state.clone())) - .nest("/channels", channels::router(app_state)) + .nest("/channels", channels::router(app_state.clone())) + .nest("/member", member::router(app_state)) .merge(router_with_auth) }