Unify the way alerts and users are handled on the DB side

This commit is contained in:
2024-12-03 16:59:13 -08:00
parent 50f65abced
commit 9a36bb3f47
4 changed files with 39 additions and 22 deletions

View File

@@ -25,16 +25,19 @@ class AlertsController:
return Alert.from_str(alert)
return alert
async def add_user(self, user: int | User, alert: str | Alert) -> None:
user = self._user_to_obj(user)
async def get_users(self, alert: str | Alert) -> List[User]:
alert = self._alert_to_obj(alert)
await alert.get(self.table, consistent=True)
return alert.users
async def add_user(self, alert: str | Alert, user: int | User):
alert = self._alert_to_obj(alert)
user = self._user_to_obj(user)
await alert.add_user(self.table, user)
async def delete_user(self, user: int | User, alert: str | Alert):
user = self._user_to_obj(user)
async def remove_user(self, alert: str | Alert, user: int | User):
alert = self._alert_to_obj(alert)
user = self._user_to_obj(user)
await alert.remove_user(self.table, user)
async def get_users(self, alert: str | Alert, consistent: bool = False) -> List[User]:
alert = self._alert_to_obj(alert)
return await alert.get_users(self.table, consistent=consistent )

View File

@@ -60,3 +60,11 @@ class UsersController:
await user.get(self.table)
user.subscribed_alerts.append(alert)
await user.put(self.table)
async def remove_alert(self, user: int | User, alert: str | Alert) -> None:
user = self._user_to_obj(user)
alert = self._alert_to_obj(alert)
await user.get(self.table)
user.subscribed_alerts.remove(alert)
await user.put(self.table)