from fastapi import APIRouter, Depends from fastapi.responses import StreamingResponse from ..core.calendar_config import CalendarConfig, DoorsSaved, get_calendar_config from ..core.config import Config, get_config from ..core.image_helpers import api_return_image, load_image router = APIRouter(prefix="/general", tags=["general"]) @router.get( "/background", response_class=StreamingResponse, ) async def get_image_for_day( cal_cfg: CalendarConfig = Depends(get_calendar_config), ) -> StreamingResponse: """ Hintergrundbild laden """ return await api_return_image(await load_image(f"files/{cal_cfg.background}")) @router.get("/doors") async def get_doors( cal_cfg: CalendarConfig = Depends(get_calendar_config), ) -> DoorsSaved: """ Türchen lesen """ return cal_cfg.doors @router.put("/doors") async def put_doors( doors: DoorsSaved, cfg: Config = Depends(get_config), cal_cfg: CalendarConfig = Depends(get_calendar_config), ) -> None: """ Türchen setzen """ cal_cfg.doors = sorted( doors, key=lambda door: door.day, ) await cal_cfg.change(cfg)