aboutsummaryrefslogtreecommitdiff
path: root/uploader/publications/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'uploader/publications/views.py')
-rw-r--r--uploader/publications/views.py34
1 files changed, 34 insertions, 0 deletions
diff --git a/uploader/publications/views.py b/uploader/publications/views.py
new file mode 100644
index 0000000..85d3aef
--- /dev/null
+++ b/uploader/publications/views.py
@@ -0,0 +1,34 @@
+"""Endpoints for publications"""
+import json
+
+from gn_libs.mysqldb import database_connection
+from flask import Blueprint, render_template, current_app as app
+
+from uploader.authorisation import require_login
+
+from .models import fetch_publications
+
+from gn_libs.debug import __pk__
+
+pubbp = Blueprint("publications", __name__)
+
+
+@pubbp.route("/", methods=["GET"])
+@require_login
+def index():
+ """Index page for publications."""
+ with database_connection(app.config["SQL_URI"]) as conn:
+ return render_template("publications/index.html")
+
+
+@pubbp.route("/list", methods=["GET"])
+@require_login
+def list_publications():
+ with database_connection(app.config["SQL_URI"]) as conn:
+ return json.dumps({
+ "publications": tuple({
+ **row, "index": idx
+ } for idx,row in enumerate(
+ fetch_publications(conn), start=1)),
+ "status": "success"
+ })