backend/buisnesslogic/src/main/java/com/plannaplan/services/ConfiguratorService.java

68 lines
1.9 KiB
Java
Raw Normal View History

package com.plannaplan.services;
import com.plannaplan.models.ConfigData;
2020-08-04 17:30:03 +02:00
import com.plannaplan.models.FileData;
2020-12-11 18:08:23 +01:00
import com.plannaplan.repositories.AppConfigRepository;
2020-08-04 17:30:03 +02:00
import org.springframework.beans.factory.annotation.Autowired;
2020-12-11 18:08:23 +01:00
import org.springframework.data.domain.Sort;
2020-08-04 17:30:03 +02:00
import org.springframework.stereotype.Component;
2020-12-11 18:08:23 +01:00
import java.security.DrbgParameters.Reseed;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collector;
import java.util.stream.Collectors;
2020-08-04 17:30:03 +02:00
import com.plannaplan.configutils.*;
2020-12-09 16:43:29 +01:00
import com.plannaplan.entities.AppConfig;
2020-08-04 17:30:03 +02:00
2020-11-20 13:20:44 +01:00
/**
2020-12-09 16:43:29 +01:00
* FileReader is used for reading xls file from input stream.
2020-11-20 13:20:44 +01:00
*/
2020-08-04 17:30:03 +02:00
@Component
public class ConfiguratorService {
2020-08-04 17:30:03 +02:00
@Autowired
2020-09-25 16:43:24 +02:00
private FileToDatabaseMigrator migrator;
2020-12-09 16:43:29 +01:00
@Autowired
2020-12-11 18:08:23 +01:00
private AppConfigRepository configRepo;
2020-08-06 14:32:41 +02:00
public ConfiguratorService() {
}
2020-12-09 16:43:29 +01:00
/**
* methoid to config system
*
* @param data ConfigData containng system congis
*/
public void config(ConfigData data) {
2020-08-04 17:30:03 +02:00
FileReader reader = new FileReader(data.getFilestream());
FileData coursesData = reader.read();
2020-12-11 18:08:23 +01:00
this.configRepo.save(new AppConfig(data.getFirstTour(), data.getSecondTour()));
migrator.migrate(coursesData);
}
2020-12-11 18:08:23 +01:00
/**
* current config getter
*
* @return AppConfig with newest config_date
*/
public AppConfig getCurrentConfig() {
final List<AppConfig> repsonse = this.configRepo.findAll().stream().sorted(new Comparator<AppConfig>() {
@Override
public int compare(AppConfig i1, AppConfig i2) {
if (i1.getConfigDate().after(i2.getConfigDate())) {
return -1;
}
if (i1.getConfigDate().before(i2.getConfigDate())) {
return 1;
}
return 0;
}
}).collect(Collectors.toList());
return repsonse.get(0);
}
}