From 05fb0b76dc2140c6354271c01dc107192a20596e Mon Sep 17 00:00:00 2001
From: Peter Powers <pmpowers@usgs.gov>
Date: Fri, 2 Dec 2022 08:21:57 -0700
Subject: [PATCH] update for optional features

---
 .../usgs/earthquake/nshmp/www/source/FeaturesService.java  | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesService.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesService.java
index 3b3b1346..79546f5a 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesService.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesService.java
@@ -19,7 +19,6 @@ import gov.usgs.earthquake.nshmp.www.ResponseMetadata;
 import gov.usgs.earthquake.nshmp.www.ServletUtil;
 import gov.usgs.earthquake.nshmp.www.meta.Parameter;
 import gov.usgs.earthquake.nshmp.www.source.SourceService.SourceModel;
-
 import io.micronaut.http.HttpRequest;
 import io.micronaut.http.HttpResponse;
 import jakarta.inject.Singleton;
@@ -54,15 +53,17 @@ public class FeaturesService {
         : Models.features(ServletUtil.model(),
             Optional.of(SourceType.valueOf(requestData.featureType.name())));
 
+    // TODO check features.isEmpty() and redirect to error response
+
     if (requestData.raw) {
-      return HttpResponse.ok(features.toJson());
+      return HttpResponse.ok(features.orElseThrow().toJson());
     } else {
       var response = ResponseBody.success()
           .name(NAME)
           .url(url)
           .metadata(new ResponseMetadata(HazVersion.appVersions()))
           .request(requestData)
-          .response(features.toJsonTree())
+          .response(features.orElseThrow().toJsonTree())
           .build();
 
       return HttpResponse.ok(ServletUtil.GSON2.toJson(response));
-- 
GitLab