PersistentLoginExpirationService.java

package com.seebie.server.service;

import com.seebie.server.repository.PersistentLoginRepository;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.time.Instant;

@Service
public class PersistentLoginExpirationService {

    private PersistentLoginRepository persistentLoginRepository;

    public PersistentLoginExpirationService(PersistentLoginRepository repo) {
        this.persistentLoginRepository = repo;
    }

    /**
     * Transactional method must be called from a separate class from the Scheduled method.
     */
    @Transactional
    public void deleteExpiredRememberMeTokens(Instant timedOut) {
        persistentLoginRepository.deleteByLastUsedBefore(timedOut);
    }
}