feat: define interface for getting captcha levels

This commit is contained in:
realaravinth 2022-05-13 19:07:27 +05:30
parent 2dff139ae2
commit 04a9bc5cc7
No known key found for this signature in database
GPG key ID: AD9F0F08E855ED88
2 changed files with 17 additions and 0 deletions

View file

@ -176,6 +176,13 @@ pub trait MCDatabase: std::marker::Send + std::marker::Sync + CloneSPDatabase {
/// Delete captcha
async fn delete_captcha(&self, username: &str, captcha_key: &str) -> DBResult<()>;
/// Get captcha levels
async fn get_captcha_levels(
&self,
username: Option<&str>,
captcha_key: &str,
) -> DBResult<Vec<Level>>;
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]

View file

@ -139,6 +139,16 @@ pub async fn database_works<'a, T: MCDatabase>(
// add captcha levels
db.add_captcha_levels(p.username, c.key, l).await.unwrap();
// get captcha levels with username
let levels = db
.get_captcha_levels(Some(p.username), c.key)
.await
.unwrap();
assert_eq!(levels, l);
// get captcha levels without username
let levels = db.get_captcha_levels(None, c.key).await.unwrap();
assert_eq!(levels, l);
// delete captcha levels
db.delete_captcha_levels(p.username, c.key).await.unwrap();