fix(bootstrap,worker): pass shared federation_repo to ApFederationAdapter

This commit is contained in:
2026-05-28 02:26:57 +02:00
parent a253efacec
commit 9c93baaa39
2 changed files with 10 additions and 3 deletions

View File

@@ -76,9 +76,10 @@ pub async fn build(cfg: &Config) -> Infrastructure {
// 3. ActivityPub federation // 3. ActivityPub federation
let connections_repo = Arc::new(PgRemoteActorConnectionRepository::new(pool.clone())); let connections_repo = Arc::new(PgRemoteActorConnectionRepository::new(pool.clone()));
let federation_repo = Arc::new(PostgresFederationRepository::new(pool.clone()));
let raw_ap_service = Arc::new( let raw_ap_service = Arc::new(
ActivityPubService::builder( ActivityPubService::builder(
Arc::new(PostgresFederationRepository::new(pool.clone())), federation_repo.clone(),
Arc::new(PostgresApUserRepository::new( Arc::new(PostgresApUserRepository::new(
pool.clone(), pool.clone(),
cfg.base_url.clone(), cfg.base_url.clone(),
@@ -98,7 +99,11 @@ pub async fn build(cfg: &Config) -> Infrastructure {
.await .await
.expect("Failed to build ActivityPubService"), .expect("Failed to build ActivityPubService"),
); );
let ap_service = Arc::new(ApFederationAdapter::new(raw_ap_service, connections_repo)); let ap_service = Arc::new(ApFederationAdapter::new(
raw_ap_service,
connections_repo,
federation_repo,
));
// 4. Storage adapter // 4. Storage adapter
let storage_cfg = StorageConfig { let storage_cfg = StorageConfig {

View File

@@ -40,9 +40,10 @@ pub async fn build(database_url: &str, base_url: &str, nats_url: &str) -> Worker
// ActivityPub service (for federation fan-out) // ActivityPub service (for federation fan-out)
let connections_repo_worker = Arc::new(PgRemoteActorConnectionRepository::new(pool.clone())); let connections_repo_worker = Arc::new(PgRemoteActorConnectionRepository::new(pool.clone()));
let federation_repo_worker = Arc::new(PostgresFederationRepository::new(pool.clone()));
let raw_ap_service = Arc::new( let raw_ap_service = Arc::new(
ActivityPubService::builder( ActivityPubService::builder(
Arc::new(PostgresFederationRepository::new(pool.clone())), federation_repo_worker.clone(),
Arc::new(PostgresApUserRepository::new( Arc::new(PostgresApUserRepository::new(
pool.clone(), pool.clone(),
base_url.to_string(), base_url.to_string(),
@@ -63,6 +64,7 @@ pub async fn build(database_url: &str, base_url: &str, nats_url: &str) -> Worker
let ap_service = Arc::new(ApFederationAdapter::new( let ap_service = Arc::new(ApFederationAdapter::new(
raw_ap_service, raw_ap_service,
connections_repo_worker, connections_repo_worker,
federation_repo_worker,
)); ));
let ap_outbound = ap_service.clone() as Arc<dyn OutboundFederationPort>; let ap_outbound = ap_service.clone() as Arc<dyn OutboundFederationPort>;
let ap_repo_worker = let ap_repo_worker =