* Remove listing type community. Fixes #2361 * Have ListingType::All be the default
This commit is contained in:
parent
b78826c2c8
commit
3b86e15399
5 changed files with 25 additions and 50 deletions
|
@ -44,7 +44,6 @@ pub enum ListingType {
|
|||
All,
|
||||
Local,
|
||||
Subscribed,
|
||||
Community,
|
||||
}
|
||||
|
||||
#[derive(EnumString, Display, Debug, Serialize, Deserialize, Clone, Copy)]
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue