Spaces:
Sleeping
Sleeping
# fastapi_crud/app/crud.py | |
from sqlalchemy.orm import Session | |
from . import models, schemas | |
from passlib.context import CryptContext | |
pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") | |
# User CRUD operations | |
def get_user(db: Session, user_id: int): | |
return db.query(models.User).filter(models.User.id == user_id).first() | |
def get_user_by_username(db: Session, username: str): | |
return db.query(models.User).filter(models.User.username == username).first() | |
def create_user(db: Session, user: schemas.UserCreate): | |
hashed_password = pwd_context.hash(user.password) | |
db_user = models.User(username=user.username, hashed_password=hashed_password) | |
db.add(db_user) | |
db.commit() | |
db.refresh(db_user) | |
return db_user | |
# Device CRUD operations | |
def get_device(db: Session, device_id: int): | |
return db.query(models.Device).filter(models.Device.id == device_id).first() | |
def get_devices(db: Session, skip: int = 0, limit: int = 10): | |
return db.query(models.Device).offset(skip).limit(limit).all() | |
def create_device(db: Session, device: schemas.DeviceCreate): | |
db_device = models.Device(**device.dict()) | |
db.add(db_device) | |
db.commit() | |
db.refresh(db_device) | |
return db_device | |
def update_device(db: Session, device_id: int, device: schemas.DeviceUpdate): | |
db_device = db.query(models.Device).filter(models.Device.id == device_id).first() | |
if db_device is None: | |
return None | |
for key, value in device.dict().items(): | |
setattr(db_device, key, value) | |
db.commit() | |
db.refresh(db_device) | |
return db_device | |
def delete_device(db: Session, device_id: int): | |
db_device = db.query(models.Device).filter(models.Device.id == device_id).first() | |
if db_device is None: | |
return None | |
db.delete(db_device) | |
db.commit() | |
return db_device | |
def set_device_active(db: Session, device_id: int, active: bool): | |
db_device = db.query(models.Device).filter(models.Device.id == device_id).first() | |
if db_device is None: | |
return None | |
db_device.active = active | |
db.commit() | |
db.refresh(db_device) | |
return db_device | |