mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-02-05 10:53:28 -05:00
Handle HTTPError from API and routing errors from flask.
Removed catching the HTTPError where applicable.
This commit is contained in:
@@ -7,10 +7,11 @@ from flask._compat import string_types
|
||||
from flask_login import LoginManager
|
||||
from flask_wtf import CsrfProtect
|
||||
from notifications_python_client import HTTPError
|
||||
from werkzeug.exceptions import abort
|
||||
from pygments import highlight
|
||||
from pygments.lexers import JavascriptLexer
|
||||
from pygments.formatters import HtmlFormatter
|
||||
from werkzeug.exceptions import abort
|
||||
|
||||
from app.notify_client.api_client import NotificationsAdminAPIClient
|
||||
from app.notify_client.api_key_api_client import ApiKeyApiClient
|
||||
from app.notify_client.user_api_client import UserApiClient
|
||||
@@ -177,10 +178,33 @@ def useful_headers_after_request(response):
|
||||
|
||||
|
||||
def register_errorhandlers(application):
|
||||
def _error_response(error_code):
|
||||
resp = make_response(render_template("error/{0}.html".format(error_code)), error_code)
|
||||
return useful_headers_after_request(resp)
|
||||
|
||||
@application.errorhandler(HTTPError)
|
||||
def render_http_error(error):
|
||||
error_code = getattr(error, 'code', 500)
|
||||
if error_code not in [401, 404, 403, 500]:
|
||||
error_code = 500
|
||||
resp = make_response(render_template("error/{0}.html".format(error_code)), error_code)
|
||||
return useful_headers_after_request(resp)
|
||||
return _error_response(error_code)
|
||||
|
||||
@application.errorhandler(400)
|
||||
def handle_bad_request(error):
|
||||
return _error_response(404)
|
||||
|
||||
@application.errorhandler(404)
|
||||
def handle_not_found(error):
|
||||
return _error_response(404)
|
||||
|
||||
@application.errorhandler(403)
|
||||
def handle_not_authorized(error):
|
||||
return _error_response(403)
|
||||
|
||||
@application.errorhandler(401)
|
||||
def handle_no_permissions(error):
|
||||
return _error_response(401)
|
||||
|
||||
@application.errorhandler(Exception)
|
||||
def handle_bad_request(error):
|
||||
return _error_response(500)
|
||||
|
||||
@@ -19,10 +19,7 @@ def get_service_templates(service_id):
|
||||
|
||||
|
||||
def get_service_template_or_404(service_id, template_id):
|
||||
try:
|
||||
return notifications_api_client.get_service_template(service_id, template_id)
|
||||
except HTTPError as e:
|
||||
abort(e.status_code)
|
||||
return notifications_api_client.get_service_template(service_id, template_id)
|
||||
|
||||
|
||||
def delete_service_template(service_id, template_id):
|
||||
|
||||
@@ -1,11 +1,6 @@
|
||||
from datetime import datetime
|
||||
from notifications_python_client import HTTPError
|
||||
|
||||
from sqlalchemy.orm import load_only
|
||||
|
||||
from app import login_manager
|
||||
from app.main.encryption import hashpw
|
||||
|
||||
from app import user_api_client
|
||||
|
||||
#
|
||||
|
||||
@@ -9,7 +9,6 @@ from flask_login import login_required
|
||||
from app.main import main
|
||||
from app.main.dao.services_dao import get_service_by_id
|
||||
from app.main.dao import templates_dao
|
||||
from notifications_python_client.errors import HTTPError
|
||||
from app import job_api_client
|
||||
|
||||
|
||||
|
||||
@@ -8,7 +8,6 @@ from flask import (
|
||||
jsonify
|
||||
)
|
||||
from flask_login import login_required
|
||||
from notifications_python_client.errors import HTTPError
|
||||
from utils.template import Template
|
||||
|
||||
from app import job_api_client, notification_api_client
|
||||
|
||||
Reference in New Issue
Block a user