From a50763f52074d2d26b28d569fa89a6c53d100024 Mon Sep 17 00:00:00 2001 From: realaravinth Date: Sat, 23 Jul 2022 15:49:41 +0530 Subject: [PATCH] feat: implement get_secret_from_captcha for db-sqlx-mariadb --- db/db-sqlx-maria/sqlx-data.json | 25 +++++++++++++++++++++++++ db/db-sqlx-maria/src/lib.rs | 16 ++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/db/db-sqlx-maria/sqlx-data.json b/db/db-sqlx-maria/sqlx-data.json index 256ceeeb..35887e6f 100644 --- a/db/db-sqlx-maria/sqlx-data.json +++ b/db/db-sqlx-maria/sqlx-data.json @@ -431,6 +431,31 @@ }, "query": "SELECT config_id from mcaptcha_config WHERE captcha_key = ?" }, + "b9258c2494d95701d19703cf5cd05a222057a0ccad943192138b1a4a94bf823b": { + "describe": { + "columns": [ + { + "name": "secret", + "ordinal": 0, + "type_info": { + "char_set": 224, + "flags": { + "bits": 4101 + }, + "max_size": 200, + "type": "VarString" + } + } + ], + "nullable": [ + false + ], + "parameters": { + "Right": 1 + } + }, + "query": "SELECT secret FROM mcaptcha_users WHERE ID = (\n SELECT user_id FROM mcaptcha_config WHERE captcha_key = ?\n )" + }, "b95e5a60a202cb646d5e76df8c7395e4bf881a6dd14e28e6f2e8b93e0536b331": { "describe": { "columns": [], diff --git a/db/db-sqlx-maria/src/lib.rs b/db/db-sqlx-maria/src/lib.rs index c30dc207..38be17aa 100644 --- a/db/db-sqlx-maria/src/lib.rs +++ b/db/db-sqlx-maria/src/lib.rs @@ -287,6 +287,22 @@ impl MCDatabase for Database { Ok(secret) } + /// get a user's secret from a captcha key + async fn get_secret_from_captcha(&self, key: &str) -> DBResult { + let secret = sqlx::query_as!( + Secret, + r#"SELECT secret FROM mcaptcha_users WHERE ID = ( + SELECT user_id FROM mcaptcha_config WHERE captcha_key = ? + )"#, + key, + ) + .fetch_one(&self.pool) + .await + .map_err(|e| map_row_not_found_err(e, DBError::AccountNotFound))?; + + Ok(secret) + } + /// update a user's secret async fn update_secret(&self, username: &str, secret: &str) -> DBResult<()> { sqlx::query!(