feat: move email tokens to valkey

No need to have them in permanent DB storage when they are temporary
This commit is contained in:
Radical 2025-06-03 11:01:33 +00:00
parent 4cbe551061
commit b223dff4ba
5 changed files with 27 additions and 53 deletions

View file

@ -46,20 +46,15 @@ pub async fn get(
let me = Me::get(&mut conn, uuid).await?;
let email_token = EmailToken::get(&mut conn, me.uuid).await?;
let email_token = EmailToken::get(&data, me.uuid).await?;
if query.token != email_token.token {
return Ok(HttpResponse::Unauthorized().finish());
}
if Utc::now().signed_duration_since(email_token.created_at) > Duration::hours(24) {
email_token.delete(&mut conn).await?;
return Ok(HttpResponse::Gone().finish());
}
me.verify_email(&mut conn).await?;
email_token.delete(&mut conn).await?;
email_token.delete(&data).await?;
Ok(HttpResponse::Ok().finish())
}
@ -90,9 +85,9 @@ pub async fn post(req: HttpRequest, data: web::Data<Data>) -> Result<HttpRespons
return Ok(HttpResponse::NoContent().finish());
}
if let Ok(email_token) = EmailToken::get(&mut conn, me.uuid).await {
if let Ok(email_token) = EmailToken::get(&data, me.uuid).await {
if Utc::now().signed_duration_since(email_token.created_at) > Duration::hours(1) {
email_token.delete(&mut conn).await?;
email_token.delete(&data).await?;
} else {
return Err(Error::TooManyRequests(
"Please allow 1 hour before sending a new email".to_string(),