extra_api.py 1003 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. from flask import Blueprint, abort, request, jsonify
  2. import lib
  3. from sources import sources
  4. extra = Blueprint("extra", __name__)
  5. @extra.route("score", methods=["POST"])
  6. def check_score():
  7. js = request.get_json()
  8. p1 = js.get("point1", None)
  9. p2 = js.get("point2", None)
  10. if p1 is None or p2 is None:
  11. abort(400)
  12. try:
  13. lat1 = float(p1.get("lat", None))
  14. lng1 = float(p1.get("lng", None))
  15. lat2 = float(p2.get("lat", None))
  16. lng2 = float(p2.get("lng", None))
  17. except ValueError:
  18. abort(400)
  19. score, distance = lib.score((lat1, lng1), (lat2, lng2))
  20. return jsonify({
  21. "score": score,
  22. "distance": distance,
  23. })
  24. @extra.route("caches", methods=["GET"])
  25. def get_cached_points():
  26. return jsonify({
  27. "caches": [
  28. {
  29. "generationMethod": gm,
  30. "onlyAmerica": oa,
  31. "size": len(ps.stock)
  32. } for ((gm, oa), ps) in sources.items()
  33. ]
  34. })