added local api

This commit is contained in:
2026-06-11 08:38:08 +03:00
parent 81eaa95df3
commit 8fd7e85c83
39 changed files with 3224 additions and 723 deletions
+32 -1
View File
@@ -237,10 +237,41 @@ def paired_tracks_cancel():
return jsonify({"error": str(e)}), 400
@app.post("/api/elevation/profile")
def elevation_profile():
from core.elevation import build_elevation_profile
body = request.get_json(force=True, silent=True) or {}
points = body.get("points") or []
step_m = body.get("step_m", 10)
try:
step = float(step_m)
except (TypeError, ValueError):
step = 10.0
return jsonify(build_elevation_profile(points, step))
@app.get("/api/tracks/<int:track_id>/elevation-profile")
def track_elevation_profile(track_id: int):
from core.elevation import build_elevation_profile
step_m = request.args.get("step_m", 10, type=float)
try:
track = storage.get_track(track_id)
except ValueError as e:
return jsonify({"error": str(e)}), 404
points = track.get("points") or []
return jsonify(build_elevation_profile(points, step_m or 10.0))
@app.get("/api/health")
def health():
from core.elevation import elevation_status
status = storage.db_status()
return jsonify({"ok": status["db_ok"], "ts": time.time(), **status})
return jsonify(
{"ok": status["db_ok"], "ts": time.time(), **status, **elevation_status()}
)
def _float_or_none(value):