use crate::Pool; use crate::account::account::{Auth, User}; use rocket::http::Status; use rocket::{State, get}; #[get("/api/v2/users/@me/delete")] pub async fn delete_account(pool: &State, auth: Auth) -> Result<(), Status> { let pool = pool.inner(); let user: User = auth.into(); let result = sqlx::query!( "DELETE FROM users WHERE username = $1", user.username ).execute(pool) .await .map_err(|_| Status::InternalServerError)?; if result.rows_affected() == 0 { // Account doesn't exist Err(Status::NotFound) } else { // Account existed and was deleted Ok(()) } }