app_register.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. from app.models.public_api_model import AppRegisterModel
  2. from Log import logger
  3. from app.models import current_time
  4. from sqlalchemy.orm import Session
  5. from typing import Type
  6. class AppRegisterDao:
  7. def __init__(self, db: Session):
  8. self.db = db
  9. def get_app_by_id(self, api_id: str) -> Type[AppRegisterModel] | None:
  10. session = self.db.query(AppRegisterModel).filter_by(id=api_id).first()
  11. return session
  12. def update_app(self, app_id: str, status: int):
  13. logger.error("更新数据: app register---------------------------")
  14. try:
  15. self.db.query(AppRegisterModel).filter(AppRegisterModel.id==app_id).update({"status":status, "updated_at": current_time()})
  16. self.db.commit()
  17. except Exception as e:
  18. logger.error(e)
  19. self.db.rollback()
  20. raise Exception("更新失败!")
  21. def insert_app(self, app_id: str, status: int):
  22. logger.error("新增数据: app register---------------------------")
  23. new_session = AppRegisterModel(
  24. id=app_id,
  25. status=status
  26. )
  27. self.db.add(new_session)
  28. self.db.commit()
  29. self.db.refresh(new_session)
  30. return new_session
  31. def update_and_insert_app(self, app_id: str, status: int):
  32. logger.error("更新或者添加数据: app register---------------------------")
  33. token_boj = self.get_app_by_id(app_id)
  34. if token_boj:
  35. self.update_app(app_id, status)
  36. else:
  37. self.insert_app(app_id, status)
  38. def get_apps(self):
  39. app_list = self.db.query(AppRegisterModel).filter_by(status=1).all()
  40. return [i.to_dict() for i in app_list]