update and rename captcha plumbing

This commit is contained in:
realaravinth
2021-07-19 17:12:56 +05:30
parent 1b0a95e768
commit f7c9217667
4 changed files with 94 additions and 37 deletions

View File

@@ -18,6 +18,7 @@ use std::borrow::Cow;
use actix_identity::Identity;
use actix_web::{web, HttpResponse, Responder};
use libmcaptcha::master::messages::RenameBuilder;
use serde::{Deserialize, Serialize};
use super::get_random;
@@ -134,9 +135,17 @@ async fn update_token(
};
}
let payload = payload.into_inner();
let rename = RenameBuilder::default()
.name(payload.key)
.rename_to(key.clone())
.build()
.unwrap();
data.captcha.rename(rename).await?;
let resp = MCaptchaDetails {
key,
name: payload.into_inner().name,
name: payload.name,
};
Ok(HttpResponse::Ok().json(resp))

View File

@@ -141,10 +141,8 @@ async fn init_mcaptcha(data: &AppData, key: &str) -> ServiceResult<()> {
.mcaptcha(mcaptcha)
.build()
.unwrap();
match &data.captcha {
crate::data::SystemGroup::Embedded(val) => val.master.send(msg).await.unwrap(),
crate::data::SystemGroup::Redis(val) => val.master.send(msg).await.unwrap(),
};
data.captcha.add_site(msg).await?;
Ok(())
}

View File

@@ -32,6 +32,7 @@ use libmcaptcha::{
cache::messages::VerifyCaptchaResult,
cache::Save,
errors::CaptchaResult,
master::messages::{AddSite, Rename},
master::{embedded::master::Master as EmbeddedMaster, Master as MasterTrait},
pow::ConfigBuilder as PoWConfigBuilder,
pow::PoWConfig,
@@ -81,17 +82,23 @@ impl SystemGroup {
}
}
// /// utility function to AddSite
// pub async fn add_site(
// &self,
// msg: AddSite,
// ) -> CaptchaResult<()> {
// match self {
// Self::Embedded(val) => val.master.send(msg).await?,
// Self::Redis(val) => val.master.send(msg).await?,
// };
// Ok(())
// }
/// utility function to AddSite
pub async fn add_site(&self, msg: AddSite) -> CaptchaResult<()> {
match self {
Self::Embedded(val) => val.master.send(msg).await?,
Self::Redis(val) => val.master.send(msg).await?,
};
Ok(())
}
/// utility function to rename captcha
pub async fn rename(&self, msg: Rename) -> CaptchaResult<()> {
match self {
Self::Embedded(val) => val.master.send(msg).await?,
Self::Redis(val) => val.master.send(msg).await?,
};
Ok(())
}
fn new_system<A: Save, B: MasterTrait>(m: Addr<B>, c: Addr<A>) -> System<A, B> {
let pow = PoWConfigBuilder::default()