fix(P2-4): Add return type annotations to dependencies.py

This commit is contained in:
2026-06-26 18:21:00 +08:00
parent f673cb7305
commit f2b98aa259
+26 -19
View File
@@ -1,9 +1,9 @@
import redis
from app.config import settings
from app.config import get_settings
from fastapi import Depends
from sqlalchemy.orm import Session
from packages.adapters.redis import NoopSessionStore, SessionStore
from packages.adapters.redis import NoopSessionStore, SessionStore, get_session_store
from packages.adapters.smtp import EmailConfig, NoopEmailService, get_email_service
from packages.adapters.sqlalchemy_impl.asset_library_repository import (
SQLAlchemyAssetLibraryRepository,
@@ -29,18 +29,25 @@ from packages.adapters.sqlalchemy_impl.project_title_repository import (
)
from packages.adapters.sqlalchemy_impl.session import build_session_factory
from packages.adapters.sqlalchemy_impl.user_repository import SQLAlchemyUserRepository
from packages.adapters.sqlalchemy_impl.workspace_invitation_repository import SQLAlchemyWorkspaceInvitationRepository
from packages.adapters.sqlalchemy_impl.workspace_member_repository import SQLAlchemyWorkspaceMemberRepository
from packages.adapters.sqlalchemy_impl.workspace_repository import SQLAlchemyWorkspaceRepository
from packages.adapters.sqlalchemy_impl.workspace_invitation_repository import (
SQLAlchemyWorkspaceInvitationRepository,
)
from packages.adapters.sqlalchemy_impl.workspace_member_repository import (
SQLAlchemyWorkspaceMemberRepository,
)
from packages.adapters.sqlalchemy_impl.workspace_repository import (
SQLAlchemyWorkspaceRepository,
)
from packages.ports.user_repository import UserRepository
from packages.ports.workspace_invitation_repository import WorkspaceInvitationRepository
from packages.ports.workspace_member_repository import WorkspaceMemberRepository
from packages.ports.workspace_repository import WorkspaceRepository
_engine, _SessionLocal = build_session_factory(settings.DATABASE_URL)
_engine, _SessionLocal = build_session_factory(get_settings().DATABASE_URL)
def get_db_session():
def get_db_session() -> Session:
"""Get database session with automatic cleanup."""
session: Session = _SessionLocal()
try:
yield session
@@ -120,24 +127,24 @@ def get_workspace_invitation_repository(
return SQLAlchemyWorkspaceInvitationRepository(session)
def get_auth_session_store():
if not settings.ENABLE_REDIS_SESSIONS:
def get_auth_session_store() -> SessionStore:
if not get_settings().ENABLE_REDIS_SESSIONS:
return NoopSessionStore()
return SessionStore(redis_client=redis.from_url(settings.REDIS_URL, decode_responses=True))
return SessionStore(redis_client=redis.from_url(get_settings().REDIS_URL, decode_responses=True))
def get_auth_email_service():
if not settings.ENABLE_EMAIL_DELIVERY:
def get_auth_email_service() -> EmailConfig:
if not get_settings().ENABLE_EMAIL_DELIVERY:
return NoopEmailService()
return get_email_service(
EmailConfig(
smtp_host=settings.SMTP_HOST,
smtp_port=settings.SMTP_PORT,
smtp_user=settings.SMTP_USER,
smtp_password=settings.SMTP_PASSWORD,
from_email=settings.SMTP_FROM_EMAIL,
from_name=settings.SMTP_FROM_NAME,
use_tls=settings.SMTP_USE_TLS,
smtp_host=get_settings().SMTP_HOST,
smtp_port=get_settings().SMTP_PORT,
smtp_user=get_settings().SMTP_USER,
smtp_password=get_settings().SMTP_PASSWORD,
from_email=get_settings().SMTP_FROM_EMAIL,
from_name=get_settings().SMTP_FROM_NAME,
use_tls=get_settings().SMTP_USE_TLS,
),
enabled=True,
)