From ba9c77ffc8cf629deae676f28fd7c7f691a1358b Mon Sep 17 00:00:00 2001 From: Yuxuan HU Date: Tue, 11 Nov 2025 16:10:49 +1100 Subject: [PATCH] add key in subsetting download request --- .../server/core/model/enumeration/DatasetDownloadEnums.java | 1 + .../java/au/org/aodn/ogcapi/server/processes/RestApi.java | 3 ++- .../au/org/aodn/ogcapi/server/processes/RestServices.java | 2 ++ .../au/org/aodn/ogcapi/server/processes/RestApiTest.java | 4 ++-- .../org/aodn/ogcapi/server/processes/RestServicesTest.java | 6 +++--- 5 files changed, 10 insertions(+), 6 deletions(-) diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/model/enumeration/DatasetDownloadEnums.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/model/enumeration/DatasetDownloadEnums.java index a4e4eb34..ba52e150 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/model/enumeration/DatasetDownloadEnums.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/model/enumeration/DatasetDownloadEnums.java @@ -17,6 +17,7 @@ public enum Parameter { TYPE("type"), FIELDS("fields"), LAYER_NAME("layer_name"), + KEY("key") ; private final String value; diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/processes/RestApi.java b/server/src/main/java/au/org/aodn/ogcapi/server/processes/RestApi.java index d17ee4a4..e814520e 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/processes/RestApi.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/processes/RestApi.java @@ -52,6 +52,7 @@ public ResponseEntity execute( try { var uuid = (String) body.getInputs().get(DatasetDownloadEnums.Parameter.UUID.getValue()); + var key = (String) body.getInputs().get(DatasetDownloadEnums.Parameter.KEY.getValue()); var startDate = (String) body.getInputs().get(DatasetDownloadEnums.Parameter.START_DATE.getValue()); var endDate = (String) body.getInputs().get(DatasetDownloadEnums.Parameter.END_DATE.getValue()); var multiPolygon = body.getInputs().get(DatasetDownloadEnums.Parameter.MULTI_POLYGON.getValue()); @@ -60,7 +61,7 @@ public ResponseEntity execute( // move the notify user email from data-access-service to here to make the first email faster restServices.notifyUser(recipient, uuid, startDate, endDate, multiPolygon); - var response = restServices.downloadData(uuid, startDate, endDate, multiPolygon, recipient); + var response = restServices.downloadData(uuid, key, startDate, endDate, multiPolygon, recipient); var value = new InlineValue(response.getBody()); var status = new InlineValue(Integer.toString(HttpStatus.OK.value())); diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/processes/RestServices.java b/server/src/main/java/au/org/aodn/ogcapi/server/processes/RestServices.java index 97cd0e1e..f99f920a 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/processes/RestServices.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/processes/RestServices.java @@ -71,6 +71,7 @@ public void notifyUser(String recipient, String uuid, String startDate, String e public ResponseEntity downloadData( String id, + String key, String startDate, String endDate, Object polygons, @@ -79,6 +80,7 @@ public ResponseEntity downloadData( Map parameters = new HashMap<>(); parameters.put(DatasetDownloadEnums.Parameter.UUID.getValue(), id); + parameters.put(DatasetDownloadEnums.Parameter.KEY.getValue(), key); parameters.put(DatasetDownloadEnums.Parameter.START_DATE.getValue(), startDate); parameters.put(DatasetDownloadEnums.Parameter.END_DATE.getValue(), endDate); parameters.put(DatasetDownloadEnums.Parameter.RECIPIENT.getValue(), recipient); diff --git a/server/src/test/java/au/org/aodn/ogcapi/server/processes/RestApiTest.java b/server/src/test/java/au/org/aodn/ogcapi/server/processes/RestApiTest.java index a0ea52db..3b1dd1a3 100644 --- a/server/src/test/java/au/org/aodn/ogcapi/server/processes/RestApiTest.java +++ b/server/src/test/java/au/org/aodn/ogcapi/server/processes/RestApiTest.java @@ -50,7 +50,7 @@ public void setUp() { @Test public void testExecuteDownloadDatasetSuccess() throws JsonProcessingException { - when(restServices.downloadData(any(), any(), any(), any(), any())) + when(restServices.downloadData(any(), any(), any(), any(), any(), any())) .thenReturn(ResponseEntity.ok("Job submitted with ID: test-job-id")); ResponseEntity response = restApi.execute(ProcessIdEnum.DOWNLOAD_DATASET.getValue(), executeRequest); @@ -65,7 +65,7 @@ public void testExecuteDownloadDatasetSuccess() throws JsonProcessingException { @Test public void testExecuteDownloadDatasetError() throws JsonProcessingException { - when(restServices.downloadData(any(), any(), any(), any(), any())) + when(restServices.downloadData(any(), any(), any(), any(), any(), any())) .thenThrow(new RuntimeException("Error while getting dataset")); ResponseEntity response = restApi.execute(ProcessIdEnum.DOWNLOAD_DATASET.getValue(), executeRequest); diff --git a/server/src/test/java/au/org/aodn/ogcapi/server/processes/RestServicesTest.java b/server/src/test/java/au/org/aodn/ogcapi/server/processes/RestServicesTest.java index 18530f1f..7a814aa2 100644 --- a/server/src/test/java/au/org/aodn/ogcapi/server/processes/RestServicesTest.java +++ b/server/src/test/java/au/org/aodn/ogcapi/server/processes/RestServicesTest.java @@ -50,7 +50,7 @@ public void testDownloadDataSuccess() throws JsonProcessingException { // Act ResponseEntity response = restServices.downloadData( - "test-uuid", "2023-01-01", "2023-01-31", "test-multipolygon", "test@example.com"); + "test-uuid", "test-dname", "2023-01-01", "2023-01-31", "test-multipolygon", "test@example.com"); // Assert assertEquals(ResponseEntity.ok("Job submitted with ID: " + jobId), response); @@ -64,7 +64,7 @@ public void testDownloadDataJsonProcessingException() throws JsonProcessingExcep // Act & Assert try { - restServices.downloadData("test-uuid", "2023-01-01", "2023-01-31", "test-multipolygon", "test@example.com"); + restServices.downloadData("test-uuid", "test-dname", "2023-01-01", "2023-01-31", "test-multipolygon", "test@example.com"); } catch (JsonProcessingException e) { assertEquals("Error", e.getMessage()); } @@ -80,7 +80,7 @@ public void testDownloadDataCapturesSubmitJobRequest() throws JsonProcessingExce // Act ResponseEntity response = restServices.downloadData( - "test-uuid", "2023-01-01", "2023-01-31", "non-specified", "test@example.com"); + "test-uuid", "test-dname", "2023-01-01", "2023-01-31", "non-specified", "test@example.com"); // Capture the submitted request ArgumentCaptor captor =