diff options
Diffstat (limited to 'src/hydrilla/proxy/web_ui/repos.py')
-rw-r--r-- | src/hydrilla/proxy/web_ui/repos.py | 33 |
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() |