From 1968503b6b01e8612d1d2aaedd7c1d80092ba2de Mon Sep 17 00:00:00 2001 From: Frederick Muriuki Muriithi Date: Wed, 25 Sep 2024 18:48:07 -0500 Subject: Implement genotype resource creation via API with resource data Create the resource, assign the resource-owner role and link the resource's data in a single API call. --- .../auth/authorisation/resources/request_utils.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 gn_auth/auth/authorisation/resources/request_utils.py (limited to 'gn_auth/auth/authorisation/resources/request_utils.py') 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) -- cgit v1.2.3