feat: save game images locally and store their paths in the database

This commit is contained in:
Manuel Weiser 2024-09-03 11:53:40 +02:00
parent e34d9270e9
commit 1d04d0d941

View File

@ -15,6 +15,7 @@ db.init_app(app)
# Stelle sicher, dass der instance-Ordner existiert # Stelle sicher, dass der instance-Ordner existiert
os.makedirs(app.instance_path, exist_ok=True) os.makedirs(app.instance_path, exist_ok=True)
os.makedirs(os.path.join(app.instance_path, 'game_images'), exist_ok=True) # Create game_images directory
with app.app_context(): with app.app_context():
init_db() # Ensure the database is initialized before any operations init_db() # Ensure the database is initialized before any operations
@ -25,8 +26,19 @@ def add_game():
return jsonify({'message': 'Unauthorized access!'}), 401 return jsonify({'message': 'Unauthorized access!'}), 401
data = request.json data = request.json
buyer_username = g.user.username # Get the username from the authenticated user buyer_username = g.user.username # Get the username from the authenticated user
# Download the image and save it locally
image_url = data['image']
image_response = requests.get(image_url)
if image_response.status_code == 200:
image_filename = os.path.join(app.instance_path, 'game_images', f"{data['title'].replace(' ', '_')}.jpg")
with open(image_filename, 'wb') as f:
f.write(image_response.content)
else:
return jsonify({'message': 'Image could not be downloaded!'}), 400
new_game = Game( new_game = Game(
image=data['image'], image=image_filename, # Save the local path to the image
title=data['title'], title=data['title'],
date=datetime.now().strftime('%Y-%m-%d'), # Set current date date=datetime.now().strftime('%Y-%m-%d'), # Set current date
buyer=buyer_username, # Set buyer as the authenticated user's username buyer=buyer_username, # Set buyer as the authenticated user's username