aboutsummaryrefslogtreecommitdiff
path: root/src/hydrilla/proxy/web_ui/repos.py
diff options
context:
space:
mode:
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)