1 use crate::PerformCrud;
2 use actix_web::web::Data;
4 use lemmy_api_common::{
6 person::{DeleteAccount, DeleteAccountResponse},
7 utils::local_user_view_from_jwt,
9 use lemmy_utils::error::{LemmyError, LemmyErrorType};
11 #[async_trait::async_trait(?Send)]
12 impl PerformCrud for DeleteAccount {
13 type Response = DeleteAccountResponse;
15 #[tracing::instrument(skip(self, context))]
16 async fn perform(&self, context: &Data<LemmyContext>) -> Result<Self::Response, LemmyError> {
18 let local_user_view = local_user_view_from_jwt(data.auth.as_ref(), context).await?;
20 // Verify the password
21 let valid: bool = verify(
23 &local_user_view.local_user.password_encrypted,
27 return Err(LemmyErrorType::IncorrectLogin)?;
30 Ok(DeleteAccountResponse {})