diff options
Diffstat (limited to 'umosapi/api.py')
-rw-r--r-- | umosapi/api.py | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/umosapi/api.py b/umosapi/api.py new file mode 100644 index 0000000..0b48079 --- /dev/null +++ b/umosapi/api.py @@ -0,0 +1,68 @@ +from flask import Flask, Blueprint, jsonify, request +from flask_restplus import Resource, Api, fields + +from json import loads + +from .utils import sanitize +from .app_db.uobject import UObject + +app = Flask(__name__, instance_relative_config=True) + +bp = Blueprint('api', __name__, url_prefix='/api') + +env = app.config['DEBUG'] + +if env is not False: + env = '/doc' + +api = Api( + bp, + doc=env, + title="UMoSApi", + description=""" + Unity Mongo Save Api is a simple API for save Unity + object in Mongo database. The terme uobject means Unity Object. + """, + version=0.1 + ) + +uobject = UObject(app) + +user_model = api.model('UObject', { + 'name': fields.String( + required=True, + description='Name of the uobject', + example='Player' + ) +}) + + +@api.route('/objects', endpoint='objetcs') +class Objects(Resource): + def get(self): + """ Get uobjects list """ + uobjects = uobject.all() + if not uobjects: + return loads('{"msg": "No uobjects"}'), 404 + return sanitize(uobjects), 200 + + +@api.route("/objects/register") +class Register(Resource): + @api.expect(user_model) + def post(self): + """ Register new uobject """ + args = request.get_json(force=True) + status = uobject.register(args.get('name')) + + return loads('{"msg": "'+status['msg']+'"}'), status['code'] + + +@api.route('/objects/<name>') +@api.doc(params={'name': 'Player'}) +class Remove(Resource): + def delete(self, name): + """ Remove an uobject """ + status = uobject.remove(name) + + return loads('{"msg": "'+status['msg']+'"}'), status['code'] |