43 lines
1.4 KiB
Python
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
|