backmongo / flask_backmongo.py

from flask import Blueprint, request, Response, Flask

import backmongo

bp = Blueprint('api', __name__)


@bp.route("/<collection>/", methods=['GET'])
@bp.route("/<collection>/<_id>", methods=['GET'])
def read(collection, _id=None):
    result = backmongo.read(collection, _id)
    return Response(result, mimetype='application/json')


@bp.route("/<collection>/<_id>", methods=['DELETE'])
def delete(collection, _id):
    backmongo.delete(collection, _id)
    return Response("{status: OK}", mimetype='application/json')


@bp.route("/<collection>/", methods=['POST'])
@bp.route("/<collection>/<_id>", methods=['PUT'])
def save(collection, _id=None):
    result = backmongo.save(collection, request.json, _id)
    return Response(result, mimetype='application/json')


def init_app(app, url_prefix=''):
    app.register_blueprint(bp, url_prefix=url_prefix)


def main():
    import sys
    import os
    static_folder = os.path.join(os.getcwd(), 'static')
    if len(sys.argv) > 1:
        static_folder = os.path.abspath(sys.argv[1])
    app = Flask('__main__',
            static_url_path='/static',
            static_folder=static_folder)
    init_app(app)
    app.run(debug=False)

if __name__ == '__main__':
    main()
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.