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//") 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) return jsonify( dest_heading=bike.heading_to(bike.destination), dest_distance=bike.distance_to(bike.destination), speed=bike.speed, **bike.flock_data())