package systems.archide.scanuploader; import java.io.File; import java.io.IOException; import java.sql.SQLException; import java.util.List; import org.apache.commons.io.FileUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import systems.archide.core.pojo.DigitalizationCreateRequest; import systems.archide.core.pojo.FileQueue; import systems.archide.core.repository.FileQueueRepository; import systems.archide.core.rest.client.ApplyRestClient; @Component public class SyncFile { @Autowired FileQueueRepository fileQueueRepository; @Scheduled(fixedDelay = 50000) public void syncDigitalizationFiles() throws IOException, SQLException { File source = new File(Cli.scanPath); for (File sourceEntry : source.listFiles()) { List digitalizationQueues = fileQueueRepository .findByFilename(sourceEntry.getName()); if (digitalizationQueues.isEmpty()) { DigitalizationCreateRequest digitalizationCreateRequest = new DigitalizationCreateRequest(); digitalizationCreateRequest.setFileName(sourceEntry.getName()); byte[] content = FileUtils.readFileToByteArray(sourceEntry); digitalizationCreateRequest.setContent(content); Long id = ApplyRestClient.createDigitalizationMtlb(null, digitalizationCreateRequest); if (id != null) { FileQueue localeFileQueue = new FileQueue(); localeFileQueue.setFilename(sourceEntry.getName()); fileQueueRepository.insert(localeFileQueue); } else throw new RuntimeException("Digitalization Mtlb creation failed !"); } } } }