feat(otter): add working user removal route
This commit is contained in:
parent
b946e1ce98
commit
5017bd1c5f
4 changed files with 35 additions and 0 deletions
|
|
@ -17,6 +17,7 @@ use crate::{
|
|||
pub fn router(ctx: Context) -> Router<Context> {
|
||||
Router::new()
|
||||
.route("/users", get(get_users))
|
||||
.route("/users/{id}", delete(delete_user))
|
||||
.route_layer(axum::middleware::from_fn_with_state(
|
||||
ctx.clone(),
|
||||
super::auth::auth_web_middleware,
|
||||
|
|
@ -70,3 +71,20 @@ async fn get_users(
|
|||
.authenticated(true)
|
||||
.response(&ctx.tera))
|
||||
}
|
||||
|
||||
async fn delete_user(
|
||||
State(ctx): State<Context>,
|
||||
Extension(session): Extension<gpodder::Session>,
|
||||
Path(id): Path<i64>,
|
||||
) -> AppResult<()> {
|
||||
let deleted =
|
||||
tokio::task::spawn_blocking(move || ctx.store.admin(&session.user)?.remove_user(id))
|
||||
.await
|
||||
.unwrap()?;
|
||||
|
||||
if deleted {
|
||||
Ok(())
|
||||
} else {
|
||||
Err(AppError::NotFound)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue