Files
webmanager-mvp/webui/backend/app/dependencies.py
T
2026-03-11 09:39:41 +01:00

76 lines
2.4 KiB
Python

from __future__ import annotations
from functools import lru_cache
from backend.app.config import Settings, get_settings
from backend.app.db.bookmark_repository import BookmarkRepository
from backend.app.db.task_repository import TaskRepository
from backend.app.fs.filesystem_adapter import FilesystemAdapter
from backend.app.security.path_guard import PathGuard
from backend.app.services.bookmark_service import BookmarkService
from backend.app.services.browse_service import BrowseService
from backend.app.services.copy_task_service import CopyTaskService
from backend.app.services.file_ops_service import FileOpsService
from backend.app.services.move_task_service import MoveTaskService
from backend.app.services.task_service import TaskService
from backend.app.tasks_runner import TaskRunner
@lru_cache(maxsize=1)
def get_path_guard() -> PathGuard:
settings: Settings = get_settings()
return PathGuard(root_aliases=settings.root_aliases)
@lru_cache(maxsize=1)
def get_filesystem_adapter() -> FilesystemAdapter:
return FilesystemAdapter()
@lru_cache(maxsize=1)
def get_task_repository() -> TaskRepository:
settings: Settings = get_settings()
return TaskRepository(db_path=settings.task_db_path)
@lru_cache(maxsize=1)
def get_bookmark_repository() -> BookmarkRepository:
settings: Settings = get_settings()
return BookmarkRepository(db_path=settings.task_db_path)
@lru_cache(maxsize=1)
def get_task_runner() -> TaskRunner:
return TaskRunner(repository=get_task_repository(), filesystem=get_filesystem_adapter())
async def get_browse_service() -> BrowseService:
return BrowseService(path_guard=get_path_guard(), filesystem=get_filesystem_adapter())
async def get_file_ops_service() -> FileOpsService:
return FileOpsService(path_guard=get_path_guard(), filesystem=get_filesystem_adapter())
async def get_task_service() -> TaskService:
return TaskService(repository=get_task_repository())
async def get_copy_task_service() -> CopyTaskService:
return CopyTaskService(
path_guard=get_path_guard(),
repository=get_task_repository(),
runner=get_task_runner(),
)
async def get_move_task_service() -> MoveTaskService:
return MoveTaskService(
path_guard=get_path_guard(),
repository=get_task_repository(),
runner=get_task_runner(),
)
async def get_bookmark_service() -> BookmarkService:
return BookmarkService(path_guard=get_path_guard(), repository=get_bookmark_repository())