aboutsummaryrefslogtreecommitdiff
path: root/src/hydrilla/proxy/web_ui/repos.py
diff options
context:
space:
mode:
authorWojtek Kosior <koszko@koszko.org>2022-08-18 13:40:16 +0200
committerWojtek Kosior <koszko@koszko.org>2022-08-22 12:55:02 +0200
commit46ac94463bf42c6a071c258a37b2a58e88e0dfaa (patch)
tree39e7379f3bc7465a787a301be9ae7d560ceeaeee /src/hydrilla/proxy/web_ui/repos.py
parentdd332603636dc82c15abc3aa13ea0497174f9c32 (diff)
downloadhaketilo-hydrilla-46ac94463bf42c6a071c258a37b2a58e88e0dfaa.tar.gz
haketilo-hydrilla-46ac94463bf42c6a071c258a37b2a58e88e0dfaa.zip
make it possible to list all repositories in the web UI
Diffstat (limited to 'src/hydrilla/proxy/web_ui/repos.py')
-rw-r--r--src/hydrilla/proxy/web_ui/repos.py33
1 files changed, 32 insertions, 1 deletions
diff --git a/src/hydrilla/proxy/web_ui/repos.py b/src/hydrilla/proxy/web_ui/repos.py
index 0f55b2a..d4e81c0 100644
--- a/src/hydrilla/proxy/web_ui/repos.py
+++ b/src/hydrilla/proxy/web_ui/repos.py
@@ -35,10 +35,41 @@ import typing as t
import flask
+from .. import state as st
+from . import _app
+
bp = flask.Blueprint('repos', __package__)
@bp.route('/repos')
def repos() -> flask.Response:
- html = flask.render_template('repos.html.jinja')
+ state = t.cast(_app.WebUIApp, flask.current_app)._haketilo_state
+
+ local_semirepo_info, *repo_infos = state.repo_store().get_display_infos()
+
+ html = flask.render_template(
+ 'repos.html.jinja',
+ local_semirepo_info = local_semirepo_info,
+ display_infos = repo_infos
+ )
return flask.make_response(html, 200)
+
+@bp.route('/repos/view/<string:repo_id>', methods=['GET'])
+def show_repo(repo_id: str) -> flask.Response:
+ state = t.cast(_app.WebUIApp, flask.current_app)._haketilo_state
+
+ try:
+ store = state.repo_store()
+ display_info = store.get(repo_id).get_display_info()
+
+ html = flask.render_template(
+ 'repos__show_single.html.jinja',
+ display_info = display_info
+ )
+ return flask.make_response(html, 200)
+ except st.MissingItemError:
+ flask.abort(404)
+
+@bp.route('/repos/view/<string:repo_id>', methods=['POST'])
+def update_repo(repo_id: str) -> flask.Response:
+ raise NotImplementedError()