feat(weather): implement provider in weather api endpoints
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
import datetime
|
||||
from pathlib import Path
|
||||
from typing import Annotated
|
||||
|
||||
from fastapi import APIRouter, Depends
|
||||
from fastapi import APIRouter
|
||||
from fastapi.responses import HTMLResponse, RedirectResponse
|
||||
|
||||
from gallery.easel.core import AppRequest
|
||||
from gallery.easel.depends.weather import WeatherApiDepends
|
||||
from gallery.sketch.weather.api import WeatherApi
|
||||
from gallery.sketch.weather.model import WeatherResponse
|
||||
|
||||
@@ -14,13 +14,6 @@ from ..common.utils.template import build_templates
|
||||
from .filters import cloudness_icon, wind_direction_icon
|
||||
|
||||
|
||||
async def get_weather_api(request: AppRequest, provider: str | None = None) -> WeatherApi:
|
||||
return request.app.state.api.get_weather(provider)
|
||||
|
||||
|
||||
WeatherApiDepends = Annotated[WeatherApi, Depends(get_weather_api)]
|
||||
|
||||
|
||||
def context_procesor(request: AppRequest) -> dict:
|
||||
return {
|
||||
"providers": request.app.state.api.get_api_providers(WeatherApi.TYPE),
|
||||
@@ -94,3 +87,10 @@ async def get_weather_tag(request: AppRequest, weather_api: WeatherApiDepends, l
|
||||
else:
|
||||
raise ValueError(tag)
|
||||
return build_weather_response(request, response)
|
||||
|
||||
|
||||
@router.get("/zmiyevka-184640/tag/{tag}", response_class=RedirectResponse)
|
||||
async def get_zmiyevka_weather_compat(request: AppRequest):
|
||||
path_parts = request.url.path.split("/")
|
||||
path_parts.insert(2, "gismeteo")
|
||||
return RedirectResponse("/".join(path_parts))
|
||||
|
||||
Reference in New Issue
Block a user