- docker-compose: 下线 Python backend/config-service,切换至 config-service-rs - archive: 归档 legacy Python 目录至 archive/python/* - services: 新增/更新 common-contracts、api-gateway、各 provider、report-generator-service、config-service-rs - data-persistence-service: API/system 模块与模型/DTO 调整 - frontend: 更新 useApi 与 API 路由 - docs: 更新路线图并勾选光荣退役 - cleanup: 移除 data-distance-service 占位测试
33 lines
777 B
Rust
33 lines
777 B
Rust
use std::sync::Arc;
|
|
|
|
use dashmap::DashMap;
|
|
use uuid::Uuid;
|
|
|
|
use common_contracts::observability::TaskProgress;
|
|
use secrecy::ExposeSecret;
|
|
|
|
use crate::config::AppConfig;
|
|
use crate::finnhub::FinnhubDataProvider;
|
|
|
|
#[derive(Clone)]
|
|
pub struct AppState {
|
|
pub tasks: Arc<DashMap<Uuid, TaskProgress>>,
|
|
pub config: Arc<AppConfig>,
|
|
pub finnhub_provider: Arc<FinnhubDataProvider>,
|
|
}
|
|
|
|
impl AppState {
|
|
pub fn new(config: AppConfig) -> Self {
|
|
let provider = Arc::new(FinnhubDataProvider::new(
|
|
config.finnhub_api_url.clone(),
|
|
config.finnhub_api_key.expose_secret().clone(),
|
|
));
|
|
|
|
Self {
|
|
tasks: Arc::new(DashMap::new()),
|
|
config: Arc::new(config),
|
|
finnhub_provider: provider,
|
|
}
|
|
}
|
|
}
|