from flask import Blueprint, request, jsonify, session import os import logging upload_bp = Blueprint("upload_bp", __name__) @upload_bp.route("/upload/", methods=["POST"]) def upload(cdmtype): try: username = session.get("username") if not username: return jsonify({"message": "False", "error": "No username in session"}), 400 # Validate CDM type if cdmtype not in ["PR", "WV"]: return jsonify({"message": "False", "error": "Invalid CDM type"}), 400 # Set up user directory paths base_path = os.path.join(os.getcwd(), "configs", "CDMs", username) pr_path = os.path.join(base_path, "PR") wv_path = os.path.join(base_path, "WV") # Create necessary directories if they don't exist os.makedirs(pr_path, exist_ok=True) os.makedirs(wv_path, exist_ok=True) # Get uploaded file uploaded_file = request.files.get("file") if not uploaded_file: return jsonify({"message": "False", "error": "No file provided"}), 400 # Determine correct save path based on cdmtype filename = uploaded_file.filename save_path = os.path.join(pr_path if cdmtype == "PR" else wv_path, filename) uploaded_file.save(save_path) return jsonify({"message": "Success", "file_saved_to": save_path}) except Exception as e: logging.exception("Upload failed") return jsonify({"message": "False", "error": "Server error"}), 500