GSS/frontend.py
kokofixcomputers b20d65ca96 Initial Commit
2025-05-22 09:14:41 -07:00

152 lines
6.1 KiB
Python

from flask import Flask, render_template, request, redirect, url_for, make_response, abort, jsonify
import requests
app = Flask(__name__)
app.config['SECRET_KEY'] = 'your_secret_key_here'
# API URL
API_URL = 'http://localhost:5023'
# Routes
@app.route('/')
def index():
return render_template('index.html')
@app.route('/modal')
def modal():
id = request.args.get('id')
if id == "scratch":
return render_template('scratch_modal.html')
@app.route('/login/user', methods=['GET', 'POST'])
def login_user():
if request.method == 'POST':
data = request.form
response = requests.post(f'{API_URL}/api/user/login', json={'email': data['email'], 'password': data['password']})
if response.status_code == 200:
session_token = response.json()['session_token']
resp = make_response("Login Successful!")
resp.set_cookie('session_token', session_token, secure=True, httponly=True)
return resp
else:
abort(400)
return render_template('login_user.html')
@app.route('/login/developer', methods=['GET', 'POST'])
def login_developer():
if request.method == 'POST':
data = request.form
response = requests.post(f'{API_URL}/api/developer/login', json={'email': data['email'], 'password': data['password']})
if response.status_code == 200:
session_token = response.json()['session_token']
resp = make_response("Login Successful!")
resp.set_cookie('devsession_token', session_token, secure=True, httponly=True)
return resp
else:
return render_template('login_developer.html', error='Invalid email or password')
return render_template('login_developer.html')
@app.route('/register/user', methods=['GET', 'POST'])
def register_user():
if request.method == 'POST':
data = request.form
response = requests.post(f'{API_URL}/api/user/register', json={'username': data['username'], 'email': data['email'], 'password': data['password'], 'game_password': data['game_password']})
if response.status_code == 201:
return render_template('user_registered.html', message=response.json()['message'])
else:
return render_template('register_user.html', error='Failed to register user')
return render_template('register_user.html')
@app.route('/register/developer', methods=['GET', 'POST'])
def register_developer():
if request.method == 'POST':
data = request.form
response = requests.post(f'{API_URL}/api/developer/register', json={'email': data['email'], 'password': data['password']})
if response.status_code == 201:
return render_template('developer_registered.html', message=response.json()['message'])
else:
return render_template('register_developer.html', error='Failed to register developer')
return render_template('register_developer.html')
@app.route('/user/dashboard')
def user_dashboard():
session_token = request.cookies.get('session_token')
if not session_token:
return redirect(url_for('login_user'))
response = requests.post(f'{API_URL}/api/user/stats', json={'token': f'{session_token}'})
if response.status_code == 200:
user_stats = response.json()
games_played_count = len(user_stats['games_played'])
return render_template('user_dashboard.html', user_stats=user_stats, games_played_count=games_played_count)
else:
return redirect(url_for('login_user'))
@app.route('/developer/dashboard')
def developer_dashboard():
session_token = request.cookies.get('devsession_token')
if not session_token:
return redirect(url_for('login_developer'))
count = requests.post(f'{API_URL}/api/developerstats/games', json={'token': session_token})
if count.status_code == 200:
return render_template('developer_dashboard.html', session_token=session_token, count=count.json()['len'])
else:
return redirect('login_developer')
@app.route('/developer/dashboard/games')
def developer_dashboard_games():
session_token = request.cookies.get('devsession_token')
if not session_token:
return redirect(url_for('login_developer'))
count = requests.post(f'{API_URL}/api/developerstats/games', json={'token': session_token})
if count.status_code == 200:
return render_template('developer_dashboard_game.html', session_token=session_token, count=count.json()['len'], games=count.json()['games'])
else:
return redirect('login_developer')
@app.route('/developer/register/game', methods=['GET', 'POST'])
def register_game():
session_token = request.cookies.get('devsession_token')
if not session_token:
return redirect(url_for('login_developer'))
if request.method == 'POST':
data = request.form
response = requests.post(f'{API_URL}/api/game/register', json={'session_token': session_token, 'name': data['name']})
if response.status_code == 201:
return "OK"
else:
return response.json()['error'], 400
return render_template('register_game.html')
@app.route('/developer/delete/game', methods=['GET'])
def delete_game():
gameugi = request.args.get('ugi')
gamename = request.args.get('name')
session_token = request.cookies.get('devsession_token')
if not session_token:
return redirect(url_for('login_developer'))
if not gameugi or not gamename:
return jsonify({"error": "The ugi or the name parameter was not found"})
return render_template('developer_dashboard_delete_game.html', name=gamename, ugi=gameugi)
@app.route('/developer/dashboard/games/delete/confirmed', methods=['POST'])
def delete_actually_do_it():
session_token = request.cookies.get('devsession_token')
ugi = request.args.get('ugi')
if not session_token:
return redirect(url_for('login_developer'))
if not ugi:
return jsonify({"error": "Ugi parameter must be provided."})
resp = requests.post(f'{API_URL}/api/game/delete', json={'session_token': session_token, 'ugi': ugi})
if resp.status_code == 200:
return "OK"
# Other routes...
#if __name__ == '__main__':
#app.run(debug=True, port=5001)