]> Untitled Git - lemmy.git/commitdiff
Remove listing type community. Fixes #2361 (#2377)
authorDessalines <dessalines@users.noreply.github.com>
Fri, 29 Jul 2022 10:57:39 +0000 (06:57 -0400)
committerGitHub <noreply@github.com>
Fri, 29 Jul 2022 10:57:39 +0000 (10:57 +0000)
* Remove listing type community. Fixes #2361

* Have ListingType::All be the default

crates/db_schema/src/lib.rs
crates/db_views/src/comment_view.rs
crates/db_views/src/post_view.rs
crates/db_views_actor/src/community_view.rs
crates/routes/src/feeds.rs

index 718c77689082ffc6ac190eb0d075721e9acfb3ab..57349bd58e33ff68d968ad7797120b2147e60dfa 100644 (file)
@@ -44,7 +44,6 @@ pub enum ListingType {
   All,
   Local,
   Subscribed,
-  Community,
 }
 
 #[derive(EnumString, Display, Debug, Serialize, Deserialize, Clone, Copy)]
index 02c523aa09bb49659c0f86cc740b8888ff259bb9..925ffb52857fa63bef61e690896d45a4f87f0cf6 100644 (file)
@@ -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());
     }
index 9de6edcd4ae84ba7ea3d86abb6a2a4b1e211ca49..483b58a471fba2031d75cf5ead22417b13e5ab46 100644 (file)
@@ -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)
index 21a71725870018145380d17245ec4d2815cecff2..289f77c4d5052c50e4e0ab6883a57d2a20f1af96 100644 (file)
@@ -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,
index e0130eca21853ff729b0d4ab47c5fdf80016cc6b..59bf2708b847c71e5c60a2e3adbbbae30c917726 100644 (file)
@@ -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)