Skip to content
Snippets Groups Projects
Commit ea61c10e authored by Powers, Peter M.'s avatar Powers, Peter M.
Browse files

source service edits

parent 578d18ff
No related branches found
No related tags found
2 merge requests!644Production Release | nshmp-haz,!640Service updates
......@@ -36,7 +36,6 @@ import gov.usgs.earthquake.nshmp.www.ServletUtil.Server;
import gov.usgs.earthquake.nshmp.www.hazard.HazardService.HazardRequest;
import gov.usgs.earthquake.nshmp.www.hazard.HazardService.Metadata;
import gov.usgs.earthquake.nshmp.www.meta.Parameter;
import io.micronaut.http.HttpRequest;
import io.micronaut.http.HttpResponse;
import jakarta.inject.Singleton;
......@@ -60,6 +59,7 @@ public final class DisaggService {
static final String NAME = "Disaggregation Service";
static final Logger LOG = LoggerFactory.getLogger(DisaggService.class);
// TODO range check return periods and imls
private static Range<Double> rpRange = Range.closed(1.0, 20000.0);
private static Range<Double> imlRange = Range.closed(0.0001, 8.0);
......@@ -70,7 +70,6 @@ public final class DisaggService {
DISAGG_DATA;
}
/** HazardController.doGetMetadata() handler. */
static HttpResponse<String> getMetadata(HttpRequest<?> request) {
var url = request.getUri().toString();
var usage = new Metadata(ServletUtil.model());
......@@ -85,7 +84,6 @@ public final class DisaggService {
return HttpResponse.ok(svcResponse);
}
/** HazardController.doGetDisaggIml() handler. */
static HttpResponse<String> getDisaggIml(RequestIml request)
throws InterruptedException, ExecutionException {
var stopwatch = Stopwatch.createStarted();
......@@ -106,7 +104,6 @@ public final class DisaggService {
return HttpResponse.ok(svcResponse);
}
/** HazardController.doGetDisaggRp() handler. */
static HttpResponse<String> getDisaggRp(RequestRp request)
throws InterruptedException, ExecutionException {
var stopwatch = Stopwatch.createStarted();
......@@ -132,7 +129,6 @@ public final class DisaggService {
*
* If disaggIml, we need to do the calculation for single XySeqs if disaggRp,
* we don't know the imls so must compute hazard over the full curve
*
*/
private static Disaggregation calcDisaggIml(RequestIml request)
......
......@@ -60,7 +60,6 @@ public final class HazardService {
private static final String TOTAL_KEY = "Total";
/** HazardController.doGetUsage() handler. */
public static HttpResponse<String> getMetadata(HttpRequest<?> request) {
var url = request.getUri().toString();
var usage = new Metadata(ServletUtil.model());
......@@ -75,7 +74,6 @@ public final class HazardService {
return HttpResponse.ok(json);
}
/** HazardController.doGetHazard() handler. */
public static HttpResponse<String> getHazard(Request request)
throws InterruptedException, ExecutionException {
var stopwatch = Stopwatch.createStarted();
......@@ -105,7 +103,7 @@ public final class HazardService {
* apply truncation and scaling on the client.
*/
public static Hazard calcHazard(Request request)
static Hazard calcHazard(Request request)
throws InterruptedException, ExecutionException {
HazardModel model = ServletUtil.model();
......
......@@ -2,6 +2,7 @@ package gov.usgs.earthquake.nshmp.www.source;
import gov.usgs.earthquake.nshmp.www.NshmpMicronautServlet;
import gov.usgs.earthquake.nshmp.www.ResponseBody;
import gov.usgs.earthquake.nshmp.www.ServletUtil;
import gov.usgs.earthquake.nshmp.www.source.SourceService.ResponseData;
import io.micronaut.http.HttpRequest;
import io.micronaut.http.HttpResponse;
......@@ -51,8 +52,15 @@ public class SourceController {
schema = @Schema(
implementation = MetadataResponse.class)))
@Get(produces = MediaType.APPLICATION_JSON)
public HttpResponse<String> doGetMetadata(HttpRequest<?> request) {
return SourceService.getMetadata(request);
public HttpResponse<String> doGetMetadata(HttpRequest<?> http) {
try {
return SourceService.getMetadata(http);
} catch (Exception e) {
return ServletUtil.error(
SourceService.LOG, e,
SourceService.NAME,
http.getUri().toString());
}
}
// For Swagger schemas
......
......@@ -2,6 +2,7 @@ package gov.usgs.earthquake.nshmp.www.source;
import gov.usgs.earthquake.nshmp.www.NshmpMicronautServlet;
import gov.usgs.earthquake.nshmp.www.ResponseBody;
import gov.usgs.earthquake.nshmp.www.ServletUtil;
import gov.usgs.earthquake.nshmp.www.source.SourceLogicTreesService.Metadata;
import gov.usgs.earthquake.nshmp.www.source.SourceLogicTreesService.RequestData;
import io.micronaut.http.HttpRequest;
......@@ -48,8 +49,15 @@ public class SourceLogicTreesController {
schema = @Schema(
implementation = MetadataResponse.class)))
@Get
public HttpResponse<String> doGetMetadata(HttpRequest<?> request) {
return SourceLogicTreesService.getMetadata(request);
public HttpResponse<String> doGetMetadata(HttpRequest<?> http) {
try {
return SourceLogicTreesService.getMetadata(http);
} catch (Exception e) {
return ServletUtil.error(
SourceLogicTreesService.LOG, e,
SourceLogicTreesService.NAME,
http.getUri().toString());
}
}
/**
......@@ -65,8 +73,15 @@ public class SourceLogicTreesController {
content = @Content(
schema = @Schema(implementation = TreeResponse.class)))
@Get(uri = "/{id}")
public HttpResponse<String> doGetTree(HttpRequest<?> request, @PathVariable int id) {
return SourceLogicTreesService.getTree(request, id);
public HttpResponse<String> doGetTree(HttpRequest<?> http, @PathVariable int id) {
try {
return SourceLogicTreesService.getTree(http, id);
} catch (Exception e) {
return ServletUtil.error(
SourceLogicTreesService.LOG, e,
SourceLogicTreesService.NAME,
http.getUri().toString());
}
}
// For Swagger schemas
......
......@@ -22,47 +22,34 @@ import jakarta.inject.Singleton;
@Singleton
public class SourceLogicTreesService {
static final String NAME = "Source Logic Trees";
static final Logger LOG = LoggerFactory.getLogger(SourceLogicTreesService.class);
private static final String NAME = "Source Logic Trees";
/** SourceLogicTreesController.doGetMetadata() handler */
public static HttpResponse<String> getMetadata(HttpRequest<?> request) {
var url = request.getUri().getPath();
try {
var metadata = new Metadata(ServletUtil.model());
var response = ResponseBody.usage()
.name(NAME)
.url(url)
.metadata(new ResponseMetadata(HazVersion.appVersions()))
.request(url)
.response(metadata)
.build();
return HttpResponse.ok(ServletUtil.GSON.toJson(response));
} catch (Exception e) {
return ServletUtil.error(LOG, e, NAME, url);
}
var url = request.getUri().toString();
var metadata = new Metadata(ServletUtil.model());
var response = ResponseBody.usage()
.name(NAME)
.url(url)
.metadata(new ResponseMetadata(HazVersion.appVersions()))
.request(url)
.response(metadata)
.build();
return HttpResponse.ok(ServletUtil.GSON2.toJson(response));
}
/** SourceLogicTreesController.doGetTrees() handler */
public static HttpResponse<String> getTree(HttpRequest<?> request, Integer id) {
var url = request.getUri().getPath();
try {
var tree = Models.tree(ServletUtil.model(), id);
var requestData = new RequestData(id);
var response = ResponseBody.success()
.name(NAME)
.url(url)
.metadata(new ResponseMetadata(HazVersion.appVersions()))
.request(requestData)
.response(tree)
.build();
return HttpResponse.ok(ServletUtil.GSON.toJson(response));
} catch (Exception e) {
return ServletUtil.error(LOG, e, NAME, url);
}
var url = request.getUri().toString();
var tree = Models.tree(ServletUtil.model(), id);
var requestData = new RequestData(id);
var response = ResponseBody.success()
.name(NAME)
.url(url)
.metadata(new ResponseMetadata(HazVersion.appVersions()))
.request(requestData)
.response(tree)
.build();
return HttpResponse.ok(ServletUtil.GSON2.toJson(response));
}
static class RequestData {
......
......@@ -9,63 +9,42 @@ import java.util.Set;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import gov.usgs.earthquake.nshmp.gmm.Gmm;
import gov.usgs.earthquake.nshmp.gmm.Imt;
import gov.usgs.earthquake.nshmp.gmm.NehrpSiteClass;
import gov.usgs.earthquake.nshmp.model.HazardModel;
import gov.usgs.earthquake.nshmp.www.HazVersion;
import gov.usgs.earthquake.nshmp.www.ResponseBody;
import gov.usgs.earthquake.nshmp.www.ResponseMetadata;
import gov.usgs.earthquake.nshmp.www.ServletUtil;
import gov.usgs.earthquake.nshmp.www.WsUtils;
import gov.usgs.earthquake.nshmp.www.meta.Parameter;
import gov.usgs.earthquake.nshmp.www.services.RateService;
import io.micronaut.http.HttpRequest;
import io.micronaut.http.HttpResponse;
import jakarta.inject.Singleton;
/**
* Entry point for services related to source models. Current services:
* <ul><li>/source/</li></ul>
* Source model service.
*
* @author U.S. Geological Survey
*/
@Singleton
public class SourceService {
private static final String NAME = "Source Model";
static final Logger LOG = LoggerFactory.getLogger(RateService.class);
public static final Gson GSON;
static {
GSON = new GsonBuilder()
.registerTypeAdapter(Imt.class, new WsUtils.EnumSerializer<Imt>())
.disableHtmlEscaping()
.serializeNulls()
.setPrettyPrinting()
.create();
}
static final String NAME = "Source Model";
static final Logger LOG = LoggerFactory.getLogger(SourceService.class);
static HttpResponse<String> getMetadata(HttpRequest<?> request) {
var url = request.getUri().getPath();
try {
var response = ResponseBody.usage()
.name(NAME)
.url(url)
.metadata(new ResponseMetadata(HazVersion.appVersions()))
.request(url)
.response(new ResponseData())
.build();
var json = GSON.toJson(response);
return HttpResponse.ok(json);
} catch (Exception e) {
return ServletUtil.error(LOG, e, NAME, url);
}
var url = request.getUri().toString();
var response = ResponseBody.usage()
.name(NAME)
.url(url)
.metadata(new ResponseMetadata(HazVersion.appVersions()))
.request(url)
.response(new ResponseData())
.build();
// TODO check other services for url) and
// request() passing in the same url obj
var json = ServletUtil.GSON2.toJson(response);
return HttpResponse.ok(json);
}
static class ResponseData {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment