- {% if counts %} + {% if is_api_down %}
@@ -24,24 +24,8 @@ import usaButton %} {% block meta %}
{% endif %} {% block content %} - {% if counts %} -
-
-
- Mobile phone showing error screen -
-
-

- There's currently a technical issue. -

-

Thank you for your patience while we work on it. Notify will be back soon.

-
-
-
- + {% if is_api_down %} + {% include "error/technical_difficulties.html" %} {% endif %}
diff --git a/app/utils/api_health.py b/app/utils/api_health.py new file mode 100644 index 000000000..c75fef5da --- /dev/null +++ b/app/utils/api_health.py @@ -0,0 +1,13 @@ +import os + +import requests +from requests.exceptions import RequestException + + +def is_api_down(): + api_base_url = os.getenv("API_BASE_URL", "http://localhost:6011") + try: + response = requests.get(api_base_url, timeout=2) + return response.status_code != 200 + except RequestException: + return True diff --git a/notifications_utils/markdown.py b/notifications_utils/markdown.py index 43e7059b2..57d35ba43 100644 --- a/notifications_utils/markdown.py +++ b/notifications_utils/markdown.py @@ -1,8 +1,10 @@ -from flask import current_app -import mistune -from notifications_utils.formatters import create_sanitised_html_for_url -import re import html +import re + +import mistune +from flask import current_app + +from notifications_utils.formatters import create_sanitised_html_for_url LINK_STYLE = "word-wrap: break-word; color: #1D70B8;"