aboutsummaryrefslogtreecommitdiff
path: root/gn_auth/auth/authorisation/resources/request_utils.py
blob: ade779e380f6014b667da54a65e4b41d4f53befb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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: tuple[str, ...] = reduce(__check_field__, fields, tuple())
    if len(errors) > 0:
        return Left({
            "error": "Invalid request data!",
            "error_description": "\n\t - ".join(errors)
        })

    return Right(form)