feat: account purge handler, tombstone cleanup, AP tombstone signing + 410
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
pub mod composite_handler;
|
||||
pub mod deletion_notifier;
|
||||
pub mod event_handler;
|
||||
pub mod federation_event_bridge;
|
||||
pub mod federation_ports;
|
||||
@@ -7,6 +8,7 @@ pub mod objects;
|
||||
pub mod remote_review_repository;
|
||||
pub mod review_handler;
|
||||
pub mod social_adapter;
|
||||
pub mod tombstone_gate;
|
||||
pub(crate) mod urls;
|
||||
pub mod user_adapter;
|
||||
pub mod watchlist_handler;
|
||||
@@ -20,6 +22,7 @@ pub use k_ap::{
|
||||
FollowRepository, Follower, FollowerStatus, FollowingStatus, LocalObject, RemoteActor,
|
||||
};
|
||||
|
||||
pub use deletion_notifier::ApDeletionNotifier;
|
||||
pub use event_handler::ActivityPubEventHandler;
|
||||
pub use federation_ports::ApServiceAdapter;
|
||||
pub use remote_review_repository::{NewRemoteReview, RemoteReviewRepository, RemoteReviewUpdate};
|
||||
@@ -46,6 +49,7 @@ pub struct ActivityPubWire {
|
||||
pub service: std::sync::Arc<ActivityPubService>,
|
||||
pub router: axum::Router,
|
||||
pub event_handler: std::sync::Arc<dyn domain::ports::EventHandler>,
|
||||
pub deletion_notifier: std::sync::Arc<dyn domain::ports::FederationDeletionNotifier>,
|
||||
}
|
||||
|
||||
pub struct ActivityPubDeps {
|
||||
@@ -139,7 +143,7 @@ pub async fn wire(deps: ActivityPubDeps) -> anyhow::Result<ActivityPubWire> {
|
||||
.actor_repo(actor_repo)
|
||||
.blocklist_repo(blocklist_repo)
|
||||
.user_repo(std::sync::Arc::new(DomainUserRepoAdapter::new(
|
||||
user_repo,
|
||||
std::sync::Arc::clone(&user_repo),
|
||||
instance.clone(),
|
||||
)))
|
||||
.signed_fetch_actor_id(INSTANCE_ACTOR_ID)
|
||||
@@ -157,7 +161,16 @@ pub async fn wire(deps: ActivityPubDeps) -> anyhow::Result<ActivityPubWire> {
|
||||
.await?,
|
||||
);
|
||||
|
||||
let router = concrete.router();
|
||||
let router = concrete
|
||||
.router()
|
||||
.layer(axum::middleware::from_fn_with_state(
|
||||
std::sync::Arc::clone(&user_repo),
|
||||
tombstone_gate::tombstone_gate,
|
||||
));
|
||||
let deletion_notifier = std::sync::Arc::new(ApDeletionNotifier::new(
|
||||
std::sync::Arc::clone(&concrete),
|
||||
instance.clone(),
|
||||
)) as std::sync::Arc<dyn domain::ports::FederationDeletionNotifier>;
|
||||
let event_handler = std::sync::Arc::new(ActivityPubEventHandler::new(
|
||||
std::sync::Arc::clone(&concrete),
|
||||
local_ap_content,
|
||||
@@ -171,6 +184,7 @@ pub async fn wire(deps: ActivityPubDeps) -> anyhow::Result<ActivityPubWire> {
|
||||
|
||||
let ports = std::sync::Arc::new(federation_ports::ApServiceAdapter::new(
|
||||
std::sync::Arc::clone(&concrete),
|
||||
std::sync::Arc::clone(&user_repo),
|
||||
));
|
||||
|
||||
Ok(ActivityPubWire {
|
||||
@@ -182,5 +196,6 @@ pub async fn wire(deps: ActivityPubDeps) -> anyhow::Result<ActivityPubWire> {
|
||||
service: concrete,
|
||||
router,
|
||||
event_handler,
|
||||
deletion_notifier,
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user