Spaces:
Running
Running
| from __future__ import annotations | |
| import time | |
| from fastapi import APIRouter, Depends | |
| from app.api.deps import require_auth | |
| from app.models.schemas import SqlValidationRequest, SqlValidationResponse | |
| from app.services.sql_validator_service import SqlValidatorService | |
| router = APIRouter() | |
| _service = SqlValidatorService() | |
| async def validate_sql( | |
| body: SqlValidationRequest, | |
| token: str = Depends(require_auth), | |
| ): | |
| start = time.perf_counter() | |
| result = _service.validate(body.query, body.dialect) | |
| elapsed_ms = round((time.perf_counter() - start) * 1000, 3) | |
| return SqlValidationResponse( | |
| success=True, | |
| time_ms=elapsed_ms, | |
| valid=result["valid"], | |
| query_type=result["query_type"], | |
| dialect=result["dialect"], | |
| is_read_only=result["is_read_only"], | |
| errors=result["errors"], | |
| warnings=result["warnings"], | |
| tables=result["tables"], | |
| columns=result["columns"], | |
| ) | |