product_service.py 1.0 KB

12345678910111213141516171819202122232425262728293031
  1. # app/services/product_service.py
  2. from sqlalchemy.orm import Session
  3. from typing import Optional, List
  4. from app.core.biz_exception import NotFoundError, PermissionDeniedError, BizLogicError
  5. from app.models.product import VasProduct
  6. from app.schemas.product import VasProductCreate, VasProductUpdate, VasProductOut
  7. class ProductService:
  8. def create(db: Session, data: VasProductCreate):
  9. rec = VasProduct(**data.dict())
  10. db.add(rec)
  11. db.commit()
  12. db.refresh(rec)
  13. return rec
  14. def get(db: Session, id:int):
  15. obj = db.query(VasProduct).filter_by(id=id).first()
  16. if not obj:
  17. raise NotFoundError('Product not exist')
  18. return obj
  19. def update(db: Session, id:int, data: VasProductUpdate):
  20. rec = db.query(VasProduct).filter_by(id=id).first()
  21. if not rec:
  22. raise NotFoundError('Product not exist')
  23. for k,v in data.dict(exclude_unset=True).items():
  24. setattr(rec,k,v)
  25. db.commit()
  26. db.refresh(rec)
  27. return rec