Added Historic & Start_Year parameters handling on REST interface

This commit is contained in:
Fabio Sinibaldi 2020-01-27 15:46:48 +01:00
parent d030d93020
commit d3cfc4cd03
3 changed files with 14 additions and 7 deletions

View File

@ -39,6 +39,9 @@ public interface ServiceConstants {
public static final String BATCH_TYPE_PARAMETER="batch_type";
public static final String PERIOD_PARAMETER="period";
public static final String HISTORIC="historic";
public static final String START_YEAR="start_year";
public static final String STATISTICS_PATH="statistics";
}

View File

@ -1,18 +1,14 @@
package org.gcube.application.perform.service.rest;
import java.util.Collections;
import java.util.ArrayList;
import java.util.List;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.Response;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class InterfaceCommons {
private static final Logger log= LoggerFactory.getLogger(InterfaceCommons.class);
public static final void checkMandatory(Object toCheck, String name) throws WebApplicationException{
if(toCheck==null)
@ -20,10 +16,15 @@ public class InterfaceCommons {
}
public static final List<String> getParameter(MultivaluedMap<String,String> map,String paramName, boolean mandatory){
// log.debug()
if(map.containsKey(paramName)) {
return map.get(paramName);
}else if(mandatory) throw new WebApplicationException(String.format("Parameter %1$s is mandatory",paramName),Response.Status.BAD_REQUEST);
return Collections.emptyList();
return new ArrayList<String>();
}
public static final String getParamOrDefault(MultivaluedMap<String,String> map,String paramName, String defaultValue) {
List<String> found=getParameter(map,paramName,false);
if(found.isEmpty()) return defaultValue;
else return found.get(0);
}
}

View File

@ -69,6 +69,9 @@ public class Performance {
request.addSpecies(InterfaceCommons.getParameter(parameters, ServiceConstants.Performance.SPECIES_ID_PARAMETER, false));
request.addPeriods(InterfaceCommons.getParameter(parameters, ServiceConstants.Performance.PERIOD_PARAMETER, false));
request.setIncludeHistoric(Boolean.valueOf(InterfaceCommons.getParamOrDefault(parameters, ServiceConstants.Performance.HISTORIC, "true")));
request.setStartYear(Integer.valueOf(InterfaceCommons.getParamOrDefault(parameters, ServiceConstants.Performance.START_YEAR, "1900")));
log.debug("Export request : {} ",request);