Skip to content
Snippets Groups Projects
Commit a668a69f authored by Clayton, Brandon Scott's avatar Clayton, Brandon Scott
Browse files

add bounds to description

parent 962ee9ce
No related branches found
No related tags found
1 merge request!806AWS Lambda
package gov.usgs.earthquake.nshmp.www;
import java.math.BigDecimal;
import java.util.List;
import java.util.logging.Logger;
import org.slf4j.LoggerFactory;
import gov.usgs.earthquake.nshmp.geo.Location;
import gov.usgs.earthquake.nshmp.model.HazardModel;
import gov.usgs.earthquake.nshmp.www.source.FeaturesService;
......@@ -19,7 +16,6 @@ import io.swagger.v3.core.util.Yaml;
import io.swagger.v3.oas.annotations.Hidden;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.parameters.Parameter;
import io.swagger.v3.parser.OpenAPIV3Parser;
import jakarta.inject.Inject;
......@@ -54,7 +50,6 @@ public class SwaggerController {
private OpenAPI getOpenAPI(
HttpRequest<?> request,
HazardModel model) {
Logger log = Logger.getAnonymousLogger();
var openApi = new OpenAPIV3Parser().read("META-INF/swagger/nshmp-haz.yml");
var bounds = model.bounds();
var components = openApi.getComponents();
......@@ -67,39 +62,10 @@ public class SwaggerController {
openApi.getInfo().setTitle(model.name() + " Web Services");
openApi.getInfo().setDescription(
"National Seismic Hazard Model (NSHM) hazard calculations and queries for the " +
model.name() + " hazard model.");
model.name() + " hazard model.\n\n" +
String.format("Latitude bounds: [%s, %s]<br>", bounds.min.latitude, bounds.max.latitude) +
String.format("Longitude bounds: [%s, %s]", bounds.min.longitude, bounds.max.longitude));
return openApi;
}
public static OpenAPI addLocationBounds(OpenAPI openApi, Location min, Location max) {
openApi.getPaths().values().stream()
.flatMap(path -> path.readOperations().stream())
.forEach(operation -> addLocationBounds(operation.getParameters(), min, max));
return openApi;
}
public static List<Parameter> addLocationBounds(
List<Parameter> parameters,
Location min,
Location max) {
var latitudeDescription = String.format(" [%s, %s]", min.latitude, max.latitude);
var longtudeDescription = String.format(" [%s, %s]", min.longitude, max.longitude);
parameters.forEach(parameter -> {
if (parameter.getName().equals("latitude")) {
parameter.setDescription(parameter.getDescription() + latitudeDescription);
parameter.getSchema().setMinimum(BigDecimal.valueOf(min.latitude));
parameter.getSchema().setMaximum(BigDecimal.valueOf(max.latitude));
} else if (parameter.getName().equals("longitude")) {
parameter.setDescription(parameter.getDescription() + longtudeDescription);
parameter.getSchema().setMinimum(BigDecimal.valueOf(min.longitude));
parameter.getSchema().setMaximum(BigDecimal.valueOf(max.longitude));
}
});
return parameters;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment