package io.github.ibuildthecloud.gdapi.request.handler;
import io.github.ibuildthecloud.gdapi.request.ApiRequest;
import io.github.ibuildthecloud.gdapi.util.RequestUtils;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
public class RequestOptionsParser extends AbstractApiRequestHandler {
private static final String DEFAULT_VALUE = "true";
List<String> options = new ArrayList<String>();
@Override
public void handle(ApiRequest request) throws IOException {
Map<String, String> requestOptions = request.getOptions();
Map<String, Object> input = RequestUtils.toMap(request.getRequestObject());
for (String option : getOptions()) {
if (input.containsKey(option)) {
Object value = RequestUtils.makeSingular(input.get(option));
String stringValue = DEFAULT_VALUE;
if (value != null && !StringUtils.isBlank(value.toString())) {
stringValue = value.toString();
}
requestOptions.put(option, stringValue);
}
}
}
public List<String> getOptions() {
return options;
}
public void setOptions(List<String> options) {
this.options = options;
}
}