mirror of
https://github.com/LemmyNet/lemmy.git
synced 2024-11-16 01:14:02 +00:00
Nutomic
3565ad984a
* Remove chatserver * fix clippy * Remove captchas (fixes #2922) * fix prettier * fix api_common build * cargo fmt
34 lines
1 KiB
Rust
34 lines
1 KiB
Rust
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;
|
|
|
|
mod list_comments;
|
|
mod list_posts;
|
|
mod read_community;
|
|
mod read_person;
|
|
mod resolve_object;
|
|
mod search;
|
|
|
|
#[async_trait::async_trait]
|
|
pub trait PerformApub {
|
|
type Response: serde::ser::Serialize + Send;
|
|
|
|
async fn perform(&self, context: &Data<LemmyContext>) -> 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)
|
|
}
|