diff --git a/src/aashto/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfServiceGroundMotions.java b/src/aashto/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfServiceGroundMotions.java index 78ae19612c0c6cadae5d531ee2224cd569a9ef53..3ac06ee66e8e4892f20c5a6af90c003e2d4ccff2 100644 --- a/src/aashto/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfServiceGroundMotions.java +++ b/src/aashto/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfServiceGroundMotions.java @@ -10,6 +10,7 @@ import gov.usgs.earthquake.nshmp.netcdf.NetcdfGroundMotions; import gov.usgs.earthquake.nshmp.netcdf.NetcdfVersion; import gov.usgs.earthquake.nshmp.netcdf.data.StaticData; import gov.usgs.earthquake.nshmp.netcdf.www.Metadata.ServiceResponseMetadata; +import gov.usgs.earthquake.nshmp.netcdf.www.NetcdfService.SourceModel; import gov.usgs.earthquake.nshmp.netcdf.www.NetcdfWsUtils.Key; import gov.usgs.earthquake.nshmp.netcdf.www.Query.Service; import gov.usgs.earthquake.nshmp.netcdf.www.Request.RequestData; @@ -27,7 +28,7 @@ import io.micronaut.http.HttpRequest; * * @author U.S. Geological Survey */ -public class NetcdfServiceGroundMotions extends NetcdfService<Query> { +public class NetcdfServiceGroundMotions extends NetcdfService<List<SourceModel>, Query> { static final String SERVICE_DESCRIPTION = "Get static ground motions from a NetCDF file"; static final String X_LABEL = "Period (s)"; @@ -38,10 +39,11 @@ public class NetcdfServiceGroundMotions extends NetcdfService<Query> { } @Override - ResponseBody<String, Metadata<Query>> getMetadataResponse(HttpRequest<?> request) { - var metadata = new Metadata<Query>(request, this, SERVICE_DESCRIPTION); + ResponseBody<String, Metadata<List<SourceModel>, Query>> getMetadataResponse( + HttpRequest<?> request) { + var metadata = new Metadata<List<SourceModel>, Query>(request, this, SERVICE_DESCRIPTION); - return ResponseBody.<String, Metadata<Query>> usage() + return ResponseBody.<String, Metadata<List<SourceModel>, Query>> usage() .metadata(new ResponseMetadata(NetcdfVersion.appVersions())) .name(getServiceName()) .request(NetcdfWsUtils.getRequestUrl(request)) @@ -50,6 +52,12 @@ public class NetcdfServiceGroundMotions extends NetcdfService<Query> { .build(); } + List<SourceModel> getSourceModels() { + return netcdfDataFiles().stream() + .map(SourceModel::new) + .collect(Collectors.toList()); + } + @Override String getServiceName() { return String.format("AASHTO-%d Web Services", netcdfDataFiles().aashtoYear()); diff --git a/src/aashto/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/SwaggerGroundMotions.java b/src/aashto/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/SwaggerGroundMotions.java index f3f29a59120b3e3c187a3d0e935e0bf0855b7f7e..ae1bf7db22fff06c624e1b46a8cacdfa0aa9db35 100644 --- a/src/aashto/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/SwaggerGroundMotions.java +++ b/src/aashto/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/SwaggerGroundMotions.java @@ -1,5 +1,7 @@ package gov.usgs.earthquake.nshmp.netcdf.www; +import gov.usgs.earthquake.nshmp.netcdf.data.ScienceBaseMetadata; + import io.micronaut.http.HttpRequest; /** @@ -13,6 +15,25 @@ class SwaggerGroundMotions extends Swagger<NetcdfServiceGroundMotions> { super(request, service); } + @Override + String description() { + StringBuilder builder = new StringBuilder() + .append(serviceInfo()) + .append("\n## " + descriptionHeader() + "\n"); + + service.netcdfDataFiles() + .forEach(netcdf -> { + ScienceBaseMetadata metadata = netcdf.netcdfData().scienceBaseMetadata(); + builder + .append("### " + metadata.label + "\n") + .append(metadata.description + "\n") + .append(parameterSection(netcdf.netcdfData()) + "\n") + .append(scienceBaseSection(metadata) + "\n"); + }); + + return builder.toString(); + } + @Override String descriptionHeader() { return String.format("AASHTO-%d Data Sets", service.netcdfDataFiles().aashtoYear());