diff --git a/cron.py b/cron.py index a1fb457c..3a33a27e 100644 --- a/cron.py +++ b/cron.py @@ -45,6 +45,8 @@ from app.models import ( Contact, CoinbaseSubscription, Metric, + TransactionalEmail, + Bounce, ) from server import create_app @@ -60,6 +62,22 @@ def notify_trial_end(): send_trial_end_soon_email(user) +def delete_logs(): + """delete everything that are considered logs""" + delete_refused_emails() + delete_old_monitoring() + + for t in TransactionalEmail.query.filter( + TransactionalEmail.created_at < arrow.now().shift(days=-7) + ): + TransactionalEmail.delete(t.id) + + for b in Bounce.query.filter(Bounce.created_at < arrow.now().shift(days=-7)): + Bounce.delete(b.id) + + db.session.commit() + + def delete_refused_emails(): for refused_email in RefusedEmail.query.filter_by(deleted=False).all(): if arrow.now().shift(days=1) > refused_email.delete_at >= arrow.now(): @@ -671,7 +689,7 @@ if __name__ == "__main__": "notify_trial_end", "notify_manual_subscription_end", "notify_premium_end", - "delete_refused_emails", + "delete_logs", "poll_apple_subscription", "sanity_check", "delete_old_monitoring", @@ -695,9 +713,9 @@ if __name__ == "__main__": elif args.job == "notify_premium_end": LOG.d("Notify users with premium ending soon") notify_premium_end() - elif args.job == "delete_refused_emails": - LOG.d("Deleted refused emails") - delete_refused_emails() + elif args.job == "delete_logs": + LOG.d("Deleted Logs") + delete_logs() elif args.job == "poll_apple_subscription": LOG.d("Poll Apple Subscriptions") poll_apple_subscription() diff --git a/crontab.yml b/crontab.yml index b5f6eb54..ee66306b 100644 --- a/crontab.yml +++ b/crontab.yml @@ -23,8 +23,8 @@ jobs: schedule: "0 10 * * *" captureStderr: true - - name: SimpleLogin Delete Refused Emails - command: python /code/cron.py -j delete_refused_emails + - name: SimpleLogin Delete Logs + command: python /code/cron.py -j delete_logs shell: /bin/bash schedule: "0 11 * * *" captureStderr: true