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 new file mode 100644 index 0000000000000000000000000000000000000000..f3f29a59120b3e3c187a3d0e935e0bf0855b7f7e --- /dev/null +++ b/src/aashto/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/SwaggerGroundMotions.java @@ -0,0 +1,73 @@ +package gov.usgs.earthquake.nshmp.netcdf.www; + +import io.micronaut.http.HttpRequest; + +/** + * Swagger page updates for ground motion services. + * + * @author U.S. Geological Survey + */ +class SwaggerGroundMotions extends Swagger<NetcdfServiceGroundMotions> { + + SwaggerGroundMotions(HttpRequest<?> request, NetcdfServiceGroundMotions service) { + super(request, service); + } + + @Override + String descriptionHeader() { + return String.format("AASHTO-%d Data Sets", service.netcdfDataFiles().aashtoYear()); + } + + @Override + String serviceInfo() { + return String.format(String.join("", + "Get risk-targeted design response spectra for the %d ", + "editions of American Association of State Highway and Transportation ", + "Officials (AASHTO) bridge design specifications."), + service.netcdfDataFiles().aashtoYear()); + } + + @Override + String servicePatternSection() { + var url = NetcdfWsUtils.getRequestUrl(request); + url = url.endsWith("/swagger") ? url.replace("/swagger", "") : url; + + return new StringBuilder() + .append( + "<details>\n" + + "<summary>Service Call Patterns</summary>\n") + .append( + "### Query Pattern\n" + + + "The query based service call is in the form of:\n" + + + "```text\n" + + url + "/spectra?longitude={number}&latitude={number}\n" + + url + "/spectra?longitude={number}&latitude={number}&siteClass={string}\n" + + "````\n" + + + "Example:\n" + + "```text\n" + + url + "/spectra?longitude=-118&latitude=34\n" + + url + "/spectra?longitude=-118&latitude=34&siteClass=BC\n" + + "```\n") + .append( + "### Slash Pattern\n" + + + "The slash based service call is in the form of:\n" + + + "```text\n" + + url + "/spectra/{longitude}/{latitude}\n" + + url + "/spectra/{longitude}/{latitude}/{siteClass}\n" + + "```\n" + + + "Example:\n" + + + "```text\n" + + url + "/spectra/-118/34\n" + + url + "/spectra/-118/34/BC\n" + + "```\n") + .append("</details>") + .toString(); + } +}