Files
atst/atst/routes/errors.py
Patrick Smith 783ce58991 Formatting fix
2018-10-16 21:30:35 -04:00

45 lines
1.4 KiB
Python

from flask import render_template, current_app, url_for, redirect, request
from flask_wtf.csrf import CSRFError
import werkzeug.exceptions as werkzeug_exceptions
import atst.domain.exceptions as exceptions
def make_error_pages(app):
def log_error(e):
error_message = e.message if hasattr(e, "message") else str(e)
app.logger.error(error_message)
@app.errorhandler(werkzeug_exceptions.NotFound)
@app.errorhandler(exceptions.NotFoundError)
@app.errorhandler(exceptions.UnauthorizedError)
# pylint: disable=unused-variable
def not_found(e):
log_error(e)
return render_template("error.html", message="Not Found"), 404
@app.errorhandler(exceptions.UnauthenticatedError)
# pylint: disable=unused-variable
def unauthorized(e):
log_error(e)
return render_template("error.html", message="Log in Failed"), 401
@app.errorhandler(CSRFError)
# pylint: disable=unused-variable
def session_expired(e):
log_error(e)
return redirect(url_for("atst.root", sessionExpired=True, next=request.path))
@app.errorhandler(Exception)
# pylint: disable=unused-variable
def exception(e):
log_error(e)
if current_app.debug:
raise e
return (
render_template("error.html", message="An Unexpected Error Occurred"),
500,
)
return app