mirror of
https://git.victorphan.net/basketballcantho/ten-project.git
synced 2026-08-05 13:23:10 +07:00
update chức năng gán file mp3 vào trang pdf
This commit is contained in:
@@ -18,7 +18,7 @@ from sqlalchemy.orm import Session
|
||||
from ..database import get_db
|
||||
from ..dependencies import get_current_user, require_role
|
||||
from ..models import PDF, PDFAudio, UserRole
|
||||
from ..schemas import AudioOut, AudioUploadResult
|
||||
from ..schemas import AudioOut, AudioPatch, AudioUploadResult
|
||||
|
||||
router = APIRouter(prefix="/pdfs", tags=["audio"])
|
||||
|
||||
@@ -138,6 +138,30 @@ async def upload_audio(
|
||||
return results
|
||||
|
||||
|
||||
# ── PATCH /api/pdfs/{pdf_id}/audio/{audio_id} ───────────────────────────────
|
||||
|
||||
@router.patch("/{pdf_id}/audio/{audio_id}", response_model=AudioOut)
|
||||
def patch_audio(
|
||||
pdf_id: int,
|
||||
audio_id: int,
|
||||
body: AudioPatch,
|
||||
current_user=Depends(require_role(UserRole.admin, UserRole.teacher)),
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
track = db.query(PDFAudio).filter(PDFAudio.id == audio_id, PDFAudio.pdf_id == pdf_id).first()
|
||||
if not track:
|
||||
raise HTTPException(status_code=404, detail="Audio track not found.")
|
||||
if body.track_name is not None:
|
||||
track.track_name = body.track_name
|
||||
if body.page_number is not None:
|
||||
track.page_number = body.page_number if body.page_number > 0 else None
|
||||
if body.sort_order is not None:
|
||||
track.sort_order = body.sort_order
|
||||
db.commit()
|
||||
db.refresh(track)
|
||||
return AudioOut.model_validate(track)
|
||||
|
||||
|
||||
# ── DELETE /api/pdfs/{pdf_id}/audio/{audio_id} ───────────────────────────────
|
||||
|
||||
@router.delete("/{pdf_id}/audio/{audio_id}", status_code=status.HTTP_204_NO_CONTENT)
|
||||
|
||||
Reference in New Issue
Block a user