aboutsummaryrefslogtreecommitdiff
path: root/umosapi/api.py
diff options
context:
space:
mode:
Diffstat (limited to 'umosapi/api.py')
-rw-r--r--umosapi/api.py68
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']