From 15c352f6b5997a7c0d8cd2307e3389f1c783da94 Mon Sep 17 00:00:00 2001 From: realaravinth Date: Thu, 12 May 2022 19:55:51 +0530 Subject: [PATCH] feat: implement delete_captcha_levels and delete_captcha for sqlx postgres --- db/db-sqlx-postgres/src/lib.rs | 38 ++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/db/db-sqlx-postgres/src/lib.rs b/db/db-sqlx-postgres/src/lib.rs index 6103b66b..a85aaaff 100644 --- a/db/db-sqlx-postgres/src/lib.rs +++ b/db/db-sqlx-postgres/src/lib.rs @@ -374,6 +374,44 @@ impl MCDatabase for Database { Ok(exists) } + + /// Delete all levels of a captcha + async fn delete_captcha_levels( + &self, + username: &str, + captcha_key: &str, + ) -> DBResult<()> { + sqlx::query!( + "DELETE FROM mcaptcha_levels + WHERE config_id = ( + SELECT config_id FROM mcaptcha_config where key = ($1) + AND user_id = ( + SELECT ID from mcaptcha_users WHERE name = $2 + ) + )", + captcha_key, + username + ) + .execute(&self.pool) + .await + .map_err(map_register_err)?; + Ok(()) + } + + /// Delete captcha + async fn delete_captcha(&self, username: &str, captcha_key: &str) -> DBResult<()> { + sqlx::query!( + "DELETE FROM mcaptcha_config WHERE key = ($1) + AND + user_id = (SELECT ID FROM mcaptcha_users WHERE name = $2)", + captcha_key, + username, + ) + .execute(&self.pool) + .await + .map_err(map_register_err)?; + Ok(()) + } } fn now_unix_time_stamp() -> i64 {