feat(api): wire library_repo, app_settings_repo, library_sync_adapter into AppState; start scheduler

This commit is contained in:
2026-03-20 00:23:25 +01:00
parent aa5e3c28aa
commit d92d629fbc
4 changed files with 65 additions and 3 deletions

View File

@@ -7,12 +7,13 @@ use std::sync::Arc;
use tracing::info;
use domain::{ChannelService, IProviderRegistry, ScheduleEngineService, UserService};
use infra::factory::{build_activity_log_repository, build_channel_repository, build_provider_config_repository, build_schedule_repository, build_user_repository};
use infra::factory::{build_activity_log_repository, build_app_settings_repository, build_channel_repository, build_library_repository, build_provider_config_repository, build_schedule_repository, build_user_repository};
#[cfg(feature = "local-files")]
use infra::factory::build_transcode_settings_repository;
mod config;
mod database;
mod library_scheduler;
mod provider_registry;
mod dto;
mod error;
@@ -80,6 +81,11 @@ async fn main() -> anyhow::Result<()> {
#[cfg(feature = "local-files")]
let transcode_settings_repo = build_transcode_settings_repository(&db_pool).await.ok();
let library_repo = build_library_repository(&db_pool).await?;
let app_settings_repo = build_app_settings_repository(&db_pool).await?;
let library_sync_adapter: Arc<dyn domain::LibrarySyncAdapter> =
Arc::new(infra::FullSyncAdapter::new(Arc::clone(&library_repo)));
#[allow(unused_mut)]
let mut state = AppState::new(
user_service,
@@ -93,6 +99,9 @@ async fn main() -> anyhow::Result<()> {
handles.log_history,
activity_log_repo,
db_pool,
library_repo,
library_sync_adapter,
app_settings_repo,
#[cfg(feature = "local-files")]
transcode_settings_repo,
)
@@ -113,5 +122,11 @@ async fn main() -> anyhow::Result<()> {
event_tx,
);
tokio::spawn(library_scheduler::run_library_sync(
Arc::clone(&state.library_sync_adapter),
Arc::clone(&state.provider_registry),
Arc::clone(&state.app_settings_repo),
));
server::build_and_serve(state, &config).await
}