import os from flask import g, request, jsonify, url_for import auth from core.flask_app import app @app.route("/assets/upload", methods=["POST"]) def upload_user_asset(): """"Mes assets" (voir auth/user_assets_dir.py) : mirroir de routes/uploads/upload_file.py, mais stocké PAR COMPTE plutôt que par jeu, pour être réutilisable dans n'importe quel projet du même compte. Écriture disque + ligne base factorisées dans auth.save_user_asset (partagé avec la génération IA, voir ai/tools.py::_dispatch_add_generated_image).""" f = request.files.get("file") if not f or not f.filename: return jsonify({"error": "Aucun fichier reçu"}), 400 ext = "".join(c for c in os.path.splitext(f.filename)[1].lower() if c.isalnum() or c == ".")[:10] user_id = g.current_user["id"] asset_id, filename = auth.save_user_asset(user_id, f.read(), ext, original_name=f.filename, source="upload") return jsonify({ "id": asset_id, "url": url_for("serve_user_asset", user_id=user_id, filename=filename), })