From 19ccaf767c5d8a25cc6535a8dcd124fd87425c8b Mon Sep 17 00:00:00 2001 From: Dessalines Date: Thu, 20 Jan 2022 09:04:54 -0500 Subject: [PATCH] Cleaning optional post bodies. Fixes #2039 (#2043) * Cleaning optional post bodies. Fixes #2039 * Only trim once. * Using .map() instead. --- crates/api_crud/src/post/create.rs | 10 ++++++++-- crates/api_crud/src/post/update.rs | 4 ++-- crates/utils/src/utils.rs | 4 ++++ 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/crates/api_crud/src/post/create.rs b/crates/api_crud/src/post/create.rs index 276504be3..81a12fc54 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 97dab1cbe..7a85f8638 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 90f780e26..2b28ae0ea 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};