package controllers;
import org.elasticsearch.search.aggregations.AggregationBuilder;
import play.Configuration;
import play.Environment;
import play.mvc.Result;
import services.AggregationProvider;
import services.QueryContext;
import javax.inject.Inject;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author fo
*/
public class AggregationIndex extends OERWorldMap {
@Inject
public AggregationIndex(Configuration aConf, Environment aEnv) {
super(aConf, aEnv);
}
public Result list() throws IOException {
Map<String, Object> scope = new HashMap<>();
List<AggregationBuilder<?>> statisticsAggregations = new ArrayList<>();
statisticsAggregations.add(AggregationProvider.getTypeAggregation(0));
statisticsAggregations.add(AggregationProvider.getByCountryAggregation(5));
statisticsAggregations.add(AggregationProvider.getServiceLanguageAggregation(5));
statisticsAggregations.add(AggregationProvider.getServiceByTopLevelFieldOfEducationAggregation());
statisticsAggregations.add(AggregationProvider.getServiceByGradeLevelAggregation(0));
statisticsAggregations.add(AggregationProvider.getKeywordsAggregation(5));
statisticsAggregations.add(AggregationProvider.getLicenseAggregation(0));
statisticsAggregations.add(AggregationProvider.getProjectByLocationAggregation(0));
statisticsAggregations.add(AggregationProvider.getFunderAggregation(0));
scope.put("statistics", mBaseRepository.aggregate(statisticsAggregations, new QueryContext(null)));
scope.put("colors", Arrays.asList("#36648b", "#990000", "#ffc04c", "#3b7615", "#9c8dc7", "#bad1ad", "#663399",
"#009380", "#627e45", "#6676b0", "#5ab18d"));
return ok(render("Country Aggregations", "AggregationIndex/index.mustache", scope));
}
}