This commit is contained in:
2025-09-11 07:45:25 -07:00
parent f443e7a64e
commit 651ce46183
46 changed files with 5063 additions and 164 deletions

View File

@@ -0,0 +1,38 @@
from fastapi import APIRouter, UploadFile, File, Form, HTTPException
from fastapi.responses import JSONResponse
from app.services.import_service import ImportService
import logging
from typing import Optional
router = APIRouter()
logger = logging.getLogger(__name__)
@router.post("/import/validate")
async def validate_import(
file: UploadFile = File(...),
):
try:
importer = ImportService()
validation_result = await importer.validate_import(file)
return JSONResponse(content=validation_result)
except Exception as e:
logger.error(f"Import validation failed: {str(e)}")
raise HTTPException(status_code=400, detail=str(e)) from e
@router.post("/import")
async def execute_import(
file: UploadFile = File(...),
conflict_resolution: str = Form("skip"),
resolutions: Optional[str] = Form(None),
):
try:
importer = ImportService()
import_result = await importer.execute_import(
file,
conflict_resolution,
resolutions
)
return JSONResponse(content=import_result)
except Exception as e:
logger.error(f"Import failed: {str(e)}")
raise HTTPException(status_code=500, detail=str(e)) from e