diff options
Diffstat (limited to 'moon_manager/moon_manager/api/models.py')
-rw-r--r-- | moon_manager/moon_manager/api/models.py | 58 |
1 files changed, 24 insertions, 34 deletions
diff --git a/moon_manager/moon_manager/api/models.py b/moon_manager/moon_manager/api/models.py index 07b10d90..c3068367 100644 --- a/moon_manager/moon_manager/api/models.py +++ b/moon_manager/moon_manager/api/models.py @@ -11,6 +11,7 @@ from flask_restful import Resource import logging from python_moonutilities.security_functions import check_auth from python_moondb.core import ModelManager +from python_moonutilities.security_functions import validate_input __version__ = "4.3.2" @@ -29,6 +30,7 @@ class Models(Resource): "/models/<string:uuid>/", ) + @validate_input("get", kwargs_state=[False, False]) @check_auth def get(self, uuid=None, user_id=None): """Retrieve all models @@ -38,20 +40,17 @@ class Models(Resource): :return: { "model_id1": { "name": "...", - "description": "...", + "description": "... (optional)", "meta_rules": ["meta_rule_id1", ] } } :internal_api: get_models """ - try: - data = ModelManager.get_models(user_id=user_id, model_id=uuid) - except Exception as e: - logger.error(e, exc_info=True) - return {"result": False, - "error": str(e)}, 500 + data = ModelManager.get_models(user_id=user_id, model_id=uuid) + return {"models": data} + @validate_input("post", body_state={"name":True, "meta_rules":True}) @check_auth def post(self, uuid=None, user_id=None): """Create model. @@ -59,28 +58,25 @@ class Models(Resource): :param uuid: uuid of the model (not used here) :param user_id: user ID who do the request :request body: { - "name": "...", - "description": "...", + "name": "name of the model (mandatory)", + "description": "description of the model (optional)", "meta_rules": ["meta_rule_id1", ] } :return: { "model_id1": { - "name": "...", - "description": "...", + "name": "name of the model", + "description": "description of the model (optional)", "meta_rules": ["meta_rule_id1", ] } } :internal_api: add_model """ - try: - data = ModelManager.add_model( - user_id=user_id, model_id=uuid, value=request.json) - except Exception as e: - logger.error(e, exc_info=True) - return {"result": False, - "error": str(e)}, 500 + data = ModelManager.add_model( + user_id=user_id, model_id=uuid, value=request.json) + return {"models": data} + @validate_input("delete", kwargs_state=[True, False]) @check_auth def delete(self, uuid=None, user_id=None): """Delete a model @@ -89,18 +85,16 @@ class Models(Resource): :param user_id: user ID who do the request :return: { "result": "True or False", - "message": "optional message" + "message": "optional message (optional)" } :internal_api: delete_model """ - try: - data = ModelManager.delete_model(user_id=user_id, model_id=uuid) - except Exception as e: - logger.error(e, exc_info=True) - return {"result": False, - "error": str(e)}, 500 + + data = ModelManager.delete_model(user_id=user_id, model_id=uuid) + return {"result": True} + @validate_input("patch", kwargs_state=[True, False], body_state={"name":True, "meta_rules":True}) @check_auth def patch(self, uuid=None, user_id=None): """Update a model @@ -109,19 +103,15 @@ class Models(Resource): :param user_id: user ID who do the request :return: { "model_id1": { - "name": "...", - "description": "...", + "name": "name of the model", + "description": "... (optional)", "meta_rules": ["meta_rule_id1", ] } } :internal_api: update_model """ - try: - data = ModelManager.update_model( - user_id=user_id, model_id=uuid, value=request.json) - except Exception as e: - logger.error(e, exc_info=True) - return {"result": False, - "error": str(e)}, 500 + data = ModelManager.update_model( + user_id=user_id, model_id=uuid, value=request.json) + return {"models": data} |