first commit
This commit is contained in:
47
database.py
Normal file
47
database.py
Normal file
@@ -0,0 +1,47 @@
|
||||
from tortoise.contrib.fastapi import register_tortoise
|
||||
from models import PresetCode
|
||||
from schemas import PresetCodeCreate, PresetCodeResponse
|
||||
from typing import List, Optional
|
||||
|
||||
class DatabaseService:
|
||||
"""数据库操作服务类"""
|
||||
|
||||
@staticmethod
|
||||
def init_database(app, database_url: str):
|
||||
"""初始化数据库连接"""
|
||||
register_tortoise(
|
||||
app,
|
||||
db_url=database_url,
|
||||
modules={"models": ["models"]},
|
||||
generate_schemas=True,
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
async def get_all_codes() -> List[PresetCodeResponse]:
|
||||
"""获取所有预设代码"""
|
||||
codes = await PresetCode.all().order_by('-id')
|
||||
return [PresetCodeResponse.from_orm(code).dict() for code in codes]
|
||||
|
||||
@staticmethod
|
||||
async def get_code_by_query(query: str) -> Optional[PresetCodeResponse]:
|
||||
"""根据查询字符串获取特定代码"""
|
||||
code = await PresetCode.get_or_none(query=query)
|
||||
if not code:
|
||||
return None
|
||||
return PresetCodeResponse.from_orm(code).dict()
|
||||
|
||||
@staticmethod
|
||||
async def create_code(code_data: PresetCodeCreate) -> PresetCodeResponse:
|
||||
"""创建新的预设代码"""
|
||||
code = await PresetCode.create(**code_data.dict())
|
||||
return PresetCodeResponse.from_orm(code).dict()
|
||||
|
||||
@staticmethod
|
||||
async def delete_code(code_id: int) -> bool:
|
||||
"""删除指定 ID 的代码"""
|
||||
code = await PresetCode.get_or_none(id=code_id)
|
||||
if not code:
|
||||
return False
|
||||
|
||||
await code.delete()
|
||||
return True
|
||||
Reference in New Issue
Block a user