ExtractAutoDaemon.java

package fr.paris.lutece.plugins.identityexport.daemon;

import java.sql.Timestamp;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
import java.util.Optional;

import fr.paris.lutece.plugins.identityexport.business.ExportRequest;
import fr.paris.lutece.plugins.identityexport.business.ExtractRequestHome;
import fr.paris.lutece.plugins.identityexport.business.Profile;
import fr.paris.lutece.plugins.identityexport.business.ProfileHome;
import fr.paris.lutece.portal.service.daemon.Daemon;

public class ExtractAutoDaemon extends Daemon {

    @Override
    public void run() {
        List<Profile> lstIdProfilsList = ProfileHome.getProfilsListAutoExtract();
        for (final Profile profil : lstIdProfilsList) {
            final Integer interval = profil.getAutoExtractInterval();
            if (interval != null) {
                final Timestamp lastExtractDate = profil.getLastExtractDate();
                if (lastExtractDate != null) {
                    if (lastExtractDate.toLocalDateTime().plusHours(interval).isAfter(LocalDateTime.now())) {
                        continue;
                    }
                }
            }
            Optional<ExportRequest> extractStore = ExtractRequestHome.findByPrimaryKey(profil.getId());
            if (extractStore.isEmpty()) {
                ExportRequest extract = new ExportRequest();
                extract.setIdProfil(profil.getId());
                ExtractRequestHome.create(extract);
            }
        }

    }

}