diff options
Diffstat (limited to 'python/fatcat_web/routes.py')
| -rw-r--r-- | python/fatcat_web/routes.py | 29 | 
1 files changed, 20 insertions, 9 deletions
| diff --git a/python/fatcat_web/routes.py b/python/fatcat_web/routes.py index 1a743b7b..5fef1b96 100644 --- a/python/fatcat_web/routes.py +++ b/python/fatcat_web/routes.py @@ -1,8 +1,8 @@  import os  import json -from flask import Flask, render_template, send_from_directory, request, \ -    url_for, abort, g, redirect, jsonify, session, flash, Response +from flask import Flask, render_template, make_response, send_from_directory, \ +    request, url_for, abort, g, redirect, jsonify, session, flash, Response  from flask_login import login_required  from flask_wtf.csrf import CSRFError @@ -223,14 +223,25 @@ def release_lookup():                  'arxiv', 'core', 'ark', 'mag'):          if request.args.get(key):              extid = key -            break +            extid_value = request.args.get(extid) +            if extid_value: +                extid_value = extid_value.strip() +                break      if extid is None: -        abort(400) -    try: -        resp = api.lookup_release(**{extid: request.args.get(extid)}) -    except ApiException as ae: -        app.log.info(ae) -        abort(ae.status) +        return render_template('release_lookup.html') +    try: +        resp = api.lookup_release(**{extid: extid_value}) +    except ApiException as ae: +        if ae.status == 404 or ae.status == 400: +            return make_response( +                render_template('release_lookup.html', +                    lookup_key=extid, +                    lookup_value=extid_value, +                    lookup_error=ae.status), +                ae.status) +        else: +            app.log.info(ae) +            abort(ae.status)      return redirect('/release/{}'.format(resp.ident))  @app.route('/release/<ident>/history', methods=['GET']) | 
