aboutsummaryrefslogtreecommitdiffstats
path: root/python/fatcat
diff options
context:
space:
mode:
authorBryan Newbold <bnewbold@robocracy.org>2018-06-21 18:22:12 -0700
committerBryan Newbold <bnewbold@robocracy.org>2018-06-21 18:22:12 -0700
commit416117af51592b2a60b317427dc034544347b435 (patch)
tree3785fa46d6c9ff8a1d6301b781b51c88987215d7 /python/fatcat
parent7b327b742458df72691c6cc9311af74091719ce1 (diff)
downloadfatcat-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.py44
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: