about summary refs log tree commit diff
path: root/uploader/monadic_requests.py
diff options
context:
space:
mode:
Diffstat (limited to 'uploader/monadic_requests.py')
-rw-r--r--uploader/monadic_requests.py26
1 files changed, 18 insertions, 8 deletions
diff --git a/uploader/monadic_requests.py b/uploader/monadic_requests.py
index c492df5..eda42d0 100644
--- a/uploader/monadic_requests.py
+++ b/uploader/monadic_requests.py
@@ -5,12 +5,12 @@ from typing import Union, Optional, Callable
 import requests
 from requests.models import Response
 from pymonad.either import Left, Right, Either
+from markupsafe import escape as markupsafe_escape
 from flask import (flash,
                    request,
                    redirect,
                    render_template,
-                   current_app as app,
-                   escape as flask_escape)
+                   current_app as app)
 
 # HTML Status codes indicating a successful request.
 SUCCESS_CODES = (200, 201, 202, 203, 204, 205, 206, 207, 208, 226)
@@ -39,9 +39,9 @@ def make_error_handler(
                 trace=traceback.format_exception(resp_or_exc))
         if isinstance(resp_or_exc, Response):
             flash("The authorisation server responded with "
-                  f"({flask_escape(resp_or_exc.status_code)}, "
-                  f"{flask_escape(resp_or_exc.reason)}) for the request to "
-                  f"'{flask_escape(resp_or_exc.request.url)}'",
+                  f"({markupsafe_escape(resp_or_exc.status_code)}, "
+                  f"{markupsafe_escape(resp_or_exc.reason)}) for the request to "
+                  f"'{markupsafe_escape(resp_or_exc.request.url)}'",
                   "alert-danger")
             return redirect_to
 
@@ -59,6 +59,11 @@ def get(url, params=None, **kwargs) -> Either:
 
     :rtype: pymonad.either.Either
     """
+    timeout = kwargs.get("timeout")
+    kwargs = {key: val for key,val in kwargs.items() if key != "timeout"}
+    if timeout is None:
+        timeout = (9.13, 20)
+
     try:
         resp = requests.get(url, params=params, **kwargs)
         if resp.status_code in SUCCESS_CODES:
@@ -76,6 +81,11 @@ def post(url, data=None, json=None, **kwargs) -> Either:
 
     :rtype: pymonad.either.Either
     """
+    timeout = kwargs.get("timeout")
+    kwargs = {key: val for key,val in kwargs.items() if key != "timeout"}
+    if timeout is None:
+        timeout = (9.13, 20)
+
     try:
         resp = requests.post(url, data=data, json=json, **kwargs)
         if resp.status_code in SUCCESS_CODES:
@@ -95,10 +105,10 @@ def make_either_error_handler(msg):
             try:
                 _data = error.json()
             except Exception as _exc:
-                raise Exception(error.content) from _exc
-            raise Exception(_data)
+                raise Exception(error.content) from _exc# pylint: disable=[broad-exception-raised]
+            raise Exception(_data)# pylint: disable=[broad-exception-raised]
 
         app.logger.debug("\n\n%s\n\n", msg)
-        raise Exception(error)
+        raise Exception(error)# pylint: disable=[broad-exception-raised]
 
     return __fail__