33 lines
944 B
Python
33 lines
944 B
Python
"""
|
|
BAN YARO — Wetter-API
|
|
GET /api/weather?lat=&lon= → aktuelles Wetter + Zecken-Warnung für Nutzerstandort
|
|
"""
|
|
|
|
from fastapi import APIRouter, Query, HTTPException, Depends
|
|
import weather as weather_module
|
|
from auth import get_current_user
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.get('')
|
|
async def get_weather(
|
|
lat: float = Query(..., ge=-90, le=90),
|
|
lon: float = Query(..., ge=-180, le=180),
|
|
):
|
|
try:
|
|
return await weather_module.get_weather_for_location(lat, lon)
|
|
except Exception as exc:
|
|
raise HTTPException(503, f'Wetter nicht verfügbar: {exc}')
|
|
|
|
|
|
@router.get('/forecast')
|
|
async def get_weather_forecast(
|
|
lat: float = Query(..., ge=-90, le=90),
|
|
lon: float = Query(..., ge=-180, le=180),
|
|
user=Depends(get_current_user),
|
|
):
|
|
try:
|
|
return await weather_module.get_forecast(lat, lon)
|
|
except Exception as exc:
|
|
raise HTTPException(503, f'Wettervorhersage nicht verfügbar: {exc}')
|