from __future__ import annotations from fastapi import Depends, Request from app.auth.repository import SessionRecord from app.auth.service import AuthService from app.core.config import AppSettings from app.dashboard.service import DashboardService from app.fleet.service import FleetService from app.integrations.service import IntegrationService from app.rotation.service import RotationService def get_app_settings(request: Request) -> AppSettings: return request.app.state.container.settings def get_auth_service(request: Request) -> AuthService: return request.app.state.container.auth_service def get_integration_service(request: Request) -> IntegrationService: return request.app.state.container.integration_service def get_rotation_service(request: Request) -> RotationService: return request.app.state.container.rotation_service def get_fleet_service(request: Request) -> FleetService: return request.app.state.container.fleet_service def get_dashboard_service(request: Request) -> DashboardService: return request.app.state.container.dashboard_service def require_session( request: Request, service: AuthService = Depends(get_auth_service), ) -> SessionRecord: unsafe = request.method not in {"GET", "HEAD", "OPTIONS"} return service.require_auth( request.cookies.get("fluxip_session"), request.headers.get("X-CSRF-Token"), unsafe, )