aboutsummaryrefslogtreecommitdiffstats
path: root/moon_manager/moon_manager/api/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'moon_manager/moon_manager/api/models.py')
-rw-r--r--moon_manager/moon_manager/api/models.py58
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}