Coverage for rfpy/jobs/dbcleanup.py: 0%
9 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-24 10:52 +0000
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-24 10:52 +0000
1import logging
2from datetime import datetime, timezone
3from sqlalchemy import or_
4from rfpy.model.humans import RefreshToken
6log = logging.getLogger(__name__)
8def cleanup_expired_tokens(session):
9 """Remove expired and revoked refresh tokens from the database"""
10 result = session.query(RefreshToken).filter(
11 or_(
12 RefreshToken.expires_at < datetime.now(timezone.utc),
13 RefreshToken.revoked == True # noqa: E712
14 )
15 ).delete(synchronize_session=False)
17 session.commit()
18 log.info(f"Cleaned up {result} expired or revoked refresh tokens")