mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-02 08:28:18 +00:00
refactor
This commit is contained in:
1 parent
eb23abb7b3
commit
463f76a50f
3 files changed
+11
-16
No files matched your search
+1
-1
@@ -229,7 +229,7 @@ pub async fn create_account_handler(
|
||||
maybe_source,
|
||||
maybe_referral_url,
|
||||
maybe_landing_url,
|
||||
maybe_referral_partner: sanitize_referral_username(request.maybe_referral_username.as_deref()),
|
||||
maybe_referral_partner: request.maybe_referral_username.as_deref().and_then(sanitize_referral_username),
|
||||
maybe_user_token: None, // NB: This parameter is for internal testing only
|
||||
}
|
||||
).await;
|
||||
|
||||
+1
-1
@@ -243,7 +243,7 @@ pub async fn google_sso_handler(
|
||||
claims_subject: &claims_subject,
|
||||
claims_email_address: &claims_email_address,
|
||||
mysql_connection: &mut mysql_connection,
|
||||
maybe_referral_partner: sanitize_referral_username(request.maybe_referral_username.as_deref()),
|
||||
maybe_referral_partner: request.maybe_referral_username.as_deref().and_then(sanitize_referral_username),
|
||||
}).await?;
|
||||
|
||||
user_token = result.user_token;
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
const MAX_REFERRAL_PARTNER_LENGTH: usize = 32;
|
||||
|
||||
/// Sanitize an optional referral username/code for storage.
|
||||
/// Sanitize a referral username/code for storage
|
||||
/// in the `users.maybe_referral_partner` column.
|
||||
/// Trims whitespace and truncates to 32 characters.
|
||||
/// Returns None if the input is None or empty after trimming.
|
||||
pub fn sanitize_referral_username(maybe_value: Option<&str>) -> Option<String> {
|
||||
let value = maybe_value?;
|
||||
/// Returns None if empty after trimming.
|
||||
pub fn sanitize_referral_username(value: &str) -> Option<String> {
|
||||
let trimmed = value.trim();
|
||||
if trimmed.is_empty() {
|
||||
return None;
|
||||
@@ -17,35 +17,30 @@ pub fn sanitize_referral_username(maybe_value: Option<&str>) -> Option<String> {
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn none_returns_none() {
|
||||
assert_eq!(sanitize_referral_username(None), None);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn empty_returns_none() {
|
||||
assert_eq!(sanitize_referral_username(Some("")), None);
|
||||
assert_eq!(sanitize_referral_username(""), None);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn whitespace_only_returns_none() {
|
||||
assert_eq!(sanitize_referral_username(Some(" ")), None);
|
||||
assert_eq!(sanitize_referral_username(" "), None);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn trims_whitespace() {
|
||||
assert_eq!(sanitize_referral_username(Some(" alice ")), Some("alice".to_string()));
|
||||
assert_eq!(sanitize_referral_username(" alice "), Some("alice".to_string()));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn truncates_long_values() {
|
||||
let long = "a".repeat(50);
|
||||
let result = sanitize_referral_username(Some(&long)).unwrap();
|
||||
let result = sanitize_referral_username(&long).unwrap();
|
||||
assert_eq!(result.len(), 32);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn passes_through_normal_values() {
|
||||
assert_eq!(sanitize_referral_username(Some("bob123")), Some("bob123".to_string()));
|
||||
assert_eq!(sanitize_referral_username("bob123"), Some("bob123".to_string()));
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user