http_session_service.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. from sqlalchemy.orm import Session
  2. from app.models.http_session import HttpSession
  3. from app.schemas.http_session import HttpSessionCreate, HttpSessionUpdate
  4. from typing import Optional
  5. class HttpSessionService:
  6. @staticmethod
  7. def create(db: Session, data: HttpSessionCreate) -> HttpSession:
  8. obj = HttpSession(**data.dict())
  9. db.add(obj)
  10. db.commit()
  11. db.refresh(obj)
  12. return obj
  13. @staticmethod
  14. def get_by_sid(db: Session, session_id: str) -> Optional[HttpSession]:
  15. return db.query(HttpSession).filter(HttpSession.session_id == session_id).first()
  16. @staticmethod
  17. def delete_by_sid(db: Session, session_id: str) -> bool:
  18. obj = db.query(HttpSession).filter(HttpSession.session_id == session_id).first()
  19. if not obj:
  20. return False
  21. db.delete(obj)
  22. db.commit()
  23. return True
  24. @staticmethod
  25. def update_by_sid(db: Session, session_id: str, data: HttpSessionUpdate):
  26. obj = db.query(HttpSession).filter(HttpSession.session_id == session_id).first()
  27. if not obj:
  28. return None
  29. for k, v in data.dict().items():
  30. if v is not None:
  31. setattr(obj, k, v)
  32. db.commit()
  33. db.refresh(obj)
  34. return obj