generated from Grigo/AndroidTemplate
added local api
This commit is contained in:
+41
-1
@@ -298,10 +298,50 @@ def paired_tracks_cancel(body: PairedTrackCancelBody):
|
||||
raise HTTPException(400, detail=str(e)) from e
|
||||
|
||||
|
||||
class ElevationPoint(BaseModel):
|
||||
lat: float
|
||||
lon: float
|
||||
ts: Optional[float] = None
|
||||
|
||||
|
||||
class ElevationProfileBody(BaseModel):
|
||||
points: list[ElevationPoint] = Field(default_factory=list)
|
||||
step_m: float = 10.0
|
||||
|
||||
|
||||
@app.post("/api/elevation/profile")
|
||||
def elevation_profile(body: ElevationProfileBody):
|
||||
from core.elevation import build_elevation_profile
|
||||
|
||||
pts = [p.model_dump(exclude_none=True) for p in body.points]
|
||||
return build_elevation_profile(pts, body.step_m)
|
||||
|
||||
|
||||
@app.get("/api/tracks/{track_id}/elevation-profile")
|
||||
def track_elevation_profile(
|
||||
track_id: int,
|
||||
step_m: float = Query(10.0, ge=5.0, le=10.0),
|
||||
):
|
||||
from core.elevation import build_elevation_profile
|
||||
|
||||
try:
|
||||
track = storage.get_track(track_id)
|
||||
except ValueError as e:
|
||||
raise HTTPException(404, detail=str(e)) from e
|
||||
return build_elevation_profile(track.get("points") or [], step_m)
|
||||
|
||||
|
||||
@app.get("/api/health")
|
||||
def health():
|
||||
from core.elevation import elevation_status
|
||||
|
||||
status = storage.db_status()
|
||||
return {"ok": status["db_ok"], "ts": time.time(), **status}
|
||||
return {
|
||||
"ok": status["db_ok"],
|
||||
"ts": time.time(),
|
||||
**status,
|
||||
**elevation_status(),
|
||||
}
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
Reference in New Issue
Block a user