From 3b86e1539912075c9491af40177fdd91e47b4bf8 Mon Sep 17 00:00:00 2001 From: Dessalines Date: Fri, 29 Jul 2022 06:57:39 -0400 Subject: [PATCH] Remove listing type community. Fixes #2361 (#2377) * Remove listing type community. Fixes #2361 * Have ListingType::All be the default --- crates/db_schema/src/lib.rs | 1 - crates/db_views/src/comment_view.rs | 29 +++++--------- crates/db_views/src/post_view.rs | 42 +++++++-------------- crates/db_views_actor/src/community_view.rs | 2 +- crates/routes/src/feeds.rs | 1 - 5 files changed, 25 insertions(+), 50 deletions(-) diff --git a/crates/db_schema/src/lib.rs b/crates/db_schema/src/lib.rs index 718c77689..57349bd58 100644 --- a/crates/db_schema/src/lib.rs +++ b/crates/db_schema/src/lib.rs @@ -44,7 +44,6 @@ pub enum ListingType { All, Local, Subscribed, - Community, } #[derive(EnumString, Display, Debug, Serialize, Deserialize, Clone, Copy)] diff --git a/crates/db_views/src/comment_view.rs b/crates/db_views/src/comment_view.rs index 02c523aa0..925ffb528 100644 --- a/crates/db_views/src/comment_view.rs +++ b/crates/db_views/src/comment_view.rs @@ -1,9 +1,5 @@ use crate::structs::CommentView; -use diesel::{ - dsl::*, - result::{Error, Error::QueryBuilderError}, - *, -}; +use diesel::{dsl::*, result::Error, *}; use lemmy_db_schema::{ aggregates::structs::CommentAggregates, newtypes::{CommentId, CommunityId, DbUrl, PersonId, PostId}, @@ -232,7 +228,7 @@ impl<'a> CommentQueryBuilder<'a> { pub fn create(conn: &'a PgConnection) -> Self { CommentQueryBuilder { conn, - listing_type: None, + listing_type: Some(ListingType::All), sort: None, community_id: None, community_actor_id: None, @@ -445,22 +441,17 @@ impl<'a> CommentQueryBuilder<'a> { .or(community_follower::person_id.eq(person_id_join)), ) } - ListingType::Community => { - if self.community_actor_id.is_none() && self.community_id.is_none() { - return Err(QueryBuilderError("No community actor or id given".into())); - } else { - if let Some(community_id) = self.community_id { - query = query.filter(post::community_id.eq(community_id)); - } - - if let Some(community_actor_id) = self.community_actor_id { - query = query.filter(community::actor_id.eq(community_actor_id)) - } - } - } } }; + if let Some(community_id) = self.community_id { + query = query.filter(post::community_id.eq(community_id)); + } + + if let Some(community_actor_id) = self.community_actor_id { + query = query.filter(community::actor_id.eq(community_actor_id)) + } + if self.saved_only.unwrap_or(false) { query = query.filter(comment_saved::id.is_not_null()); } diff --git a/crates/db_views/src/post_view.rs b/crates/db_views/src/post_view.rs index 9de6edcd4..483b58a47 100644 --- a/crates/db_views/src/post_view.rs +++ b/crates/db_views/src/post_view.rs @@ -1,10 +1,5 @@ use crate::structs::PostView; -use diesel::{ - dsl::*, - pg::Pg, - result::{Error, Error::QueryBuilderError}, - *, -}; +use diesel::{dsl::*, pg::Pg, result::Error, *}; use lemmy_db_schema::{ aggregates::structs::PostAggregates, newtypes::{CommunityId, DbUrl, PersonId, PostId}, @@ -178,7 +173,7 @@ impl<'a> PostQueryBuilder<'a> { pub fn create(conn: &'a PgConnection) -> Self { PostQueryBuilder { conn, - listing_type: None, + listing_type: Some(ListingType::All), sort: None, creator_id: None, community_id: None, @@ -362,26 +357,21 @@ impl<'a> PostQueryBuilder<'a> { .or(community_follower::person_id.eq(person_id_join)), ) } - ListingType::Community => { - if self.community_actor_id.is_none() && self.community_id.is_none() { - return Err(QueryBuilderError("No community actor or id given".into())); - } else { - if let Some(community_id) = self.community_id { - query = query - .filter(post::community_id.eq(community_id)) - .then_order_by(post_aggregates::stickied.desc()); - } - - if let Some(community_actor_id) = self.community_actor_id { - query = query - .filter(community::actor_id.eq(community_actor_id)) - .then_order_by(post_aggregates::stickied.desc()); - } - } - } } } + if let Some(community_id) = self.community_id { + query = query + .filter(post::community_id.eq(community_id)) + .then_order_by(post_aggregates::stickied.desc()); + } + + if let Some(community_actor_id) = self.community_actor_id { + query = query + .filter(community::actor_id.eq(community_actor_id)) + .then_order_by(post_aggregates::stickied.desc()); + } + if let Some(url_search) = self.url_search { query = query.filter(post::url.eq(url_search)); } @@ -517,7 +507,6 @@ mod tests { }, traits::{Blockable, Crud, Likeable}, utils::establish_unpooled_connection, - ListingType, SortType, SubscribedType, }; @@ -621,7 +610,6 @@ mod tests { }; let read_post_listings_with_person = PostQueryBuilder::create(&conn) - .listing_type(ListingType::Community) .sort(SortType::New) .show_bot_accounts(false) .community_id(inserted_community.id) @@ -630,7 +618,6 @@ mod tests { .unwrap(); let read_post_listings_no_person = PostQueryBuilder::create(&conn) - .listing_type(ListingType::Community) .sort(SortType::New) .community_id(inserted_community.id) .list() @@ -730,7 +717,6 @@ mod tests { CommunityBlock::block(&conn, &community_block).unwrap(); let read_post_listings_with_person_after_block = PostQueryBuilder::create(&conn) - .listing_type(ListingType::Community) .sort(SortType::New) .show_bot_accounts(false) .community_id(inserted_community.id) diff --git a/crates/db_views_actor/src/community_view.rs b/crates/db_views_actor/src/community_view.rs index 21a717258..289f77c4d 100644 --- a/crates/db_views_actor/src/community_view.rs +++ b/crates/db_views_actor/src/community_view.rs @@ -107,7 +107,7 @@ impl<'a> CommunityQueryBuilder<'a> { CommunityQueryBuilder { conn, my_person_id: None, - listing_type: None, + listing_type: Some(ListingType::All), sort: None, show_nsfw: None, search_term: None, diff --git a/crates/routes/src/feeds.rs b/crates/routes/src/feeds.rs index e0130eca2..59bf2708b 100644 --- a/crates/routes/src/feeds.rs +++ b/crates/routes/src/feeds.rs @@ -213,7 +213,6 @@ fn get_feed_community( let community = Community::read_from_name(conn, community_name, false)?; let posts = PostQueryBuilder::create(conn) - .listing_type(ListingType::Community) .sort(*sort_type) .community_id(community.id) .limit(RSS_FETCH_LIMIT)