about summary refs log tree commit diff
path: root/gn_auth/auth/authorisation/resources/request_utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'gn_auth/auth/authorisation/resources/request_utils.py')
-rw-r--r--gn_auth/auth/authorisation/resources/request_utils.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/gn_auth/auth/authorisation/resources/request_utils.py b/gn_auth/auth/authorisation/resources/request_utils.py
new file mode 100644
index 0000000..03d3c3b
--- /dev/null
+++ b/gn_auth/auth/authorisation/resources/request_utils.py
@@ -0,0 +1,20 @@
+"""Some common utils for requests to the resources endpoints."""
+from functools import reduce
+
+from pymonad.either import Left, Right, Either
+
+def check_form(form, *fields) -> Either:
+    """Check form for errors"""
+    def __check_field__(errors, field):
+        if not bool(form.get(field)):
+            return errors + (f"Missing `{field}` value.")
+        return errors
+
+    errors = reduce(__check_field__, fields, tuple())
+    if len(errors) > 0:
+        return Left({
+            "error": "Invalid request data!",
+            "error_description": "\n\t - ".join(errors)
+        })
+
+    return Right(form)