Fix new Frontend 7

This commit is contained in:
Urtzi Alfaro
2025-08-04 08:42:35 +02:00
parent 0e2c6dd54e
commit a8dbd37c5a
4 changed files with 76 additions and 35 deletions

View File

@@ -247,26 +247,52 @@ async def import_sales_data(
@router.post("/tenants/{tenant_id}/sales/import/validate", response_model=SalesValidationResult)
async def validate_import_data(
import_data: SalesDataImport,
tenant_id: UUID = Path(..., description="Tenant ID"),
file: UploadFile = File(..., description="File to validate"),
file_format: str = Form(default="csv", description="File format: csv, json, excel"),
validate_only: bool = Form(default=True, description="Only validate, don't import"),
source: str = Form(default="onboarding_upload", description="Source of the upload"),
current_user: Dict[str, Any] = Depends(get_current_user_dep)
):
"""Validate import data - Gateway already verified tenant access"""
"""
✅ FIXED: Validate import data using FormData (same as import endpoint)
Now both validation and import endpoints use the same FormData approach
"""
try:
logger.debug("Validating import data",
logger.info("Validating import data",
tenant_id=tenant_id,
format=file_format,
filename=file.filename,
user_id=current_user["user_id"])
# ✅ STEP 1: Read file content (same as import endpoint)
content = await file.read()
file_content = content.decode('utf-8')
# ✅ STEP 2: Create validation data structure
# This matches the SalesDataImport schema but gets data from FormData
validation_data = {
"tenant_id": str(tenant_id), # From URL path
"data": file_content, # From uploaded file
"data_format": file_format, # From form field
"source": source, # From form field
"validate_only": validate_only # From form field
}
logger.debug("Validation data prepared",
tenant_id=tenant_id,
user_id=current_user["user_id"])
data_length=len(file_content),
format=file_format)
# Set tenant context from URL path
import_data.tenant_id = tenant_id
# ✅ STEP 3: Use existing validation service
validation_result = await DataImportService.validate_import_data(validation_data)
validation = await DataImportService.validate_import_data(import_data.model_dump())
logger.info("Validation completed",
is_valid=validation_result.get("is_valid", False),
total_records=validation_result.get("total_records", 0),
tenant_id=tenant_id)
logger.debug("Validation completed",
is_valid=validation.get("is_valid", False),
tenant_id=tenant_id)
return validation
return validation_result
except Exception as e:
logger.error("Failed to validate import data",