X-Git-Url: http://these/git/?a=blobdiff_plain;f=crates%2Fapi_crud%2Fsrc%2Fsite%2Fcreate.rs;h=34e153c59a0642a4687eaf043351a934571e4567;hb=162ec83017a9d7f15c7e7ad7cefec62ab1e86d35;hp=59a57ff8f2ca82dbbd7ce88c119617095953aa0e;hpb=37998b3398ed925a7640a9b67d1dc6ef871893a9;p=lemmy.git diff --git a/crates/api_crud/src/site/create.rs b/crates/api_crud/src/site/create.rs index 59a57ff8..34e153c5 100644 --- a/crates/api_crud/src/site/create.rs +++ b/crates/api_crud/src/site/create.rs @@ -5,12 +5,8 @@ use lemmy_api_common::{ context::LemmyContext, site::{CreateSite, SiteResponse}, utils::{ - generate_site_inbox_url, - is_admin, - local_site_rate_limit_to_rate_limit_config, - local_user_view_from_jwt, - sanitize_html, - sanitize_html_opt, + generate_site_inbox_url, is_admin, local_site_rate_limit_to_rate_limit_config, + local_user_view_from_jwt, sanitize_html, sanitize_html_opt, }, }; use lemmy_db_schema::{ @@ -30,11 +26,8 @@ use lemmy_utils::{ utils::{ slurs::{check_slurs, check_slurs_opt}, validation::{ - build_and_check_regex, - check_site_visibility_valid, - is_valid_body_field, - site_description_length_check, - site_name_length_check, + build_and_check_regex, check_site_visibility_valid, is_valid_body_field, + site_description_length_check, site_name_length_check, }, }, }; @@ -60,66 +53,69 @@ pub async fn create_site( let sidebar = sanitize_html_opt(&data.sidebar); let description = sanitize_html_opt(&data.description); - let site_form = SiteUpdateForm::builder() - .name(Some(name)) - .sidebar(diesel_option_overwrite(sidebar)) - .description(diesel_option_overwrite(description)) - .icon(diesel_option_overwrite_to_url(&data.icon)?) - .banner(diesel_option_overwrite_to_url(&data.banner)?) - .actor_id(Some(actor_id)) - .last_refreshed_at(Some(naive_now())) - .inbox_url(inbox_url) - .private_key(Some(Some(keypair.private_key))) - .public_key(Some(keypair.public_key)) - .build(); + let site_form = SiteUpdateForm { + name: Some(name), + sidebar: diesel_option_overwrite(sidebar), + description: diesel_option_overwrite(description), + icon: diesel_option_overwrite_to_url(&data.icon)?, + banner: diesel_option_overwrite_to_url(&data.banner)?, + actor_id: Some(actor_id), + last_refreshed_at: Some(naive_now()), + inbox_url, + private_key: Some(Some(keypair.private_key)), + public_key: Some(keypair.public_key), + ..Default::default() + }; let site_id = local_site.site_id; Site::update(&mut context.pool(), site_id, &site_form).await?; - let application_question = sanitize_html_opt(&data.application_question); let default_theme = sanitize_html_opt(&data.default_theme); let legal_information = sanitize_html_opt(&data.legal_information); - let local_site_form = LocalSiteUpdateForm::builder() + let local_site_form = LocalSiteUpdateForm { // Set the site setup to true - .site_setup(Some(true)) - .enable_downvotes(data.enable_downvotes) - .registration_mode(data.registration_mode) - .enable_nsfw(data.enable_nsfw) - .community_creation_admin_only(data.community_creation_admin_only) - .require_email_verification(data.require_email_verification) - .application_question(diesel_option_overwrite(application_question)) - .private_instance(data.private_instance) - .default_theme(default_theme) - .default_post_listing_type(data.default_post_listing_type) - .legal_information(diesel_option_overwrite(legal_information)) - .application_email_admins(data.application_email_admins) - .hide_modlog_mod_names(data.hide_modlog_mod_names) - .updated(Some(Some(naive_now()))) - .slur_filter_regex(diesel_option_overwrite(data.slur_filter_regex.clone())) - .actor_name_max_length(data.actor_name_max_length) - .federation_enabled(data.federation_enabled) - .captcha_enabled(data.captcha_enabled) - .captcha_difficulty(data.captcha_difficulty.clone()) - .build(); + site_setup: Some(true), + enable_downvotes: data.enable_downvotes, + enable_federated_downvotes: data.enable_federated_downvotes, + registration_mode: data.registration_mode, + enable_nsfw: data.enable_nsfw, + community_creation_admin_only: data.community_creation_admin_only, + require_email_verification: data.require_email_verification, + application_question: diesel_option_overwrite(application_question), + private_instance: data.private_instance, + default_theme, + default_post_listing_type: data.default_post_listing_type, + legal_information: diesel_option_overwrite(legal_information), + application_email_admins: data.application_email_admins, + hide_modlog_mod_names: data.hide_modlog_mod_names, + updated: Some(Some(naive_now())), + slur_filter_regex: diesel_option_overwrite(data.slur_filter_regex.clone()), + actor_name_max_length: data.actor_name_max_length, + federation_enabled: data.federation_enabled, + captcha_enabled: data.captcha_enabled, + captcha_difficulty: data.captcha_difficulty.clone(), + ..Default::default() + }; LocalSite::update(&mut context.pool(), &local_site_form).await?; - let local_site_rate_limit_form = LocalSiteRateLimitUpdateForm::builder() - .message(data.rate_limit_message) - .message_per_second(data.rate_limit_message_per_second) - .post(data.rate_limit_post) - .post_per_second(data.rate_limit_post_per_second) - .register(data.rate_limit_register) - .register_per_second(data.rate_limit_register_per_second) - .image(data.rate_limit_image) - .image_per_second(data.rate_limit_image_per_second) - .comment(data.rate_limit_comment) - .comment_per_second(data.rate_limit_comment_per_second) - .search(data.rate_limit_search) - .search_per_second(data.rate_limit_search_per_second) - .build(); + let local_site_rate_limit_form = LocalSiteRateLimitUpdateForm { + message: data.rate_limit_message, + message_per_second: data.rate_limit_message_per_second, + post: data.rate_limit_post, + post_per_second: data.rate_limit_post_per_second, + register: data.rate_limit_register, + register_per_second: data.rate_limit_register_per_second, + image: data.rate_limit_image, + image_per_second: data.rate_limit_image_per_second, + comment: data.rate_limit_comment, + comment_per_second: data.rate_limit_comment_per_second, + search: data.rate_limit_search, + search_per_second: data.rate_limit_search_per_second, + ..Default::default() + }; LocalSiteRateLimit::update(&mut context.pool(), &local_site_rate_limit_form).await?; @@ -144,7 +140,7 @@ pub async fn create_site( fn validate_create_payload(local_site: &LocalSite, create_site: &CreateSite) -> LemmyResult<()> { // Make sure the site hasn't already been set up... if local_site.site_setup { - return Err(LemmyErrorType::SiteAlreadyExists)?; + Err(LemmyErrorType::SiteAlreadyExists)?; }; // Check that the slur regex compiles, and returns the regex if valid... @@ -510,6 +506,7 @@ mod tests { site_id: Default::default(), site_setup, enable_downvotes: false, + enable_federated_downvotes: false, enable_nsfw: false, community_creation_admin_only: false, require_email_verification: false, @@ -553,6 +550,7 @@ mod tests { icon: None, banner: None, enable_downvotes: None, + enable_federated_downvotes: None, enable_nsfw: None, community_creation_admin_only: None, require_email_verification: None,