|
|
@@ -32,13 +32,15 @@ async def upload_files(background_tasks: BackgroundTasks, files: List[UploadFile
|
|
|
# --- CACHE CHECK (Hash based) ---
|
|
|
filament_g = None
|
|
|
print_time = None
|
|
|
+ dimensions = None
|
|
|
cached_record = db.execute_query(
|
|
|
- "SELECT filament_g, print_time FROM order_files WHERE file_hash = %s AND print_time IS NOT NULL LIMIT 1",
|
|
|
+ "SELECT filament_g, print_time, dimensions FROM order_files WHERE file_hash = %s AND print_time IS NOT NULL LIMIT 1",
|
|
|
(file_hash,)
|
|
|
)
|
|
|
if cached_record:
|
|
|
filament_g = cached_record[0]['filament_g']
|
|
|
print_time = cached_record[0]['print_time']
|
|
|
+ dimensions = cached_record[0]['dimensions']
|
|
|
|
|
|
# Only slice if not cached
|
|
|
if not print_time and config.SYNC_SLICING_ON_UPLOAD and file_ext.lower() == ".stl":
|
|
|
@@ -47,6 +49,7 @@ async def upload_files(background_tasks: BackgroundTasks, files: List[UploadFile
|
|
|
if result and result.get('success'):
|
|
|
filament_g = result.get('filament_g')
|
|
|
print_time = result.get('print_time_str')
|
|
|
+ dimensions = result.get('dimensions')
|
|
|
|
|
|
preview_path = None
|
|
|
db_preview_path = None
|
|
|
@@ -56,8 +59,8 @@ async def upload_files(background_tasks: BackgroundTasks, files: List[UploadFile
|
|
|
db_preview_path = f"uploads/previews/{preview_filename}"
|
|
|
preview_utils.generate_stl_preview(file_path, preview_path)
|
|
|
|
|
|
- query = "INSERT INTO order_files (order_id, filename, file_path, file_size, quantity, file_hash, print_time, filament_g, preview_path) VALUES (NULL, %s, %s, %s, 1, %s, %s, %s, %s)"
|
|
|
- f_id = db.execute_commit(query, (file.filename, db_file_path, file.size, file_hash, print_time, filament_g, db_preview_path))
|
|
|
+ query = "INSERT INTO order_files (order_id, filename, file_path, file_size, quantity, file_hash, print_time, filament_g, preview_path, dimensions) VALUES (NULL, %s, %s, %s, 1, %s, %s, %s, %s, %s)"
|
|
|
+ f_id = db.execute_commit(query, (file.filename, db_file_path, file.size, file_hash, print_time, filament_g, db_preview_path, dimensions))
|
|
|
|
|
|
# If preview/slicing didn't happen (not cached and not sync), run in background
|
|
|
if not print_time or not db_preview_path:
|
|
|
@@ -65,6 +68,7 @@ async def upload_files(background_tasks: BackgroundTasks, files: List[UploadFile
|
|
|
|
|
|
uploaded_data.append({
|
|
|
"id": f_id, "filename": file.filename, "size": file.size,
|
|
|
- "print_time": print_time, "filament_g": filament_g, "preview_path": db_preview_path
|
|
|
+ "print_time": print_time, "filament_g": filament_g, "preview_path": db_preview_path,
|
|
|
+ "dimensions": dimensions
|
|
|
})
|
|
|
return {"uploaded": uploaded_data}
|