Fix new Frontend 7
This commit is contained in:
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user