From: Dessalines Date: Thu, 20 Jan 2022 14:04:54 +0000 (-0500) Subject: Cleaning optional post bodies. Fixes #2039 (#2043) X-Git-Url: http://these/git/%7B%24%7B%60data:application/%22%7Burl%7D/%7BpictshareAvatarThumbnail%28?a=commitdiff_plain;h=19ccaf767c5d8a25cc6535a8dcd124fd87425c8b;p=lemmy.git Cleaning optional post bodies. Fixes #2039 (#2043) * Cleaning optional post bodies. Fixes #2039 * Only trim once. * Using .map() instead. --- diff --git a/crates/api_crud/src/post/create.rs b/crates/api_crud/src/post/create.rs index 276504be..81a12fc5 100644 --- a/crates/api_crud/src/post/create.rs +++ b/crates/api_crud/src/post/create.rs @@ -26,7 +26,13 @@ use lemmy_db_schema::{ }; use lemmy_utils::{ request::fetch_site_data, - utils::{check_slurs, check_slurs_opt, clean_url_params, is_valid_post_title}, + utils::{ + check_slurs, + check_slurs_opt, + clean_optional_text, + clean_url_params, + is_valid_post_title, + }, ConnectionId, LemmyError, }; @@ -72,7 +78,7 @@ impl PerformCrud for CreatePost { let post_form = PostForm { name: data.name.trim().to_owned(), url: data_url.map(|u| clean_url_params(u.to_owned()).into()), - body: data.body.to_owned(), + body: clean_optional_text(&data.body), community_id: data.community_id, creator_id: local_user_view.person.id, nsfw: data.nsfw, diff --git a/crates/api_crud/src/post/update.rs b/crates/api_crud/src/post/update.rs index 97dab1cb..7a85f863 100644 --- a/crates/api_crud/src/post/update.rs +++ b/crates/api_crud/src/post/update.rs @@ -18,7 +18,7 @@ use lemmy_db_schema::{ }; use lemmy_utils::{ request::fetch_site_data, - utils::{check_slurs_opt, clean_url_params, is_valid_post_title}, + utils::{check_slurs_opt, clean_optional_text, clean_url_params, is_valid_post_title}, ConnectionId, LemmyError, }; @@ -79,7 +79,7 @@ impl PerformCrud for EditPost { community_id: orig_post.community_id, name: data.name.to_owned().unwrap_or(orig_post.name), url: data_url.map(|u| clean_url_params(u.to_owned()).into()), - body: data.body.to_owned(), + body: clean_optional_text(&data.body), nsfw: data.nsfw, updated: Some(naive_now()), embed_title, diff --git a/crates/utils/src/utils.rs b/crates/utils/src/utils.rs index 90f780e2..2b28ae0e 100644 --- a/crates/utils/src/utils.rs +++ b/crates/utils/src/utils.rs @@ -175,6 +175,10 @@ pub fn clean_url_params(mut url: Url) -> Url { url } +pub fn clean_optional_text(text: &Option) -> Option { + text.as_ref().map(|t| t.trim().to_string()) +} + #[cfg(test)] mod tests { use crate::utils::{clean_url_params, is_valid_post_title};