From 641f45d1262c80f2205b72c2dbf1fdf141f3508e Mon Sep 17 00:00:00 2001 From: Seaswimmer Date: Sun, 2 Jun 2024 23:53:19 -0400 Subject: [PATCH] feat(aurora): add the from_sql_all classmethod to the Moderation model --- aurora/models/moderation.py | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/aurora/models/moderation.py b/aurora/models/moderation.py index 7018909..f990693 100644 --- a/aurora/models/moderation.py +++ b/aurora/models/moderation.py @@ -119,8 +119,7 @@ class Moderation(AuroraGuildModel): query = f"UPDATE moderation_{self.guild_id} SET timestamp = ?, moderation_type = ?, target_type = ?, moderator_id = ?, role_id = ?, duration = ?, end_timestamp = ?, reason = ?, resolved = ?, resolved_by = ?, resolve_reason = ?, expired = ?, changes = ?, metadata = ? WHERE moderation_id = ?;" with connect() as database: - cursor = database.cursor() - cursor.execute(query, ( + database.execute(query, ( self.timestamp.timestamp(), self.moderation_type, self.target_type, @@ -137,7 +136,6 @@ class Moderation(AuroraGuildModel): dumps(self.metadata), self.moderation_id, )) - cursor.close() logger.debug("Row updated in moderation_%s!\n%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s", self.moderation_id, @@ -219,6 +217,25 @@ class Moderation(AuroraGuildModel): raise ValueError(f"Case {moderation_id} not found in moderation_{guild_id}!") + @classmethod + def from_sql_all(cls, bot: Red, guild_id: int) -> List["Moderation"]: + from ..utilities.database import connect + query = f"SELECT * FROM moderation_{guild_id};" + + with connect() as database: + cursor = database.cursor() + cursor.execute(query) + results = cursor.fetchall() + cursor.close() + + if results: + cases = [] + for result in results: + cases.append(cls.from_result(bot, result, guild_id)) + return cases + + return [] + @classmethod def log( cls,