flock-server/server.py

43 lines
979 B
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)
@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))
@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))
bike.update(lat, lon)
return jsonify(
dest_heading=bike.agent.heading_to(bike.agent.destination()),
dest_distance=bike.agent.distance_to(bike.agent.destination()),
speed=bike.speed,
**bike.flock_data())