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

1""" 

2DJ Query related APIs. 

3""" 

4 

5 

6from fastapi import APIRouter, Depends 

7from sqlmodel import Session 

8 

9from dj.api.helpers import get_dj_query 

10from dj.models.metric import TranslatedSQL 

11from dj.utils import get_session 

12 

13router = APIRouter() 

14 

15 

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. 

24 

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 )