aboutsummaryrefslogtreecommitdiff
path: root/src/hydrilla/proxy/web_ui/repos.py
diff options
context:
space:
mode:
authorWojtek Kosior <koszko@koszko.org>2022-08-23 14:28:38 +0200
committerWojtek Kosior <koszko@koszko.org>2022-09-09 13:55:05 +0200
commit7fcb306c6a3d3771020a85d730786aa5bfb03f90 (patch)
tree5807e9c4d72c2ad3c4f52436700e628c19b0b66b /src/hydrilla/proxy/web_ui/repos.py
parent9326f832fe3bb5b77358170bd060dad1af98810d (diff)
downloadhaketilo-hydrilla-7fcb306c6a3d3771020a85d730786aa5bfb03f90.tar.gz
haketilo-hydrilla-7fcb306c6a3d3771020a85d730786aa5bfb03f90.zip
inform the web UI user about errors in communication with repository
Diffstat (limited to 'src/hydrilla/proxy/web_ui/repos.py')
-rw-r--r--src/hydrilla/proxy/web_ui/repos.py14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/hydrilla/proxy/web_ui/repos.py b/src/hydrilla/proxy/web_ui/repos.py
index 8c69028..ae4741f 100644
--- a/src/hydrilla/proxy/web_ui/repos.py
+++ b/src/hydrilla/proxy/web_ui/repos.py
@@ -98,17 +98,17 @@ def show_repo(repo_id: str, errors: t.Mapping[str, bool] = {}) \
@bp.route('/repos/view/<string:repo_id>', methods=['POST'])
def alter_repo(repo_id: str) -> werkzeug.Response:
+ form_data = flask.request.form
+ action = form_data['action']
+
repo_id = str(int(repo_id))
if repo_id == '1':
# Protect local semi-repo.
flask.abort(403)
- repo_ref = _app.get_haketilo_state().repo_store().get(repo_id)
-
- form_data = flask.request.form
- action = form_data['action']
-
try:
+ repo_ref = _app.get_haketilo_state().repo_store().get(repo_id)
+
if action == 'remove_repo':
repo_ref.remove()
return flask.redirect(flask.url_for('.repos'))
@@ -127,6 +127,10 @@ def alter_repo(repo_id: str) -> werkzeug.Response:
return show_repo(repo_id, {'repo_name_taken': True})
except st.RepoUrlInvalid:
return show_repo(repo_id, {'repo_url_invalid': True})
+ except st.RepoCommunicationError:
+ return show_repo(repo_id, {'repo_communication_error': True})
+ except st.RepoApiVersionUnsupported:
+ return show_repo(repo_id, {'repo_api_version_unsupported': True})
except st.MissingItemError:
flask.abort(404)