Spaces:
Sleeping
Sleeping
File size: 2,832 Bytes
dc65e63 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# fastapi_crud/app/routers/device.py
from fastapi import APIRouter, Depends, HTTPException
from sqlalchemy.orm import Session
from typing import List
from app import crud, schemas, database, auth
router = APIRouter()
@router.post("/devices/", response_model=schemas.Device)
def create_device(device: schemas.DeviceCreate, db: Session = Depends(database.get_db), current_user: schemas.User = Depends(auth.get_current_user)):
return crud.create_device(db=db, device=device)
@router.get("/devices/", response_model=List[schemas.Device])
def read_devices(skip: int = 0, limit: int = 10, db: Session = Depends(database.get_db), current_user: schemas.User = Depends(auth.get_current_user)):
devices = crud.get_devices(db, skip=skip, limit=limit)
return devices
@router.get("/devices/{device_id}", response_model=schemas.Device)
def read_device(device_id: int, db: Session = Depends(database.get_db), current_user: schemas.User = Depends(auth.get_current_user)):
db_device = crud.get_device(db, device_id=device_id)
if db_device is None:
raise HTTPException(status_code=404, detail="Device not found")
return db_device
@router.post("/devices/{device_id}/update", response_model=schemas.Device)
def update_device(device_id: int, device: schemas.DeviceUpdate, db: Session = Depends(database.get_db), current_user: schemas.User = Depends(auth.get_current_user)):
db_device = crud.update_device(db, device_id=device_id, device=device)
if db_device is None:
raise HTTPException(status_code=404, detail="Device not found")
return db_device
@router.delete("/devices/{device_id}", response_model=schemas.Device)
def delete_device(device_id: int, db: Session = Depends(database.get_db), current_user: schemas.User = Depends(auth.get_current_user)):
db_device = crud.delete_device(db, device_id=device_id)
if db_device is None:
raise HTTPException(status_code=404, detail="Device not found")
return db_device
@router.post("/devices/{device_id}/on", response_model=schemas.Device)
def set_device_on(device_id: int, db: Session = Depends(database.get_db), current_user: schemas.User = Depends(auth.get_current_user)):
db_device = crud.set_device_active(db, device_id=device_id, active=True)
if db_device is None:
raise HTTPException(status_code=404, detail="Device not found")
return db_device
@router.post("/devices/{device_id}/off", response_model=schemas.Device)
def set_device_off(device_id: int, db: Session = Depends(database.get_db), current_user: schemas.User = Depends(auth.get_current_user)):
db_device = crud.set_device_active(db, device_id=device_id, active=False)
if db_device is None:
raise HTTPException(status_code=404, detail="Device not found")
return db_device
|