mirror of
https://gh-proxy.org/https://github.com/klinsmaya/SQLBot.git
synced 2026-11-08 01:06:59 +08:00
feat: datasource i18n
This commit is contained in:
@@ -7,7 +7,7 @@ import pandas as pd
|
||||
from fastapi import APIRouter, File, UploadFile, HTTPException
|
||||
|
||||
from apps.db.engine import create_table, get_data_engine, insert_data
|
||||
from common.core.deps import SessionDep, CurrentUser
|
||||
from common.core.deps import SessionDep, CurrentUser, Trans
|
||||
from ..crud.datasource import get_datasource_list, check_status, create_ds, update_ds, delete_ds, getTables, getFields, \
|
||||
execSql, update_table_and_fields, getTablesByDs, chooseTables, preview, updateTable, updateField, get_ds, fieldEnum
|
||||
from ..crud.field import get_fields_by_table_id
|
||||
@@ -34,8 +34,8 @@ async def check(session: SessionDep, ds: CoreDatasource):
|
||||
|
||||
|
||||
@router.post("/add", response_model=CoreDatasource)
|
||||
async def add(session: SessionDep, user: CurrentUser, ds: CreateDatasource):
|
||||
return create_ds(session, user, ds)
|
||||
async def add(session: SessionDep, trans: Trans, user: CurrentUser, ds: CreateDatasource):
|
||||
return create_ds(session, trans, user, ds)
|
||||
|
||||
|
||||
@router.post("/chooseTables/{id}")
|
||||
@@ -44,8 +44,8 @@ async def choose_tables(session: SessionDep, id: int, tables: List[CoreTable]):
|
||||
|
||||
|
||||
@router.post("/update", response_model=CoreDatasource)
|
||||
async def update(session: SessionDep,user: CurrentUser, ds: CoreDatasource):
|
||||
return update_ds(session,user, ds)
|
||||
async def update(session: SessionDep, trans: Trans, user: CurrentUser, ds: CoreDatasource):
|
||||
return update_ds(session, trans, user, ds)
|
||||
|
||||
|
||||
@router.post("/delete/{id}", response_model=CoreDatasource)
|
||||
|
||||
@@ -2,6 +2,7 @@ import datetime
|
||||
import json
|
||||
from typing import List
|
||||
|
||||
from fastapi import HTTPException
|
||||
from sqlalchemy import and_, text, cast
|
||||
from sqlalchemy.dialects.postgresql import JSONB
|
||||
from sqlbot_xpack.permissions.models.ds_permission import DsPermission
|
||||
@@ -13,7 +14,7 @@ from apps.db.constant import DB
|
||||
from apps.db.db import get_engine, get_tables, get_fields, exec_sql
|
||||
from apps.db.engine import get_engine_config, get_engine_conn
|
||||
from apps.db.type import db_type_relation
|
||||
from common.core.deps import SessionDep, CurrentUser
|
||||
from common.core.deps import SessionDep, CurrentUser, Trans
|
||||
from common.utils.utils import deepcopy_ignore_extra
|
||||
from .table import get_tables_by_ds_id
|
||||
from ..crud.field import delete_field_by_ds_id, update_field
|
||||
@@ -45,23 +46,23 @@ def check_status(session: SessionDep, ds: CoreDatasource):
|
||||
return False
|
||||
|
||||
|
||||
def check_name(session: SessionDep, user: CurrentUser, ds: CoreDatasource):
|
||||
def check_name(session: SessionDep, trans: Trans, user: CurrentUser, ds: CoreDatasource):
|
||||
if ds.id is not None:
|
||||
ds_list = session.query(CoreDatasource).filter(
|
||||
and_(CoreDatasource.name == ds.name, CoreDatasource.id != ds.id, CoreDatasource.oid == user.oid)).all()
|
||||
if ds_list is not None and len(ds_list) > 0:
|
||||
raise 'Name exist'
|
||||
raise HTTPException(status_code=500, detail=trans('i18n_ds_name_exist'))
|
||||
else:
|
||||
ds_list = session.query(CoreDatasource).filter(
|
||||
and_(CoreDatasource.name == ds.name, CoreDatasource.oid == user.oid)).all()
|
||||
if ds_list is not None and len(ds_list) > 0:
|
||||
raise 'Name exist'
|
||||
raise HTTPException(status_code=500, detail=trans('i18n_ds_name_exist'))
|
||||
|
||||
|
||||
def create_ds(session: SessionDep, user: CurrentUser, create_ds: CreateDatasource):
|
||||
def create_ds(session: SessionDep, trans: Trans, user: CurrentUser, create_ds: CreateDatasource):
|
||||
ds = CoreDatasource()
|
||||
deepcopy_ignore_extra(create_ds, ds)
|
||||
check_name(session, user, ds)
|
||||
check_name(session, trans, user, ds)
|
||||
ds.create_time = datetime.datetime.now()
|
||||
# status = check_status(session, ds)
|
||||
ds.create_by = user.id
|
||||
@@ -87,9 +88,9 @@ def chooseTables(session: SessionDep, id: int, tables: List[CoreTable]):
|
||||
updateNum(session, ds)
|
||||
|
||||
|
||||
def update_ds(session: SessionDep, user: CurrentUser, ds: CoreDatasource):
|
||||
def update_ds(session: SessionDep, trans: Trans, user: CurrentUser, ds: CoreDatasource):
|
||||
ds.id = int(ds.id)
|
||||
check_name(session, user, ds)
|
||||
check_name(session, trans, user, ds)
|
||||
status = check_status(session, ds)
|
||||
ds.status = "Success" if status is True else "Fail"
|
||||
record = session.exec(select(CoreDatasource).where(CoreDatasource.id == ds.id)).first()
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"i18n_default_workspace": "Default workspace"
|
||||
"i18n_default_workspace": "Default workspace",
|
||||
"i18n_ds_name_exist": "Name exist"
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
{
|
||||
"i18n_default_workspace": "默认工作空间"
|
||||
"i18n_default_workspace": "默认工作空间",
|
||||
"i18n_ds_name_exist": "名称已存在"
|
||||
}
|
||||
Reference in New Issue
Block a user