Skip to content

Commit 8d58ec6

Browse files
committed
feat: datasource api
1 parent 0d2d383 commit 8d58ec6

File tree

9 files changed

+33
-0
lines changed

9 files changed

+33
-0
lines changed

backend/apps/api.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,13 @@
22

33
from apps.system.api import login, user
44
from apps.settings.api import terminology
5+
from apps.datasource.api import datasource
6+
57

68
api_router = APIRouter()
79
api_router.include_router(login.router)
810
api_router.include_router(user.router)
911
api_router.include_router(terminology.router)
12+
api_router.include_router(datasource.router)
1013

1114

backend/apps/datasource/__init__.py

Whitespace-only changes.

backend/apps/datasource/api/__init__.py

Whitespace-only changes.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
from fastapi import APIRouter, HTTPException
2+
from ..crud.datasource import get_datasource_list
3+
from common.core.deps import SessionDep
4+
5+
router = APIRouter(tags=["datasource"], prefix="/datasource")
6+
7+
@router.get("/list")
8+
def datasource_list(session: SessionDep):
9+
return get_datasource_list(session=session)

backend/apps/datasource/crud/__init__.py

Whitespace-only changes.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
from sqlmodel import Session, select
2+
from ..models.datasource import core_datasource
3+
4+
def get_datasource_list(session: Session) -> core_datasource | None:
5+
statement = select(core_datasource)
6+
datasource_list = session.exec(statement).fetchall()
7+
return datasource_list

backend/apps/datasource/models/__init__.py

Whitespace-only changes.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
from sqlmodel import SQLModel, Field
2+
from sqlalchemy import Column, Text, BigInteger, DateTime, Integer, Identity
3+
from datetime import datetime
4+
5+
class core_datasource(SQLModel, table=True):
6+
id: int = Field(sa_column=Column(Integer, Identity(always=True), nullable=False, primary_key=True))
7+
name: str = Field(max_length=128, nullable=False)
8+
description: str = Field(max_length=512, nullable=True)
9+
type: str = Field(max_length=64)
10+
configuration: str = Field(sa_column=Column(Text))
11+
create_time: datetime = Field(sa_column=Column(DateTime(timezone=True), nullable=True))
12+
create_by: int = Field(sa_column=Column(BigInteger()))
13+
status: str = Field(max_length=64, nullable=True)

backend/pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ dependencies = [
1818
"pydantic-settings<3.0.0,>=2.2.1",
1919
"sentry-sdk[fastapi]<2.0.0,>=1.40.6",
2020
"pyjwt<3.0.0,>=2.8.0",
21+
"pyodbc (>=5.2.0,<5.2.1)",
2122
]
2223
[[tool.uv.index]]
2324
url = "https://pypi.tuna.tsinghua.edu.cn/simple"

0 commit comments

Comments
 (0)