mirror of
https://github.com/LemmyNet/lemmy.git
synced 2025-05-01 07:04:45 +00:00
* Renaming person_mention to person_comment_mention. * Finishing up post body mentions. * Combined tables try 2 * Finishing up combined report table. * Fix ts optionals. * Adding tests, triggers, and history updates for report_combined. * Adding profile. * Add cursor pagination to report_combined view (#5244) * add pagination cursor * store timestamp instead of id in cursor (partial) * Revert "store timestamp instead of id in cursor (partial)" This reverts commit89359dde4b
. * use paginated query builder * Fixing migration and paged API. * Using dullbananas trigger procedure * Removing pointless list routes, reorganizing tests. * Fixing column XOR check. * Forgot to remove list report actions. * Cleanup. * Use internal tagging. * Fixing api tests. * Adding a few indexes. * Fixing migration name. * Fixing unique constraints. * Addressing PR comments. * Start working on profile combined * Adding views and replaceable schema. * A few changes to profile view. - Separating the profile fetch from its combined content fetch. - Starting to separate saved_only into its own combined view. * Finishing up combined person_saved and person_content. * Fixing api tests. * Moving to api-v4 routes. * Fixing imports. * Update crates/db_views/src/report_combined_view.rs Co-authored-by: dullbananas <dull.bananas0@gmail.com> * Update crates/db_views/src/report_combined_view.rs Co-authored-by: dullbananas <dull.bananas0@gmail.com> * Update crates/db_views/src/report_combined_view.rs Co-authored-by: dullbananas <dull.bananas0@gmail.com> * Update migrations/2024-12-02-181601_add_report_combined_table/up.sql Co-authored-by: dullbananas <dull.bananas0@gmail.com> * Update migrations/2024-12-02-181601_add_report_combined_table/up.sql Co-authored-by: dullbananas <dull.bananas0@gmail.com> * Fixing import and fmt. * Fixing null types in postgres. * Comment out err. * Fixing TS issues. * Adding types, fixing allow and blocklist crud. * Starting to work on combined views. * Using dullbananas trigger procedure * Adding the full combined view queries. * Adding tests. * taplo fmt. * Upgrading package.json deps. * Updating pnpm * Most of the bulk work done, need to add tests yet. * Finishing up inbox. * Using assert_length * Fixing sql_format. * Running fmt. * Fixing cargo shear. * Fixing clippy. * Addressing PR comments. * Starting to work on search combined. * Fix * Removing serialization * Removing serialization * Moving db_views_actor and _moderator into db_views. - This is necessary because the combined views use both, and that separation was arbitrary to begin with. db_schema has no such crate separation. * Adding search combined view, need to write tests yet. * Filters done, working on tests. * Adding tests for person, post, and community. * Finishing up tests. * Fixing duped trigger. * Remove saved_only test. * Remove pointless post_tags types. * Remove pointless index. * Changing published to saved for person_saved_combined. * Removing comment. * Renaming modlog when_ columns to published. - Fixes #5312 * Adding strum and simplifying imports. * Avoiding clone in map_to_enum * Changing modded_person to other_person. * Update crates/db_views_moderator/src/modlog_combined_view.rs Co-authored-by: dullbananas <dull.bananas0@gmail.com> * Update crates/db_views_moderator/src/modlog_combined_view.rs Co-authored-by: dullbananas <dull.bananas0@gmail.com> * Update crates/db_views_moderator/src/modlog_combined_view.rs Co-authored-by: dullbananas <dull.bananas0@gmail.com> * Addressing PR comments. * Fixing split. * Revert "Adding strum and simplifying imports." This reverts commit15f1671107
. * Running fmt. * Using assert + matches instead of filter_map. * Adding listPersonContent check. * Updating lemmy-js-client * Fixing mark all as read route, changing mark read to SuccessResponse. * Adding post body mention api test, fixing api tests. * Fixing route locations, and api tests. * Formatting sql. * Formatting sql 2. * Fixing search result, running clippy. * Fixing ts_option. * Adding search_combined.score column, and DB triggers. * Fixing API tests. * Adding an index for score. * Update crates/db_schema/src/newtypes.rs Co-authored-by: dullbananas <dull.bananas0@gmail.com> * Avoiding inner joins for up.sql * Adding person_aggregates.published column. --------- Co-authored-by: dullbananas <dull.bananas0@gmail.com>
66 lines
1.8 KiB
Rust
66 lines
1.8 KiB
Rust
use crate::{
|
|
objects::community::ApubCommunity,
|
|
protocol::collections::group_followers::GroupFollowers,
|
|
};
|
|
use activitypub_federation::{
|
|
config::Data,
|
|
kinds::collection::CollectionType,
|
|
protocol::verification::verify_domains_match,
|
|
traits::Collection,
|
|
};
|
|
use lemmy_api_common::{context::LemmyContext, utils::generate_followers_url};
|
|
use lemmy_db_schema::aggregates::structs::CommunityAggregates;
|
|
use lemmy_db_views::structs::CommunityFollowerView;
|
|
use lemmy_utils::error::LemmyError;
|
|
use url::Url;
|
|
|
|
#[derive(Clone, Debug)]
|
|
pub(crate) struct ApubCommunityFollower(());
|
|
|
|
#[async_trait::async_trait]
|
|
impl Collection for ApubCommunityFollower {
|
|
type Owner = ApubCommunity;
|
|
type DataType = LemmyContext;
|
|
type Kind = GroupFollowers;
|
|
type Error = LemmyError;
|
|
|
|
async fn read_local(
|
|
community: &Self::Owner,
|
|
context: &Data<Self::DataType>,
|
|
) -> Result<Self::Kind, Self::Error> {
|
|
let community_id = community.id;
|
|
let community_followers =
|
|
CommunityFollowerView::count_community_followers(&mut context.pool(), community_id).await?;
|
|
|
|
Ok(GroupFollowers {
|
|
id: generate_followers_url(&community.actor_id)?.into(),
|
|
r#type: CollectionType::Collection,
|
|
total_items: community_followers as i32,
|
|
items: vec![],
|
|
})
|
|
}
|
|
|
|
async fn verify(
|
|
json: &Self::Kind,
|
|
expected_domain: &Url,
|
|
_data: &Data<Self::DataType>,
|
|
) -> Result<(), Self::Error> {
|
|
verify_domains_match(expected_domain, &json.id)?;
|
|
Ok(())
|
|
}
|
|
|
|
async fn from_json(
|
|
json: Self::Kind,
|
|
community: &Self::Owner,
|
|
context: &Data<Self::DataType>,
|
|
) -> Result<Self, Self::Error> {
|
|
CommunityAggregates::update_federated_followers(
|
|
&mut context.pool(),
|
|
community.id,
|
|
json.total_items,
|
|
)
|
|
.await?;
|
|
|
|
Ok(ApubCommunityFollower(()))
|
|
}
|
|
}
|