flock-server/server.py
2021-11-01 17:25:44 -06:00

48 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))
local_altruism = float(request.args.get('local_altruism', 0.1))
dest_altruism = float(request.args.get('dest_altruism', 0.2))
bike.update(lat, lon, speed, bearing)
return jsonify(last_update=bike.last_update,
**bike.flock_data())