update cache logic

This commit is contained in:
Karl 2025-07-16 09:09:05 +01:00
parent 6689e3fad5
commit 31ef25ead3
2 changed files with 16 additions and 6 deletions

10
app.py
View File

@ -145,13 +145,13 @@ def urls() -> Union[Response, str]:
) )
@app.route("/accounts", methods=["GET"]) @app.route("/accounts", methods=["GET"])
@cache.cached(timeout=60)
def user_accounts() -> Union[Response, str]: def user_accounts() -> Union[Response, str]:
"""Renders the user accounts page.""" """Renders the user accounts page."""
if not session.get("logged_in"): if not session.get("logged_in"):
return redirect(url_for("home")) return redirect(url_for("home"))
base_url = app.config["BASE_URL"] base_url = app.config["BASE_URL"]
user_accounts_data = get_user_accounts(base_url, session["auth_credentials"]) user_accounts_data = get_user_accounts(base_url, session["auth_credentials"])
cache.delete_memoized(user_accounts)
return render_template( return render_template(
"user_accounts.html", "user_accounts.html",
username=session["username"], username=session["username"],
@ -172,7 +172,7 @@ def add_account() -> Union[Response, str]:
if add_user_account( if add_user_account(
base_url, session["auth_credentials"], username, password, stream base_url, session["auth_credentials"], username, password, stream
): ):
cache.clear() cache.delete_memoized(user_accounts)
return redirect(url_for("user_accounts")) return redirect(url_for("user_accounts"))
return render_template( return render_template(
@ -189,6 +189,7 @@ def delete_account() -> Response:
username = request.form.get("username") username = request.form.get("username")
base_url = app.config["BASE_URL"] base_url = app.config["BASE_URL"]
delete_user_account(base_url, session["auth_credentials"], stream, username) delete_user_account(base_url, session["auth_credentials"], stream, username)
cache.delete_memoized(user_accounts)
return redirect(url_for("user_accounts")) return redirect(url_for("user_accounts"))
@app.route("/validateAccount", methods=["POST"]) @app.route("/validateAccount", methods=["POST"])
@ -206,7 +207,10 @@ def validate_account() -> Tuple[Response, int]:
json=request.get_json() json=request.get_json()
) )
response.raise_for_status() response.raise_for_status()
return jsonify(response.json()), response.status_code response_data = response.json()
if response_data.get("message") == "Account is valid and updated":
cache.delete_memoized(user_accounts)
return jsonify(response_data), response.status_code
except requests.exceptions.RequestException as e: except requests.exceptions.RequestException as e:
return jsonify({"error": str(e)}), 500 return jsonify({"error": str(e)}), 500

View File

@ -122,11 +122,17 @@
max_connections: maxConnections max_connections: maxConnections
}), }),
success: function(response) { success: function(response) {
if (response.message === 'Account is valid and updated') {
location.reload();
} else {
spinner.hide(); spinner.hide();
buttonText.show(); buttonText.show();
if (response.message === 'Account is valid and updated') {
button.prop('disabled', false);
button.removeClass('btn-info').addClass('btn-success');
buttonText.text('Valid & Updated');
setTimeout(function() {
button.removeClass('btn-success').addClass('btn-info');
buttonText.text('Validate');
}, 3000);
} else {
button.prop('disabled', false); button.prop('disabled', false);
button.removeClass('btn-info').addClass('btn-success'); button.removeClass('btn-info').addClass('btn-success');
buttonText.text('Valid'); buttonText.text('Valid');