enh: channel notification

This commit is contained in:
Timothy Jaeryang Baek
2024-12-25 00:53:25 -07:00
parent 0d7d6899b9
commit d701b69e05
5 changed files with 126 additions and 30 deletions

View File

@@ -154,13 +154,25 @@ class UsersTable:
except Exception:
return None
def get_users(self, skip: int = 0, limit: int = 50) -> list[UserModel]:
def get_users(
self, skip: Optional[int] = None, limit: Optional[int] = None
) -> list[UserModel]:
with get_db() as db:
users = (
db.query(User)
# .offset(skip).limit(limit)
.all()
)
query = db.query(User).order_by(User.created_at.desc())
if skip:
query = query.offset(skip)
if limit:
query = query.limit(limit)
users = query.all()
return [UserModel.model_validate(user) for user in users]
def get_users_by_user_ids(self, user_ids: list[str]) -> list[UserModel]:
with get_db() as db:
users = db.query(User).filter(User.id.in_(user_ids)).all()
return [UserModel.model_validate(user) for user in users]
def get_num_users(self) -> Optional[int]:
@@ -179,11 +191,15 @@ class UsersTable:
try:
with get_db() as db:
user = db.query(User).filter_by(id=id).first()
return (
user.settings.get("ui", {})
.get("notifications", {})
.get("webhook_url", None)
)
if user.settings is None:
return None
else:
return (
user.settings.get("ui", {})
.get("notifications", {})
.get("webhook_url", None)
)
except Exception:
return None