diff options
author | Bryan Newbold <bnewbold@robocracy.org> | 2018-06-21 18:22:12 -0700 |
---|---|---|
committer | Bryan Newbold <bnewbold@robocracy.org> | 2018-06-21 18:22:12 -0700 |
commit | 416117af51592b2a60b317427dc034544347b435 (patch) | |
tree | 3785fa46d6c9ff8a1d6301b781b51c88987215d7 /python/fatcat | |
parent | 7b327b742458df72691c6cc9311af74091719ce1 (diff) | |
download | fatcat-416117af51592b2a60b317427dc034544347b435.tar.gz fatcat-416117af51592b2a60b317427dc034544347b435.zip |
implement webface lookups (by url; no search form)
Diffstat (limited to 'python/fatcat')
-rw-r--r-- | python/fatcat/routes.py | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/python/fatcat/routes.py b/python/fatcat/routes.py index 47e5863e..f4c7c513 100644 --- a/python/fatcat/routes.py +++ b/python/fatcat/routes.py @@ -31,6 +31,17 @@ def container_create(): edit = api.create_container(params=params) return redirect("/container/{}".format(edit.ident)) +@app.route('/container/lookup', methods=['GET']) +def container_lookup(): + issnl = request.args.get('issnl') + if issnl is None: + abort(400) + try: + resp = api.lookup_container(issnl) + except ApiException as ae: + abort(ae.status) + return redirect('/container/{}'.format(resp.ident)) + @app.route('/creator/<uuid:ident>', methods=['GET']) def creator_view(ident): try: @@ -40,6 +51,17 @@ def creator_view(ident): abort(ae.status) return render_template('creator_view.html', creator=entity, releases=releases) +@app.route('/creator/lookup', methods=['GET']) +def creator_lookup(): + orcid = request.args.get('orcid') + if orcid is None: + abort(400) + try: + resp = api.lookup_creator(orcid) + except ApiException as ae: + abort(ae.status) + return redirect('/creator/{}'.format(resp.ident)) + @app.route('/file/<uuid:ident>', methods=['GET']) def file_view(ident): try: @@ -48,6 +70,17 @@ def file_view(ident): abort(ae.status) return render_template('file_view.html', file=entity) +@app.route('/file/lookup', methods=['GET']) +def file_lookup(): + sha1 = request.args.get('sha1') + if sha1 is None: + abort(400) + try: + resp = api.lookup_file(sha1) + except ApiException as ae: + abort(ae.status) + return redirect('/file/{}'.format(resp.ident)) + @app.route('/release/<uuid:ident>', methods=['GET']) def release_view(ident): try: @@ -59,6 +92,17 @@ def release_view(ident): authors = sorted(authors, key=lambda c: c.index) return render_template('release_view.html', release=entity, authors=authors, files=files) +@app.route('/release/lookup', methods=['GET']) +def release_lookup(): + doi = request.args.get('doi') + if doi is None: + abort(400) + try: + resp = api.lookup_release(doi) + except ApiException as ae: + abort(ae.status) + return redirect('/release/{}'.format(resp.ident)) + #@app.route('/release/<uuid:ident>/changelog', methods=['GET']) #def release_changelog(ident): # try: |