37 lines
1.2 KiB
Python
37 lines
1.2 KiB
Python
from sqlalchemy.orm import Session
|
|
from . import models, schemas
|
|
|
|
def get_celebrity(db: Session, celebrity_id: int):
|
|
return db.query(models.Celebrity).filter(models.Celebrity.id == celebrity_id).first()
|
|
|
|
def get_celebrities(db: Session, skip: int = 0, limit: int = 100):
|
|
return db.query(models.Celebrity).offset(skip).limit(limit).all()
|
|
|
|
def create_celebrity(db: Session, celebrity: schemas.CelebrityCreate):
|
|
db_celebrity = models.Celebrity(**celebrity.model_dump())
|
|
db.add(db_celebrity)
|
|
db.commit()
|
|
db.refresh(db_celebrity)
|
|
return db_celebrity
|
|
|
|
def update_celebrity(db: Session, celebrity_id: int, celebrity_update: schemas.CelebrityUpdate):
|
|
db_celebrity = get_celebrity(db, celebrity_id)
|
|
if not db_celebrity:
|
|
return None
|
|
|
|
update_data = celebrity_update.model_dump(exclude_unset=True)
|
|
for key, value in update_data.items():
|
|
setattr(db_celebrity, key, value)
|
|
|
|
db.commit()
|
|
db.refresh(db_celebrity)
|
|
return db_celebrity
|
|
|
|
def delete_celebrity(db: Session, celebrity_id: int):
|
|
db_celebrity = get_celebrity(db, celebrity_id)
|
|
if not db_celebrity:
|
|
return None
|
|
|
|
db.delete(db_celebrity)
|
|
db.commit()
|
|
return db_celebrity |