koprogo_api/infrastructure/web/
app_state.rs1use crate::application::use_cases::{
2 AuthUseCases, BuildingUseCases, DocumentUseCases, ExpenseUseCases, MeetingUseCases,
3 OwnerUseCases, PcnUseCases, UnitUseCases,
4};
5use crate::infrastructure::pool::DbPool;
6use std::sync::Arc;
7
8pub struct AppState {
9 pub auth_use_cases: Arc<AuthUseCases>,
10 pub building_use_cases: Arc<BuildingUseCases>,
11 pub unit_use_cases: Arc<UnitUseCases>,
12 pub owner_use_cases: Arc<OwnerUseCases>,
13 pub expense_use_cases: Arc<ExpenseUseCases>,
14 pub meeting_use_cases: Arc<MeetingUseCases>,
15 pub document_use_cases: Arc<DocumentUseCases>,
16 pub pcn_use_cases: Arc<PcnUseCases>,
17 pub pool: DbPool, }
19
20impl AppState {
21 #[allow(clippy::too_many_arguments)]
22 pub fn new(
23 auth_use_cases: AuthUseCases,
24 building_use_cases: BuildingUseCases,
25 unit_use_cases: UnitUseCases,
26 owner_use_cases: OwnerUseCases,
27 expense_use_cases: ExpenseUseCases,
28 meeting_use_cases: MeetingUseCases,
29 document_use_cases: DocumentUseCases,
30 pcn_use_cases: PcnUseCases,
31 pool: DbPool,
32 ) -> Self {
33 Self {
34 auth_use_cases: Arc::new(auth_use_cases),
35 building_use_cases: Arc::new(building_use_cases),
36 unit_use_cases: Arc::new(unit_use_cases),
37 owner_use_cases: Arc::new(owner_use_cases),
38 expense_use_cases: Arc::new(expense_use_cases),
39 meeting_use_cases: Arc::new(meeting_use_cases),
40 document_use_cases: Arc::new(document_use_cases),
41 pcn_use_cases: Arc::new(pcn_use_cases),
42 pool,
43 }
44 }
45}