22import json
33from typing import List
44
5+ from fastapi import HTTPException
56from sqlalchemy import and_ , text , cast
67from sqlalchemy .dialects .postgresql import JSONB
78from sqlbot_xpack .permissions .models .ds_permission import DsPermission
1314from apps .db .db import get_engine , get_tables , get_fields , exec_sql
1415from apps .db .engine import get_engine_config , get_engine_conn
1516from apps .db .type import db_type_relation
16- from common .core .deps import SessionDep , CurrentUser
17+ from common .core .deps import SessionDep , CurrentUser , Trans
1718from common .utils .utils import deepcopy_ignore_extra
1819from .table import get_tables_by_ds_id
1920from ..crud .field import delete_field_by_ds_id , update_field
@@ -45,23 +46,23 @@ def check_status(session: SessionDep, ds: CoreDatasource):
4546 return False
4647
4748
48- def check_name (session : SessionDep , user : CurrentUser , ds : CoreDatasource ):
49+ def check_name (session : SessionDep , trans : Trans , user : CurrentUser , ds : CoreDatasource ):
4950 if ds .id is not None :
5051 ds_list = session .query (CoreDatasource ).filter (
5152 and_ (CoreDatasource .name == ds .name , CoreDatasource .id != ds .id , CoreDatasource .oid == user .oid )).all ()
5253 if ds_list is not None and len (ds_list ) > 0 :
53- raise 'Name exist'
54+ raise HTTPException ( status_code = 500 , detail = trans ( 'i18n_ds_name_exist' ))
5455 else :
5556 ds_list = session .query (CoreDatasource ).filter (
5657 and_ (CoreDatasource .name == ds .name , CoreDatasource .oid == user .oid )).all ()
5758 if ds_list is not None and len (ds_list ) > 0 :
58- raise 'Name exist'
59+ raise HTTPException ( status_code = 500 , detail = trans ( 'i18n_ds_name_exist' ))
5960
6061
61- def create_ds (session : SessionDep , user : CurrentUser , create_ds : CreateDatasource ):
62+ def create_ds (session : SessionDep , trans : Trans , user : CurrentUser , create_ds : CreateDatasource ):
6263 ds = CoreDatasource ()
6364 deepcopy_ignore_extra (create_ds , ds )
64- check_name (session , user , ds )
65+ check_name (session , trans , user , ds )
6566 ds .create_time = datetime .datetime .now ()
6667 # status = check_status(session, ds)
6768 ds .create_by = user .id
@@ -87,9 +88,9 @@ def chooseTables(session: SessionDep, id: int, tables: List[CoreTable]):
8788 updateNum (session , ds )
8889
8990
90- def update_ds (session : SessionDep , user : CurrentUser , ds : CoreDatasource ):
91+ def update_ds (session : SessionDep , trans : Trans , user : CurrentUser , ds : CoreDatasource ):
9192 ds .id = int (ds .id )
92- check_name (session , user , ds )
93+ check_name (session , trans , user , ds )
9394 status = check_status (session , ds )
9495 ds .status = "Success" if status is True else "Fail"
9596 record = session .exec (select (CoreDatasource ).where (CoreDatasource .id == ds .id )).first ()
0 commit comments