From 5c8c741a6a5ee703e1a726dbe4f0a17cddd7c4a2 Mon Sep 17 00:00:00 2001 From: Son NK <> Date: Wed, 13 May 2020 22:02:38 +0200 Subject: [PATCH] API Error handling for 404 and 500 --- app/api/base.py | 12 ++++++++++++ server.py | 5 +++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/app/api/base.py b/app/api/base.py index 36d9bd50..1d5bdb96 100644 --- a/app/api/base.py +++ b/app/api/base.py @@ -5,6 +5,7 @@ from flask import Blueprint, request, jsonify, g from flask_login import current_user from app.extensions import db +from app.log import LOG from app.models import ApiKey api_bp = Blueprint(name="api", import_name=__name__, url_prefix="/api") @@ -32,3 +33,14 @@ def require_api_auth(f): return f(*args, **kwargs) return decorated + + +@api_bp.app_errorhandler(404) +def not_found(e): + return jsonify(error="No such endpoint"), 404 + + +@api_bp.app_errorhandler(Exception) +def internal_error(e): + LOG.exception(e) + return jsonify(error="Internal error"), 500 diff --git a/server.py b/server.py index f20799fc..780671a4 100644 --- a/server.py +++ b/server.py @@ -87,13 +87,13 @@ def create_app() -> Flask: app.config["SESSION_COOKIE_SECURE"] = True app.config["SESSION_COOKIE_SAMESITE"] = "Lax" + setup_error_page(app) + init_extensions(app) register_blueprints(app) set_index_page(app) jinja2_filter(app) - setup_error_page(app) - setup_favicon_route(app) setup_openid_metadata(app) @@ -136,6 +136,7 @@ def fake_data(): activated=True, is_admin=True, otp_secret="base32secret3232", + can_use_fido=True, ) db.session.commit() user.trial_end = None