-use actix_web::web::Data;
+use activitypub_federation::config::Data;
use lemmy_api_common::context::LemmyContext;
+use lemmy_db_schema::{newtypes::CommunityId, source::local_site::LocalSite, ListingType};
use lemmy_utils::{error::LemmyError, ConnectionId};
mod list_comments;
mod resolve_object;
mod search;
-#[async_trait::async_trait(?Send)]
+#[async_trait::async_trait]
pub trait PerformApub {
type Response: serde::ser::Serialize + Send;
websocket_id: Option<ConnectionId>,
) -> Result<Self::Response, LemmyError>;
}
+
+/// Returns default listing type, depending if the query is for frontpage or community.
+fn listing_type_with_default(
+ type_: Option<ListingType>,
+ local_site: &LocalSite,
+ community_id: Option<CommunityId>,
+) -> Result<ListingType, LemmyError> {
+ // On frontpage use listing type from param or admin configured default
+ let listing_type = if community_id.is_none() {
+ type_.unwrap_or(local_site.default_post_listing_type)
+ } else {
+ // inside of community show everything
+ ListingType::All
+ };
+ Ok(listing_type)
+}