updated to receive player message
This commit is contained in:
63
app/app.py
63
app/app.py
@@ -1,25 +1,10 @@
|
||||
# ...existing code...
|
||||
|
||||
# Player feedback API
|
||||
from models.player_feedback import PlayerFeedback
|
||||
# --- API route to receive player feedback ---
|
||||
@app.route('/api/player-feedback', methods=['POST'])
|
||||
def api_player_feedback():
|
||||
data = request.get_json()
|
||||
required_fields = ['player_name', 'quickconnect_code', 'message', 'status', 'timestamp']
|
||||
if not all(field in data for field in required_fields):
|
||||
return jsonify({'error': 'Missing required fields'}), 400
|
||||
|
||||
feedback = PlayerFeedback(
|
||||
player_name=data['player_name'],
|
||||
quickconnect_code=data['quickconnect_code'],
|
||||
message=data['message'],
|
||||
status=data['status'],
|
||||
timestamp=data['timestamp'],
|
||||
playlist_version=data.get('playlist_version'),
|
||||
error_details=data.get('error_details')
|
||||
)
|
||||
db.session.add(feedback)
|
||||
db.session.commit()
|
||||
return jsonify({'success': True, 'feedback_id': feedback.id}), 200
|
||||
# --- API route to receive player feedback ---
|
||||
|
||||
import os
|
||||
import click
|
||||
import psutil
|
||||
@@ -121,6 +106,38 @@ login_manager.login_view = 'login'
|
||||
|
||||
migrate = Migrate(app, db)
|
||||
|
||||
@app.route('/api/player-feedback', methods=['POST'])
|
||||
def api_player_feedback():
|
||||
from datetime import datetime
|
||||
import dateutil.parser
|
||||
|
||||
data = request.get_json()
|
||||
required_fields = ['player_name', 'quickconnect_code', 'message', 'status', 'timestamp']
|
||||
if not all(field in data for field in required_fields):
|
||||
return jsonify({'error': 'Missing required fields'}), 400
|
||||
|
||||
# Convert timestamp string to datetime object
|
||||
try:
|
||||
if isinstance(data['timestamp'], str):
|
||||
timestamp = dateutil.parser.parse(data['timestamp'])
|
||||
else:
|
||||
timestamp = data['timestamp']
|
||||
except (ValueError, TypeError):
|
||||
return jsonify({'error': 'Invalid timestamp format'}), 400
|
||||
|
||||
feedback = PlayerFeedback(
|
||||
player_name=data['player_name'],
|
||||
quickconnect_code=data['quickconnect_code'],
|
||||
message=data['message'],
|
||||
status=data['status'],
|
||||
timestamp=timestamp,
|
||||
playlist_version=data.get('playlist_version'),
|
||||
error_details=data.get('error_details')
|
||||
)
|
||||
db.session.add(feedback)
|
||||
db.session.commit()
|
||||
return jsonify({'success': True, 'feedback_id': feedback.id}), 200
|
||||
|
||||
# Add error handlers for better user experience
|
||||
@app.errorhandler(413)
|
||||
def request_entity_too_large(error):
|
||||
@@ -352,7 +369,13 @@ def create_user():
|
||||
def player_page(player_id):
|
||||
player = db.session.get(Player, player_id)
|
||||
content = get_player_content(player_id)
|
||||
return render_template('player_page.html', player=player, content=content)
|
||||
|
||||
# Get last 5 feedback entries for this player
|
||||
player_feedback = PlayerFeedback.query.filter_by(
|
||||
player_name=player.username
|
||||
).order_by(PlayerFeedback.timestamp.desc()).limit(5).all()
|
||||
|
||||
return render_template('player_page.html', player=player, content=content, player_feedback=player_feedback)
|
||||
|
||||
@app.route('/player/<int:player_id>/upload', methods=['POST'])
|
||||
@login_required
|
||||
|
||||
Reference in New Issue
Block a user