Skip to content

Instantly share code, notes, and snippets.

@hiranya911
Last active September 9, 2018 19:51
Show Gist options
  • Save hiranya911/9e4c0f5ffcfcc20369a1a4f47675843e to your computer and use it in GitHub Desktop.
Save hiranya911/9e4c0f5ffcfcc20369a1a4f47675843e to your computer and use it in GitHub Desktop.
import firebase_admin
from firebase_admin import firestore
import flask
app = flask.Flask(__name__)
firebase_admin.initialize_app()
SUPERHEROES = firestore.client().collection('superheroes')
@app.route('/heroes', methods=['POST'])
def create_hero():
req = flask.request.json
hero = SUPERHEROES.document()
hero.set(req)
return flask.jsonify({'id': hero.id}), 201
@app.route('/heroes/<id>')
def read_hero(id):
return flask.jsonify(_ensure_hero(id).to_dict())
@app.route('/heroes/<id>', methods=['PUT'])
def update_hero(id):
_ensure_hero(id)
req = flask.request.json
SUPERHEROES.document(id).set(req)
return flask.jsonify({'success': True})
@app.route('/heroes/<id>', methods=['DELETE'])
def delete_hero(id):
_ensure_hero(id)
SUPERHEROES.document(id).delete()
return flask.jsonify({'success': True})
def _ensure_hero(id):
try:
return SUPERHEROES.document(id).get()
except:
flask.abort(404)
if __name__ == '__main__':
app.run(host='127.0.0.1', port=8080, debug=True)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment