Coverage for dj/api/query.py: 100%
10 statements
« prev ^ index » next coverage.py v7.2.3, created at 2023-04-17 20:05 -0700
« prev ^ index » next coverage.py v7.2.3, created at 2023-04-17 20:05 -0700
1"""
2DJ Query related APIs.
3"""
6from fastapi import APIRouter, Depends
7from sqlmodel import Session
9from dj.api.helpers import get_dj_query
10from dj.models.metric import TranslatedSQL
11from dj.utils import get_session
13router = APIRouter()
16@router.get("/query/{sql}", response_model=TranslatedSQL)
17def build_a_dj_query(
18 sql: str,
19 *,
20 session: Session = Depends(get_session),
21) -> TranslatedSQL:
22 """
23 Return SQL for a DJ Query.
25 A database can be optionally specified. If no database is specified the optimal one
26 will be used.
27 """
28 query_ast = get_dj_query(
29 session=session,
30 query=sql,
31 )
32 return TranslatedSQL(
33 sql=str(query_ast),
34 )