Skip to content

Commit 787ad3c

Browse files
committed
start adding delete account api
1 parent 6aaa878 commit 787ad3c

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

server/src/database/account.rs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -398,4 +398,17 @@ impl Database {
398398
)
399399
})
400400
}
401+
402+
pub fn delete_account(&self, maybe_user_id: Option<i32>) -> Result<(), String> {
403+
let user_id = self.resolve_user_id_protected(maybe_user_id)?;
404+
405+
let mut conn = self.pool.get().unwrap();
406+
conn.transaction(|conn| -> QueryResult<()> {
407+
diesel::delete(users::table)
408+
.filter(users::user_id.eq(user_id))
409+
.execute(conn)?;
410+
Ok(())
411+
})
412+
.map_err(|reason| format!("Delete user {} failed. Reason: {}", user_id, reason))
413+
}
401414
}

server/src/graphql/mutation/mod.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,13 @@ impl Mutation {
7575
}
7676
}
7777

78+
fn delete_account(context: &Database, user_id: Option<i32>) -> FieldResult<bool> {
79+
dbtry! {
80+
context.delete_account(user_id)
81+
}?;
82+
Ok(true)
83+
}
84+
7885
// Product types
7986
fn add_user_product_type(
8087
context: &Database,

0 commit comments

Comments
 (0)