argos/dmp-backend/core/src/main/java/eu/eudat/service/maintance/MaintenanceService.java

53 lines
1.7 KiB
Java

package eu.eudat.service.maintance;
import eu.eudat.commons.enums.IsActive;
import eu.eudat.data.DmpEntity;
import eu.eudat.query.DmpQuery;
import eu.eudat.service.dmp.DmpService;
import eu.eudat.service.elastic.ElasticService;
import gr.cite.tools.data.query.QueryFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.io.IOException;
import java.util.List;
@Service
public class MaintenanceService {
private static final Logger logger = LoggerFactory.getLogger(MaintenanceService.class);
private final QueryFactory queryFactory;
private final ElasticService elasticService;
@Autowired
public MaintenanceService(DmpService dmpService, QueryFactory queryFactory, ElasticService elasticService) {
this.queryFactory = queryFactory;
this.elasticService = elasticService;
}
public void generateElasticIndex() {
List<DmpEntity> dmpEntities = queryFactory.query(DmpQuery.class).isActive(IsActive.Active, IsActive.Inactive).collect();
dmpEntities.forEach(dmpEntity -> {
try {
elasticService.persistDmp(dmpEntity);
} catch (IOException e) {
logger.error(e.getMessage(), e);
}
});
}
public void clearElasticIndex() {
List<DmpEntity> dmpEntities = queryFactory.query(DmpQuery.class).isActive(IsActive.Active, IsActive.Inactive).collect();
dmpEntities.forEach(dmpEntity -> {
try {
elasticService.deleteDmp(dmpEntity);
} catch (IOException e) {
logger.error(e.getMessage(), e);
}
});
}
}