12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- from typing import List
- from fastapi import APIRouter
- from fastapi_camelcase import CamelModel
- from pydantic import confloat
- from .. import scoring
- from ..schemas import CacheInfo
- from ..gen import get_cache_info
- router = APIRouter()
- class Point(CamelModel):
- lat: confloat(ge=-90.0, le=90.0)
- lng: confloat(ge=-180.0, le=180.0)
- class ScoreCheck(CamelModel):
- point1: Point
- point2: Point
- class Score(CamelModel):
- distance: float
- score: int
- class CacheResponse(CamelModel):
- caches: List[CacheInfo]
- @router.get("/")
- def health():
- return { "status": "healthy", "version": "2.0" }
- @router.post("/score", response_model=Score)
- def check_score(points: ScoreCheck):
- score, distance = scoring.score((points.point1.lat, points.point1.lng), (points.point2.lat, points.point2.lng))
- return Score(distance=distance, score=score)
- @router.get("/caches", response_model=CacheResponse)
- def caches():
- return CacheResponse(caches=get_cache_info())
|