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