mirror of
https://github.com/sstent/AICyclingCoach.git
synced 2026-01-26 00:52:07 +00:00
38 lines
1.2 KiB
Python
38 lines
1.2 KiB
Python
from fastapi import APIRouter, UploadFile, File, Form, HTTPException
|
|
from fastapi.responses import JSONResponse
|
|
from backend.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 |