flock-server/server.py
2020-08-19 19:20:12 -05:00

49 lines
1.2 KiB
Python

from flask import Flask
from flask import request, jsonify
from flask_mongoengine import MongoEngine
from model import Bike
app = Flask(__name__)
db = MongoEngine(app)
# TODO: at registration give current location
@app.route("/register/")
def register():
dest_lat = request.args.get('dest_lat', None)
dest_lon = request.args.get('dest_lon', None)
assert dest_lat is not None and dest_lon is not None
dest = (float(dest_lon), float(dest_lat))
bike = Bike(point=(0, 0),
destination=dest)
bike.save()
return jsonify(bike_id=str(bike.id))
# TODO: recieve gps bearing and speed
@app.route("/update/<bike_id>/")
def update(bike_id):
bike = Bike.objects.get(id=bike_id)
lat = float(request.args.get('lat', None))
lon = float(request.args.get('lon', None))
speed = float(request.args.get('speed', None))
bearing = float(request.args.get('bearing', None))
bike.update(lat, lon, speed, bearing)
print('d', bike.destination, bike.flock_data())
return jsonify(
dest_heading=bike.heading_to([bike.destination[1],
bike.destination[0]]),
dest_distance=bike.distance_to(bike.destination),
speed=bike.speed,
**bike.flock_data())