community_id,
creator_id,
deleted,
+ featured_community,
name,
post,
published,
removed,
- stickied,
thumbnail_url,
updated,
url,
.filter(community_id.eq(the_community_id))
.filter(deleted.eq(false))
.filter(removed.eq(false))
+ .then_order_by(featured_community.desc())
+ .then_order_by(published.desc())
+ .limit(FETCH_LIMIT_MAX)
+ .load::<Self>(conn)
+ .await
+ }
+
+ pub async fn list_featured_for_community(
+ pool: &DbPool,
+ the_community_id: CommunityId,
+ ) -> Result<Vec<Self>, Error> {
+ let conn = &mut get_conn(pool).await?;
+ post
+ .filter(community_id.eq(the_community_id))
+ .filter(deleted.eq(false))
+ .filter(removed.eq(false))
+ .filter(featured_community.eq(true))
.then_order_by(published.desc())
- .then_order_by(stickied.desc())
.limit(FETCH_LIMIT_MAX)
.load::<Self>(conn)
.await
published: inserted_post.published,
removed: false,
locked: false,
- stickied: false,
nsfw: false,
deleted: false,
updated: None,
ap_id: inserted_post.ap_id.clone(),
local: true,
language_id: Default::default(),
+ featured_community: false,
+ featured_local: false,
};
// Post Like