diff options
Diffstat (limited to 'storage/user_session.go')
-rw-r--r-- | storage/user_session.go | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/storage/user_session.go b/storage/user_session.go index ffb82fc..63e25e0 100644 --- a/storage/user_session.go +++ b/storage/user_session.go @@ -127,3 +127,17 @@ func (s *Storage) RemoveUserSessionByID(userID, sessionID int64) error { return nil } + +// CleanOldUserSessions removes user sessions older than 30 days. +func (s *Storage) CleanOldUserSessions() int64 { + query := `DELETE FROM user_sessions + WHERE id IN (SELECT id FROM user_sessions WHERE created_at < now() - interval '30 days')` + + result, err := s.db.Exec(query) + if err != nil { + return 0 + } + + n, _ := result.RowsAffected() + return n +} |