Files
family-service/routers/record.py
2026-09-08 22:49:44 +08:00

47 lines
1.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from fastapi import APIRouter, Depends, HTTPException, Query
from sqlalchemy.orm import Session
from typing import List
from config.database import get_db
from schemas.record import RecordCreate, RecordUpdate, RecordResponse, RecordPageResponse
from service import record_service
router = APIRouter(prefix="/records", tags=["记录"])
@router.post("", response_model=bool, summary="发布记录")
def create(record_in: RecordCreate, db: Session = Depends(get_db)):
return record_service.create_record(db, record_in)
@router.get("", response_model=List[RecordResponse], summary="获取所有记录")
def list_all(skip: int = 0, limit: int = 20, db: Session = Depends(get_db)):
return record_service.get_all_records(db, skip, limit)
@router.get("/page", response_model=RecordPageResponse, summary="分页获取所有记录")
def list_all_by_page(
page: int = Query(1, ge=1, description="页码从1开始"),
size: int = Query(20, ge=1, le=100, description="每页条数最大100"),
db: Session = Depends(get_db),
):
return record_service.get_all_records_by_page(db, page, size)
@router.get("/{record_id}", response_model=RecordResponse, summary="获取记录详情")
def get(record_id: int, db: Session = Depends(get_db)):
record = record_service.get_record_by_id(db, record_id)
if not record:
raise HTTPException(status_code=404, detail="记录不存在")
return record
@router.put("/{record_id}", response_model=bool, summary="更新记录")
def update(record_id: int, record_in: RecordUpdate, db: Session = Depends(get_db)):
return record_service.update_record(db, record_id, record_in)
@router.delete("/{record_id}", summary="删除记录")
def delete(record_id: int, db: Session = Depends(get_db)):
return record_service.delete_record(db, record_id)