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,