From 2812b3a363ec41eb11a35affb128f66b39d40e6d Mon Sep 17 00:00:00 2001 From: Bryan Newbold Date: Thu, 17 Sep 2020 21:11:05 -0700 Subject: web: handle unknown CSL style as a cleaner 400 page --- python/fatcat_web/routes.py | 6 +++++- python/fatcat_web/templates/400.html | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) (limited to 'python/fatcat_web') diff --git a/python/fatcat_web/routes.py b/python/fatcat_web/routes.py index 924a4d4c..02b5258a 100644 --- a/python/fatcat_web/routes.py +++ b/python/fatcat_web/routes.py @@ -1,6 +1,7 @@ import os import json +import citeproc_styles from flask import render_template, make_response, send_from_directory, \ request, url_for, abort, redirect, jsonify, session, flash, Response from flask_login import login_required @@ -962,7 +963,10 @@ def release_citeproc(ident): except ApiException as ae: raise ae csl = release_to_csl(entity) - cite = citeproc_csl(csl, style, is_html) + try: + cite = citeproc_csl(csl, style, is_html) + except citeproc_styles.StyleNotFoundError as e: + abort(400, e) if is_html: return Response(cite) elif style == "csl-json": diff --git a/python/fatcat_web/templates/400.html b/python/fatcat_web/templates/400.html index 21f98aad..c0a00652 100644 --- a/python/fatcat_web/templates/400.html +++ b/python/fatcat_web/templates/400.html @@ -12,6 +12,8 @@
{% if err and err.description %}

{{ err.description }} + {% elif err %} +

{{ err }} {% else %}

Wasn't able to handle the request, either due to incorrect or unexpected input. Usually more context should be available; if you hit this page it means -- cgit v1.2.3