53 lines
1.7 KiB
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);
|
|
}
|
|
});
|
|
}
|
|
}
|