package eu.dnetlib.validatorapi.processors; import eu.dnetlib.validator2.validation.guideline.openaire.AbstractOpenAireProfile; import eu.dnetlib.validatorapi.entities.SummaryResult; import eu.dnetlib.validatorapi.entities.ValidationJob; import eu.dnetlib.validatorapi.repositories.SummaryValidationJobRepository; import eu.dnetlib.validatorapi.repositories.ValidationJobRepository; import eu.dnetlib.validatorapi.repositories.ValidationResultRepository; import org.apache.camel.Exchange; import org.apache.camel.Processor; import java.util.Date; import java.util.List; public class SumUpNCleanProcessor implements Processor { private final ValidationJobRepository validationJobRepository; private final ValidationResultRepository validationResultRepository; private final SummaryValidationJobRepository summaryValidationJobRepository; private final AbstractOpenAireProfile profile; public SumUpNCleanProcessor(ValidationJobRepository validationJobRepository, ValidationResultRepository validationResultRepository, SummaryValidationJobRepository summaryValidationJobRepository, AbstractOpenAireProfile profile) { this.validationJobRepository = validationJobRepository; this.validationResultRepository = validationResultRepository; this.summaryValidationJobRepository = summaryValidationJobRepository; this.profile = profile; } @Override public void process(Exchange exchange) throws Exception { Thread stop=null; ValidationJob validationJob = new ValidationJob(); validationJob.id = (Integer)exchange.getIn().getHeader("validationId"); validationJob.baseUrl = (String)(exchange.getIn().getHeader("baseUrl")); validationJob.set = (String)(exchange.getIn().getHeader("set")); validationJob.startDate = (Date) exchange.getIn().getHeader("startDate"); validationJob.guidelines = (String) exchange.getIn().getHeader("guidelines"); validationJob.status = (String)exchange.getIn().getHeader("status"); validationJob.recordsTested = (Integer) exchange.getIn().getHeader("recordsTested"); validationJob.numberOfRecords = Math.toIntExact((Long) exchange.getIn().getHeader("maxNumberOfRecords")); validationJob.score = (Integer) exchange.getIn().getHeader("score"); validationJob.progress = "COMPLETED"; validationJob.endDate = new Date(); List summaryResults = validationResultRepository.getFullSummaryResult ((Integer) exchange.getIn().getHeader("validationId")); for(SummaryResult sr: summaryResults) { sr.validationJobId = validationJob.id; summaryValidationJobRepository.save(sr); } validationResultRepository.customDeleteByGuidelines(validationJob.id, profile.name()); validationJobRepository.save(validationJob); } }