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"])
@cache.cached(timeout=60)
def user_accounts() -> Union[Response, str]:
"""Renders the user accounts page."""
if not session.get("logged_in"):
return redirect(url_for("home"))
base_url = app.config["BASE_URL"]
user_accounts_data = get_user_accounts(base_url, session["auth_credentials"])
cache.delete_memoized(user_accounts)
return render_template(
"user_accounts.html",
username=session["username"],
@ -172,7 +172,7 @@ def add_account() -> Union[Response, str]:
if add_user_account(
base_url, session["auth_credentials"], username, password, stream
):
cache.clear()
cache.delete_memoized(user_accounts)
return redirect(url_for("user_accounts"))
return render_template(
@ -189,6 +189,7 @@ def delete_account() -> Response:
username = request.form.get("username")
base_url = app.config["BASE_URL"]
delete_user_account(base_url, session["auth_credentials"], stream, username)
cache.delete_memoized(user_accounts)
return redirect(url_for("user_accounts"))
@app.route("/validateAccount", methods=["POST"])
@ -206,7 +207,10 @@ def validate_account() -> Tuple[Response, int]:
json=request.get_json()
)
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:
return jsonify({"error": str(e)}), 500

View File

@ -122,11 +122,17 @@
max_connections: maxConnections
}),
success: function(response) {
spinner.hide();
buttonText.show();
if (response.message === 'Account is valid and updated') {
location.reload();
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 {
spinner.hide();
buttonText.show();
button.prop('disabled', false);
button.removeClass('btn-info').addClass('btn-success');
buttonText.text('Valid');