aboutsummaryrefslogtreecommitdiff
path: root/gn_auth/auth/requests.py
blob: cd939dd898821b601e8be8191c2a8df462bb7dce (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
"""Utilities to deal with requests."""
import werkzeug
from flask import request

def request_json() -> dict:
    """Retrieve the JSON sent in a request."""
    try:
        json_data = request.json
        # KLUDGE: We have this check here since request.json has the
        # type Any | None; see:
        # <https://github.com/pallets/werkzeug/blob/7868bef5d978093a8baa0784464ebe5d775ae92a/src/werkzeug/wrappers/request.py#L545>
        return json_data if isinstance(json_data, dict) else {}
    except werkzeug.exceptions.UnsupportedMediaType:
        return dict(request.form) or {}