1from __future__ import annotations
2
3from plain.chores import Chore, register_chore
4from plain.runtime import settings
5from plain.utils import timezone
6
7from .models import NotFoundLog, RedirectLog
8
9
10@register_chore
11class DeleteLogs(Chore):
12 """Delete logs older than REDIRECTION_LOG_RETENTION_TIMEDELTA."""
13
14 def run(self) -> str:
15 cutoff = timezone.now() - settings.REDIRECTION_LOG_RETENTION_TIMEDELTA
16
17 result = RedirectLog.query.filter(created_at__lt=cutoff).delete()
18 output = f"{result[0]} redirect logs deleted"
19
20 result = NotFoundLog.query.filter(created_at__lt=cutoff).delete()
21 output += f", {result[0]} not found logs deleted"
22
23 return output