From 017072113e5b2673ed646e8e452057e93df928a1 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Wed, 2 Mar 2022 14:20:40 -0700
Subject: [PATCH] Add schema for swagger

---
 .../nshmp/netcdf/www/NetcdfService.java       | 35 ++++++++++++++-----
 1 file changed, 26 insertions(+), 9 deletions(-)

diff --git a/src/lib/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfService.java b/src/lib/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfService.java
index 4c55ecf..3ea88fa 100644
--- a/src/lib/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfService.java
+++ b/src/lib/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfService.java
@@ -187,10 +187,8 @@ public abstract class NetcdfService {
   }
 
   static class ResponseMetadata extends RequestDataSiteClass {
-    @Schema(description = "X label")
-    public final String xLabel;
-    @Schema(description = "Y label")
-    public final String yLabel;
+    public String xLabel;
+    public String yLabel;
 
     ResponseMetadata(
         String xLabel,
@@ -204,19 +202,26 @@ public abstract class NetcdfService {
   }
 
   static class ResponseData<T extends ResponseMetadata> {
-    @Schema(description = "Response metadata")
-    public final T metadata;
-    @Schema(description = "Data")
-    public final XySequence data;
+    final T metadata;
+    final XySequence data;
 
     ResponseData(T metadata, XySequence data) {
       this.metadata = metadata;
       this.data = data;
     }
+
+    public T getMetadata() {
+      return metadata;
+    }
+
+    @Schema(implementation = XySequenceSchema.class)
+    public XySequence getData() {
+      return data;
+    }
   }
 
   static class RequestData {
-    @Schema(description = "The latitude and longitude, in degrees")
+    @Schema(implementation = LocationSchema.class)
     public Location site;
 
     RequestData(Location site) {
@@ -233,4 +238,16 @@ public abstract class NetcdfService {
       this.siteClass = siteClass;
     }
   }
+
+  private static class LocationSchema {
+    public Double latitude;
+    public Double longitude;
+
+    LocationSchema() {}
+  }
+
+  private static class XySequenceSchema {
+    public double[] xs;
+    public double[] ys;
+  }
 }
-- 
GitLab