This commit is contained in:
Mateusz Gruszczyński committed 2026-10-31 14:36:07 +01:00
1 parent fc81ecafd6
commit dc57aa7089
89 files changed
+5290 -1551

No files matched your search

+38
View File
@@ -101,6 +101,7 @@ impl KeyExtractor for ProxyAwareIpExtractor {
}
}
#[cfg(test)]
pub fn create_router(
config: Arc<AppConfig>,
store: Arc<SessionStore>,
@@ -110,6 +111,42 @@ pub fn create_router(
event_bus: Arc<EventBus>,
idle_manager: Arc<IdleManager>,
) -> Router {
let storage =
crate::storage::from_config(&config).expect("validated RustBox storage configuration");
create_router_with_storage(
config,
RouterServices {
store,
imap_client,
smtp_client,
search_engine,
storage,
event_bus,
idle_manager,
},
)
}
pub struct RouterServices {
pub store: Arc<SessionStore>,
pub imap_client: Arc<dyn ImapClient>,
pub smtp_client: Arc<dyn SmtpClient>,
pub search_engine: Arc<crate::search::engine::SearchEngine>,
pub storage: Arc<dyn crate::storage::BlobStorage>,
pub event_bus: Arc<EventBus>,
pub idle_manager: Arc<IdleManager>,
}
pub fn create_router_with_storage(config: Arc<AppConfig>, services: RouterServices) -> Router {
let RouterServices {
store,
imap_client,
smtp_client,
search_engine,
storage,
event_bus,
idle_manager,
} = services;
let governor_conf = GovernorConfigBuilder::default()
.key_extractor(ProxyAwareIpExtractor {
trusted_proxies: config.parsed_trusted_proxies(),
@@ -477,6 +514,7 @@ pub fn create_router(
.layer(Extension(event_bus))
.layer(Extension(smtp_client))
.layer(Extension(search_engine))
.layer(Extension(storage))
.layer(Extension(imap_client))
.layer(Extension(store))
.layer(Extension(config.clone()))