feat: 初始化工程
This commit is contained in:
11
routers/__init__.py
Normal file
11
routers/__init__.py
Normal file
@@ -0,0 +1,11 @@
|
||||
from .patch import router as patch_router
|
||||
from .crop import router as crop_router
|
||||
from .record import router as record_router
|
||||
from .file import router as file_router
|
||||
|
||||
routers = [
|
||||
patch_router,
|
||||
crop_router,
|
||||
record_router,
|
||||
file_router,
|
||||
]
|
||||
29
routers/crop.py
Normal file
29
routers/crop.py
Normal file
@@ -0,0 +1,29 @@
|
||||
from fastapi import APIRouter, Depends, HTTPException
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from config.database import get_db
|
||||
from schemas.patch import CropCreate, CropUpdate
|
||||
from service import crop_service
|
||||
|
||||
router = APIRouter(prefix="/crops", tags=["crops"])
|
||||
|
||||
|
||||
@router.post("", response_model=bool)
|
||||
def create(data: CropCreate, db: Session = Depends(get_db)):
|
||||
return crop_service.create_crop(db, data)
|
||||
|
||||
|
||||
@router.put("/{crop_id}", response_model=bool)
|
||||
def update(crop_id: int, data: CropUpdate, db: Session = Depends(get_db)):
|
||||
crop = crop_service.update_crop(db, crop_id, data)
|
||||
if not crop:
|
||||
raise HTTPException(404, "Crop not found")
|
||||
return crop
|
||||
|
||||
|
||||
@router.delete("/{crop_id}", response_model=bool)
|
||||
def delete(crop_id: int, db: Session = Depends(get_db)):
|
||||
crop = crop_service.delete_crop(db, crop_id)
|
||||
if not crop:
|
||||
raise HTTPException(404, "Crop not found")
|
||||
return crop
|
||||
9
routers/file.py
Normal file
9
routers/file.py
Normal file
@@ -0,0 +1,9 @@
|
||||
from fastapi import APIRouter, UploadFile, File
|
||||
from service import file_service
|
||||
|
||||
router = APIRouter(prefix="/file", tags=["文件"])
|
||||
|
||||
|
||||
@router.post("/upload", summary="上传文件", response_model=str)
|
||||
async def upload(file: UploadFile = File(..., description="要上传的文件")):
|
||||
return await file_service.upload_file(file)
|
||||
43
routers/patch.py
Normal file
43
routers/patch.py
Normal file
@@ -0,0 +1,43 @@
|
||||
from fastapi import APIRouter, Depends, HTTPException
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from config.database import get_db
|
||||
from schemas.patch import PatchResponse, PatchCreate, PatchUpdate
|
||||
from service import patch_service
|
||||
from service.patch_service import get_patch
|
||||
|
||||
router = APIRouter(prefix="/patches", tags=["patches"])
|
||||
|
||||
|
||||
@router.post("", response_model=bool)
|
||||
def create(data: PatchCreate, db: Session = Depends(get_db)):
|
||||
return patch_service.create_patch(db, data)
|
||||
|
||||
|
||||
@router.get("", response_model=list[PatchResponse])
|
||||
def list_all(db: Session = Depends(get_db)):
|
||||
return patch_service.get_patches(db)
|
||||
|
||||
|
||||
@router.get("/{patch_id}", response_model=PatchResponse)
|
||||
def get_one(patch_id: int, db: Session = Depends(get_db)):
|
||||
patch = get_patch(db, patch_id)
|
||||
if not patch:
|
||||
raise HTTPException(404, "Patch not found")
|
||||
return patch
|
||||
|
||||
|
||||
@router.put("/{patch_id}", response_model=bool)
|
||||
def update(patch_id: int, data: PatchUpdate, db: Session = Depends(get_db)):
|
||||
patch = patch_service.update_patch(db, patch_id, data)
|
||||
if not patch:
|
||||
raise HTTPException(404, "Patch not found")
|
||||
return patch
|
||||
|
||||
|
||||
@router.delete("/{patch_id}", response_model=bool)
|
||||
def delete(patch_id: int, db: Session = Depends(get_db)):
|
||||
patch = patch_service.delete_patch(db, patch_id)
|
||||
if not patch:
|
||||
raise HTTPException(404, "Patch not found")
|
||||
return patch
|
||||
42
routers/record.py
Normal file
42
routers/record.py
Normal file
@@ -0,0 +1,42 @@
|
||||
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
|
||||
Reference in New Issue
Block a user