Files
webmanager-mvp/webui/backend/app/services/settings_service.py
T
2026-03-12 12:27:47 +01:00

24 lines
926 B
Python

from __future__ import annotations
from backend.app.api.schemas import SettingsResponse, SettingsUpdateRequest
from backend.app.db.settings_repository import SettingsRepository
class SettingsService:
def __init__(self, repository: SettingsRepository):
self._repository = repository
def get_settings(self) -> SettingsResponse:
values = self._repository.get_settings()
return SettingsResponse(show_thumbnails=self._as_bool(values.get("show_thumbnails"), default=False))
def update_settings(self, request: SettingsUpdateRequest) -> SettingsResponse:
self._repository.set_setting("show_thumbnails", "true" if request.show_thumbnails else "false")
return self.get_settings()
@staticmethod
def _as_bool(value: str | None, default: bool) -> bool:
if value is None:
return default
return value.strip().lower() in {"1", "true", "yes", "on"}