Files
patch-service/routers/record.py
2026-09-09 18:42:37 +08:00

43 lines
1.4 KiB
Python

from fastapi import APIRouter, Depends, HTTPException
from sqlalchemy.orm import Session
from config.database import get_db
from schemas.patch import RecordResponse, RecordCreate, RecordUpdate
from service import record_service
router = APIRouter(prefix="/records", tags=["records"])
@router.post("", response_model=bool)
def create(data: RecordCreate, db: Session = Depends(get_db)):
return record_service.create_record(db, data)
@router.get("/{record_id}", response_model=RecordResponse)
def get_one(record_id: int, db: Session = Depends(get_db)):
record = record_service.get_record(db, record_id)
if not record:
raise HTTPException(404, "Record not found")
return record
@router.get("/crop/{crop_id}", response_model=list[RecordResponse])
def list_by_crop(crop_id: int, db: Session = Depends(get_db)):
return record_service.get_records_by_crop(db, crop_id)
@router.put("/{record_id}", response_model=bool)
def update(record_id: int, data: RecordUpdate, db: Session = Depends(get_db)):
record = record_service.update_record(db, record_id, data)
if not record:
raise HTTPException(404, "Record not found")
return record
@router.delete("/{record_id}", response_model=bool)
def delete(record_id: int, db: Session = Depends(get_db)):
record = record_service.delete_record(db, record_id)
if not record:
raise HTTPException(404, "Record not found")
return record