2121 check_status_by_id , sync_single_fields
2222from ..crud .field import get_fields_by_table_id
2323from ..crud .table import get_tables_by_ds_id
24- from ..models .datasource import CoreDatasource , CreateDatasource , TableObj , CoreTable , CoreField , FieldObj
24+ from ..models .datasource import CoreDatasource , CreateDatasource , TableObj , CoreTable , CoreField , FieldObj , \
25+ TableSchemaResponse , ColumnSchemaResponse , PreviewResponse
2526
2627router = APIRouter (tags = ["Datasource" ], prefix = "/datasource" )
2728path = settings .EXCEL_PATH
@@ -45,57 +46,59 @@ async def get_datasource(session: SessionDep, id: int = Path(..., description=f"
4546 return get_ds (session , id )
4647
4748
48- @router .post ("/check" )
49+ @router .post ("/check" , response_model = bool , summary = f" { PLACEHOLDER_PREFIX } ds_check" )
4950async def check (session : SessionDep , trans : Trans , ds : CoreDatasource ):
5051 def inner ():
5152 return check_status (session , trans , ds , True )
5253
5354 return await asyncio .to_thread (inner )
5455
5556
56- @router .get ("/check/{ds_id}" )
57- async def check_by_id (session : SessionDep , trans : Trans , ds_id : int ):
57+ @router .get ("/check/{ds_id}" , response_model = bool , summary = f"{ PLACEHOLDER_PREFIX } ds_check" )
58+ async def check_by_id (session : SessionDep , trans : Trans ,
59+ ds_id : int = Path (..., description = f"{ PLACEHOLDER_PREFIX } ds_id" )):
5860 def inner ():
5961 return check_status_by_id (session , trans , ds_id , True )
6062
6163 return await asyncio .to_thread (inner )
6264
6365
64- @router .post ("/add" , response_model = CoreDatasource )
66+ @router .post ("/add" , response_model = CoreDatasource , summary = f" { PLACEHOLDER_PREFIX } ds_add" )
6567async def add (session : SessionDep , trans : Trans , user : CurrentUser , ds : CreateDatasource ):
6668 def inner ():
6769 return create_ds (session , trans , user , ds )
6870
6971 return await asyncio .to_thread (inner )
7072
7173
72- @router .post ("/chooseTables/{id}" )
73- async def choose_tables (session : SessionDep , trans : Trans , id : int , tables : List [CoreTable ]):
74+ @router .post ("/chooseTables/{id}" , response_model = None , summary = f"{ PLACEHOLDER_PREFIX } ds_choose_tables" )
75+ async def choose_tables (session : SessionDep , trans : Trans , tables : List [CoreTable ],
76+ id : int = Path (..., description = f"{ PLACEHOLDER_PREFIX } ds_id" )):
7477 def inner ():
7578 chooseTables (session , trans , id , tables )
7679
7780 await asyncio .to_thread (inner )
7881
7982
80- @router .post ("/update" , response_model = CoreDatasource )
83+ @router .post ("/update" , response_model = CoreDatasource , summary = f" { PLACEHOLDER_PREFIX } ds_update" )
8184async def update (session : SessionDep , trans : Trans , user : CurrentUser , ds : CoreDatasource ):
8285 def inner ():
8386 return update_ds (session , trans , user , ds )
8487
8588 return await asyncio .to_thread (inner )
8689
8790
88- @router .post ("/delete/{id}" , response_model = CoreDatasource )
89- async def delete (session : SessionDep , id : int ):
91+ @router .post ("/delete/{id}" , response_model = None , summary = f" { PLACEHOLDER_PREFIX } ds_delete" )
92+ async def delete (session : SessionDep , id : int = Path (..., description = f" { PLACEHOLDER_PREFIX } ds_id" ) ):
9093 return delete_ds (session , id )
9194
9295
93- @router .post ("/getTables/{id}" )
94- async def get_tables (session : SessionDep , id : int ):
96+ @router .post ("/getTables/{id}" , response_model = List [ TableSchemaResponse ], summary = f" { PLACEHOLDER_PREFIX } ds_get_tables" )
97+ async def get_tables (session : SessionDep , id : int = Path (..., description = f" { PLACEHOLDER_PREFIX } ds_id" ) ):
9598 return getTables (session , id )
9699
97100
98- @router .post ("/getTablesByConf" )
101+ @router .post ("/getTablesByConf" , response_model = List [ TableSchemaResponse ], summary = f" { PLACEHOLDER_PREFIX } ds_get_tables" )
99102async def get_tables_by_conf (session : SessionDep , trans : Trans , ds : CoreDatasource ):
100103 try :
101104 def inner ():
@@ -113,7 +116,7 @@ def inner():
113116 raise HTTPException (status_code = 500 , detail = f'Get table Failed: { e .args } ' )
114117
115118
116- @router .post ("/getSchemaByConf" )
119+ @router .post ("/getSchemaByConf" , response_model = List [ str ], summary = f" { PLACEHOLDER_PREFIX } ds_get_schema" )
117120async def get_schema_by_conf (session : SessionDep , trans : Trans , ds : CoreDatasource ):
118121 try :
119122 def inner ():
@@ -131,13 +134,16 @@ def inner():
131134 raise HTTPException (status_code = 500 , detail = f'Get table Failed: { e .args } ' )
132135
133136
134- @router .post ("/getFields/{id}/{table_name}" )
135- async def get_fields (session : SessionDep , id : int , table_name : str ):
137+ @router .post ("/getFields/{id}/{table_name}" , response_model = List [ColumnSchemaResponse ],
138+ summary = f"{ PLACEHOLDER_PREFIX } ds_get_fields" )
139+ async def get_fields (session : SessionDep ,
140+ id : int = Path (..., description = f"{ PLACEHOLDER_PREFIX } ds_id" ),
141+ table_name : str = Path (..., description = f"{ PLACEHOLDER_PREFIX } ds_table_name" )):
136142 return getFields (session , id , table_name )
137143
138144
139- @router .post ("/syncFields/{id}" )
140- async def sync_fields (session : SessionDep , id : int ):
145+ @router .post ("/syncFields/{id}" , response_model = None , summary = f" { PLACEHOLDER_PREFIX } ds_sync_fields" )
146+ async def sync_fields (session : SessionDep , id : int = Path (..., description = f" { PLACEHOLDER_PREFIX } ds_table_id" ) ):
141147 return sync_single_fields (session , id )
142148
143149
@@ -149,7 +155,7 @@ class TestObj(BaseModel):
149155
150156
151157# not used, just do test
152- @router .post ("/execSql/{id}" )
158+ @router .post ("/execSql/{id}" , include_in_schema = False )
153159async def exec_sql (session : SessionDep , id : int , obj : TestObj ):
154160 def inner ():
155161 data = execSql (session , id , obj .sql )
@@ -165,33 +171,35 @@ def inner():
165171 return await asyncio .to_thread (inner )
166172
167173
168- @router .post ("/tableList/{id}" )
169- async def table_list (session : SessionDep , id : int ):
174+ @router .post ("/tableList/{id}" , response_model = List [ CoreTable ], summary = f" { PLACEHOLDER_PREFIX } ds_table_list" )
175+ async def table_list (session : SessionDep , id : int = Path (..., description = f" { PLACEHOLDER_PREFIX } ds_id" ) ):
170176 return get_tables_by_ds_id (session , id )
171177
172178
173- @router .post ("/fieldList/{id}" )
174- async def field_list (session : SessionDep , id : int , field : FieldObj ):
179+ @router .post ("/fieldList/{id}" , response_model = List [CoreField ], summary = f"{ PLACEHOLDER_PREFIX } ds_field_list" )
180+ async def field_list (session : SessionDep , field : FieldObj ,
181+ id : int = Path (..., description = f"{ PLACEHOLDER_PREFIX } ds_table_id" )):
175182 return get_fields_by_table_id (session , id , field )
176183
177184
178- @router .post ("/editLocalComment" )
185+ @router .post ("/editLocalComment" , include_in_schema = False )
179186async def edit_local (session : SessionDep , data : TableObj ):
180187 update_table_and_fields (session , data )
181188
182189
183- @router .post ("/editTable" )
190+ @router .post ("/editTable" , response_model = None , summary = f" { PLACEHOLDER_PREFIX } ds_edit_table" )
184191async def edit_table (session : SessionDep , table : CoreTable ):
185192 updateTable (session , table )
186193
187194
188- @router .post ("/editField" )
195+ @router .post ("/editField" , response_model = None , summary = f" { PLACEHOLDER_PREFIX } ds_edit_field" )
189196async def edit_field (session : SessionDep , field : CoreField ):
190197 updateField (session , field )
191198
192199
193- @router .post ("/previewData/{id}" )
194- async def preview_data (session : SessionDep , trans : Trans , current_user : CurrentUser , id : int , data : TableObj ):
200+ @router .post ("/previewData/{id}" , response_model = PreviewResponse , summary = f"{ PLACEHOLDER_PREFIX } ds_preview_data" )
201+ async def preview_data (session : SessionDep , trans : Trans , current_user : CurrentUser , data : TableObj ,
202+ id : int = Path (..., description = f"{ PLACEHOLDER_PREFIX } ds_id" )):
195203 def inner ():
196204 try :
197205 return preview (session , current_user , id , data )
@@ -207,7 +215,7 @@ def inner():
207215
208216
209217# not used
210- @router .post ("/fieldEnum/{id}" )
218+ @router .post ("/fieldEnum/{id}" , include_in_schema = False )
211219async def field_enum (session : SessionDep , id : int ):
212220 def inner ():
213221 return fieldEnum (session , id )
@@ -279,8 +287,8 @@ def inner():
279287# return await asyncio.to_thread(inner)
280288
281289
282- @router .post ("/uploadExcel" )
283- async def upload_excel (session : SessionDep , file : UploadFile = File (...)):
290+ @router .post ("/uploadExcel" , response_model = None , summary = f" { PLACEHOLDER_PREFIX } ds_upload_excel" )
291+ async def upload_excel (session : SessionDep , file : UploadFile = File (..., description = f" { PLACEHOLDER_PREFIX } ds_excel" )):
284292 ALLOWED_EXTENSIONS = {"xlsx" , "xls" , "csv" }
285293 if not file .filename .lower ().endswith (tuple (ALLOWED_EXTENSIONS )):
286294 raise HTTPException (400 , "Only support .xlsx/.xls/.csv" )
0 commit comments