aboutsummaryrefslogtreecommitdiff
path: root/src/db.rs
diff options
context:
space:
mode:
authorCurly Bryce <curlybryce@protonmail.com>2024-07-03 16:01:18 -0600
committerCurly Bryce <curlybryce@protonmail.com>2024-07-03 16:01:18 -0600
commit2ae652d150c451ec921eb08821a3f8d158297433 (patch)
tree140934960f7bff0ac2533a5b9e9cf57d54f51a86 /src/db.rs
parent723ea13a55af719a920b445d9c8cda0c2545c682 (diff)
downloadpoko_server-2ae652d150c451ec921eb08821a3f8d158297433.tar.gz
poko_server-2ae652d150c451ec921eb08821a3f8d158297433.tar.bz2
poko_server-2ae652d150c451ec921eb08821a3f8d158297433.zip
delete users
Diffstat (limited to 'src/db.rs')
-rw-r--r--src/db.rs21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/db.rs b/src/db.rs
index a609fe5..28b1ec7 100644
--- a/src/db.rs
+++ b/src/db.rs
@@ -281,4 +281,25 @@ impl DB {
let _ = self.save().await;
r
}
+
+ pub async fn delete_user(&mut self, id: &String, session: &String) -> Result<String, String> {
+ match UID::from(id.clone()) {
+ Ok(n) => {
+ self.users = self.users.clone().into_iter().filter(|u| !u.authenticate(session) && n != u.id).collect();
+ self.uid_generator.delete_uid(n);
+ },
+ Err(n) => return Err(n)
+ };
+
+ // Validate
+ let r = match self.get_user(id).await {
+ Ok(_) => Err("Could not delete".into()),
+ Err(_) => {
+ Ok("Deleted".into())
+ },
+ };
+
+ let _ = self.save().await;
+ r
+ }
}