about summary refs log tree commit diff
path: root/gn_libs
diff options
context:
space:
mode:
Diffstat (limited to 'gn_libs')
-rw-r--r--gn_libs/requests.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/gn_libs/requests.py b/gn_libs/requests.py
new file mode 100644
index 0000000..18404aa
--- /dev/null
+++ b/gn_libs/requests.py
@@ -0,0 +1,16 @@
+"""Utilities to deal with requests."""
+from json.decoder import JSONDecodeError
+from flask import request
+
+def request_json() -> dict:
+    """Retrieve the JSON sent in a request."""
+    if "application/json" in request.headers.get("Content-Type", ""):
+        try:
+            return request.json or {}
+        except JSONDecodeError:
+            return {}
+
+    if "multipart/form-data" in request.headers.get("Content-Type", ""):
+        return dict(request.form) or {}
+
+    return dict(request.args) or {}