from fastapi import APIRouter, Depends, HTTPException from backend.core.quantum_search import GroverSearch from backend.api.auth import get_api_key from backend.core.logging_config import get_logger router = APIRouter() logger = get_logger("quantum_routes") @router.post("/quantum/grover") def run_grover(database_size: int, target_idx: int, iterations: int = None, api_key: str = Depends(get_api_key)): try: search = GroverSearch(database_size) result_idx = search.run(target_idx, iterations) logger.info(f"Grover search: db_size={database_size}, target={target_idx}, result={result_idx}") return {"found_index": result_idx} except Exception as e: logger.error(f"Grover search error: {e}") raise HTTPException(status_code=500, detail=str(e))