feat:更新练习题接口

This commit is contained in:
2026-07-30 13:07:26 +08:00
parent 50a27323cc
commit 9c9ac3ab1c
9 changed files with 83 additions and 266 deletions

25
main.py
View File

@@ -8,8 +8,8 @@ from starlette.responses import StreamingResponse
from database import get_db
from schemas.agent import QueryRequest
from schemas.library import LibraryFileRequest, LibraryFileResponse
from schemas.mistake import MistakeResponse
from schemas.practice import PracticeQuestionResponse, PracticeCheckResult, PracticeRecordResponse
from schemas.mistake import MistakeResponse, MistakeRequest
from schemas.practice import PracticeRecordResponse, PracticeRecordRequest
from service import library_service, practice_service, mistake_service
from service.agent_service import query_agent
from storage import upload_rustfs
@@ -60,21 +60,26 @@ async def edit_file(id: int, data: LibraryFileRequest, db: AsyncSession = Depend
return await library_service.edit_file(db, id, data)
@app.get("/practice/files/{id}", response_model=List[PracticeQuestionResponse])
async def get_question(id: int, db: AsyncSession = Depends(get_db)):
return await practice_service.get_question(db, id)
@app.get("/practice/record/{id}", response_model=List[PracticeRecordResponse])
async def get_record(id: int, db: AsyncSession = Depends(get_db)):
return await practice_service.get_record(db, id)
@app.post("/practice/check/{id}", response_model=List[PracticeCheckResult])
async def check_practice(id: int, data: List[PracticeQuestionResponse], db: AsyncSession = Depends(get_db)):
return await practice_service.check_practice(db, id, data)
@app.post("/practice/record", response_model=bool)
async def add_record(data: PracticeRecordRequest, db: AsyncSession = Depends(get_db)):
return await practice_service.add_record(db, data)
@app.get("/mistake", response_model=List[MistakeResponse])
async def list_mistakes(db: AsyncSession = Depends(get_db)):
return await mistake_service.list_mistakes(db)
@app.post("/mistake", response_model=bool)
async def list_mistakes(data: list[MistakeRequest], db: AsyncSession = Depends(get_db)):
return await mistake_service.add_mistakes(db, data)
@app.delete("/mistake/{id}", response_model=bool)
async def remove_mistake(id: int, db: AsyncSession = Depends(get_db)):
return await mistake_service.remove_mistake(db, id)