From 660e81603d654b8b80cd85e77a5d85ab26eb82aa Mon Sep 17 00:00:00 2001 From: Karl Hudgell Date: Mon, 4 Nov 2024 16:39:02 +0000 Subject: [PATCH] fixed add and remove account logic --- app.py | 30 +++++++++++- lib/reqs.py | 34 +++++++++++-- templates/add_account.html | 95 ++++++++++++++++++++++++++++++++++++ templates/user_accounts.html | 77 +++++++++-------------------- 4 files changed, 177 insertions(+), 59 deletions(-) create mode 100644 templates/add_account.html diff --git a/app.py b/app.py index dc02270..2c6d65a 100644 --- a/app.py +++ b/app.py @@ -3,7 +3,7 @@ from flask import Flask, render_template, request, redirect, url_for, session, f from flask_caching import Cache import requests.auth from lib.datetime import filter_accounts_current_month -from lib.reqs import (get_urls, get_user_accounts) +from lib.reqs import (get_urls, get_user_accounts, add_user_account, delete_user_account) import requests import base64 from flask import Flask @@ -78,5 +78,33 @@ def user_accounts(): base_url = app.config['BASE_URL'] # Access base_url from the config return render_template('user_accounts.html', username=session['username'], user_accounts=get_user_accounts(base_url, session['auth_credentials']), auth=session['auth_credentials']) + +@app.route('/accounts/add', methods=['GET', 'POST']) +def add_account(): + base_url = app.config['BASE_URL'] # Access base_url from the config + if request.method == 'POST': + username = request.form['username'] + password = request.form['password'] + stream = request.form['stream'] + + if add_user_account(base_url, session['auth_credentials'], username, password, stream): + cache.clear() # Clears all cache entries + return redirect(url_for('user_accounts')) + return render_template('add_account.html') + + return render_template('add_account.html') + +@app.route('/accounts/delete', methods=['POST']) +def delete_account(): + stream = request.form.get('stream') + username = request.form.get('username') + base_url = app.config['BASE_URL'] + + if delete_user_account(base_url,session['auth_credentials'], stream, username): + cache.clear() # Clears all cache entries + return redirect(url_for('user_accounts')) + return redirect(url_for('user_accounts')) + + if __name__ == '__main__': app.run(debug=app.config['DEBUG'], host=app.config['HOST'], port=app.config['PORT']) diff --git a/lib/reqs.py b/lib/reqs.py index 04e18a1..14943d1 100644 --- a/lib/reqs.py +++ b/lib/reqs.py @@ -40,12 +40,40 @@ def delete_user_account(base_url: str, auth: str, stream:str, username:str) -> b Returns: bool: _description_ """ - url = f"{base_url}/getUserAccounts" + url = f"{base_url}/deleteAccount" payload = {"stream": stream, "user": username} headers = {"Authorization": f"Basic {auth}"} response = requests.request("POST", url, headers=headers, data=payload) - res_json = json.loads(response.text) - return res_json + if "Deleted" in response.text: + return True + else: + return False + + + +def add_user_account(base_url: str, auth: str, username:str, password:str, stream:str,) -> bool: + """_summary_ + + Args: + base_url (str): _description_ + auth (str): _description_ + stream (str): _description_ + username (str): _description_ + + Returns: + bool: _description_ + """ + url = f"{base_url}/addAccount" + + payload = {"username": username, "password": password, "stream": stream} + + headers = {"Authorization": f"Basic {auth}"} + + response = requests.request("POST", url, headers=headers, data=payload) + if "Added successfully" in response.text: + return True + else: + return False \ No newline at end of file diff --git a/templates/add_account.html b/templates/add_account.html new file mode 100644 index 0000000..cf2f6d8 --- /dev/null +++ b/templates/add_account.html @@ -0,0 +1,95 @@ + + + + + + + Add Account - KTVManager + + + + + + + + + +
+
+ +
+
+ + +
+

Add Account

+
+ +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+ + + + + + + + + diff --git a/templates/user_accounts.html b/templates/user_accounts.html index 1474165..0c7c6b7 100644 --- a/templates/user_accounts.html +++ b/templates/user_accounts.html @@ -7,13 +7,6 @@ - @@ -31,6 +24,20 @@ + +
+
+ +
+
+

{{ username }}'s Accounts

@@ -55,11 +62,15 @@ {{ account.stream }} {{ account.streamURL }} {{ account.expiaryDate_rendered }} - ******** + {{ account.password }} - +
+ + + +
{% endfor %} @@ -78,7 +89,6 @@