From 34f610cdd98f0437f74b39b43c9ff00c632945e6 Mon Sep 17 00:00:00 2001 From: Xevion Date: Tue, 13 Jan 2026 20:23:09 -0600 Subject: [PATCH] fix: improve slugify to handle periods and use filter_map --- src/db/mod.rs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/db/mod.rs b/src/db/mod.rs index e3b14c0..493ab15 100644 --- a/src/db/mod.rs +++ b/src/db/mod.rs @@ -66,13 +66,13 @@ pub async fn health_check(pool: &PgPool) -> Result<(), sqlx::Error> { pub fn slugify(text: &str) -> String { text.to_lowercase() .chars() - .map(|c| { + .filter_map(|c| { if c.is_alphanumeric() { - c - } else if c.is_whitespace() || c == '-' || c == '_' { - '-' + Some(c) + } else if c.is_whitespace() || c == '-' || c == '_' || c == '.' { + Some('-') } else { - '\0' + None } }) .collect::() @@ -85,6 +85,7 @@ pub fn slugify(text: &str) -> String { /// Project status enum #[derive(Debug, Clone, Copy, PartialEq, Eq, sqlx::Type, serde::Serialize, serde::Deserialize)] #[sqlx(type_name = "project_status", rename_all = "lowercase")] +#[serde(rename_all = "lowercase")] pub enum ProjectStatus { Active, Maintained,