From bbda354fc305c408cf2964f59e9117b9db36e720 Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Thu, 21 Jul 2022 09:32:18 -0600 Subject: [PATCH] use swagger class to update open api --- .../nshmp/netcdf/www/SwaggerController.java | 65 +++---------------- 1 file changed, 10 insertions(+), 55 deletions(-) diff --git a/src/aashto/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/SwaggerController.java b/src/aashto/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/SwaggerController.java index 5bd776c..727142b 100644 --- a/src/aashto/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/SwaggerController.java +++ b/src/aashto/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/SwaggerController.java @@ -1,9 +1,8 @@ package gov.usgs.earthquake.nshmp.netcdf.www; -import java.io.IOException; import java.nio.file.Path; -import gov.usgs.earthquake.nshmp.netcdf.NetcdfGroundMotions; +import gov.usgs.earthquake.nshmp.netcdf.NetcdfDataFilesGroundMotions; import gov.usgs.earthquake.nshmp.www.NshmpMicronautServlet; import io.micronaut.context.annotation.Value; @@ -34,74 +33,30 @@ public class SwaggerController { @Inject private NshmpMicronautServlet servlet; - @Value("${nshmp-ws-static.netcdf-file}") + @Value("${nshmp-ws-static.netcdf-path}") Path netcdfPath; - NetcdfGroundMotions netcdf; + @Value("${nshmp-ws-static.aashto-year}") + int aashtoYear; + + NetcdfServiceGroundMotions service; /** * Read in data type and return the appropriate service to use. */ @EventListener void startup(StartupEvent event) { - netcdf = new NetcdfGroundMotions(netcdfPath); + var netcdfDataFiles = new NetcdfDataFilesGroundMotions(netcdfPath, aashtoYear); + service = new NetcdfServiceGroundMotions(netcdfDataFiles); } @Get(produces = MediaType.TEXT_EVENT_STREAM) public HttpResponse<String> doGet(HttpRequest<?> request) { try { - var openApi = NetcdfWsUtils.getOpenApi( - request, - netcdf.netcdfData(), - servicePatternSection(request)); - return HttpResponse.ok(Yaml.pretty(openApi)); + SwaggerGroundMotions swagger = new SwaggerGroundMotions(request, service); + return HttpResponse.ok(Yaml.pretty(swagger.updateOpenApi())); } catch (Exception e) { return NetcdfWsUtils.handleError(e, "Swagger", request.getUri().getPath()); } } - - private static String servicePatternSection(HttpRequest<?> request) - throws IOException { - 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(); - } - } -- GitLab