Skip to content

Instantly share code, notes, and snippets.

@donno
Created October 6, 2013 08:53
Show Gist options
  • Save donno/6851386 to your computer and use it in GitHub Desktop.
Save donno/6851386 to your computer and use it in GitHub Desktop.
A prototype server developed as a proof-of-concept for a new mapping system for foxhunting and balloon chases using the Flask microframework.
#!/usr/bin/env python
"""A prototype server developed as a proof-of-concept for a new mapping system
for foxhunting and balloon chases.
This requires Flask, which is a microframework for Python.
See http://flask.pocoo.org/
"""
import database
import flask
app = flask.Flask(__name__, static_url_path='', static_folder='')
db = database.getDatabase()
@app.route('/')
def root():
return app.send_static_file('index.html')
@app.route('/api/geometry', methods=['GET'])
def geometryList():
lastTime = flask.request.args.get('lastTime', None)
return flask.json.jsonify(db.getGeometry(lastTime))
@app.route('/api/geometry', methods=['POST'])
def geometryCreate():
"""Creates new geometry in the database."""
geoJson = flask.request.get_json()
databaseId = db.addGeometry(geoJson)
return flask.json.jsonify({
"message": "New geometry saved.",
"databaseId": databaseId,
})
@app.route('/api/geometry/<geoid>', methods=['GET'])
def geometry(geoid):
geometry = db.getGeometry(geometryId=int(geoid))['geometry'][0]
return flask.json.jsonify(geometry)
@app.route('/api/geometry/<geoid>', methods=['DELETE'])
def geometryDelete(geoid):
try:
db.deleteGeometry(int(geoid))
except Exception, e:
print e
return flask.json.jsonify({"deleted": int(geoid)})
if __name__ == '__main__':
app.run()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment