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 546c8fba..b7a0c5f1 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") COLLECTION_TITLE("collection_title"), FULL_METADATA_LINK("full_metadata_link"), SUGGESTED_CITATION("suggested_citation"), 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 402f5951..b4456cf6 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()); @@ -63,7 +64,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, collectionTitle, fullMetadataLink, suggestedCitation); - var response = restServices.downloadData(uuid, startDate, endDate, multiPolygon, recipient, collectionTitle, fullMetadataLink, suggestedCitation); + var response = restServices.downloadData(uuid, key, startDate, endDate, multiPolygon, recipient, collectionTitle, fullMetadataLink, suggestedCitation); 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 12a8c256..22faea8a 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 @@ -73,6 +73,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, @@ -84,6 +85,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 97036903..e83fa788 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(), any(), any(), any())) + when(restServices.downloadData(any(), any(), any(), 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(), any(), any(), any())) + when(restServices.downloadData(any(), any(), any(), 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 3ffbdf56..fd21af19 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 Ocean Data Collection", "https://metadata.imas.utas.edu.au/.../test-uuid-123", "Cite data as: Mazor, T., Watermeyer, K., Hobley, T., Grinter, V., Holden, R., MacDonald, K. and Ferns, L. (2023)."); + "test-uuid", "test-dname", "2023-01-01", "2023-01-31", "test-multipolygon", "test@example.com", "Test Ocean Data Collection", "https://metadata.imas.utas.edu.au/.../test-uuid-123", "Cite data as: Mazor, T., Watermeyer, K., Hobley, T., Grinter, V., Holden, R., MacDonald, K. and Ferns, L. (2023)."); // 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","Test Ocean Data Collection", "https://metadata.imas.utas.edu.au/.../test-uuid-123", "Cite data as: Mazor, T., Watermeyer, K., Hobley, T., Grinter, V., Holden, R., MacDonald, K. and Ferns, L. (2023)."); + restServices.downloadData("test-uuid", "test-dname", "2023-01-01", "2023-01-31", "test-multipolygon", "test@example.com","Test Ocean Data Collection", "https://metadata.imas.utas.edu.au/.../test-uuid-123", "Cite data as: Mazor, T., Watermeyer, K., Hobley, T., Grinter, V., Holden, R., MacDonald, K. and Ferns, L. (2023)."); } 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 Ocean Data Collection", "https://metadata.imas.utas.edu.au/.../test-uuid-123", "Cite data as: Mazor, T., Watermeyer, K., Hobley, T., Grinter, V., Holden, R., MacDonald, K. and Ferns, L. (2023)."); + "test-uuid", "test-dname", "2023-01-01", "2023-01-31", "non-specified", "test@example.com", "Test Ocean Data Collection", "https://metadata.imas.utas.edu.au/.../test-uuid-123", "Cite data as: Mazor, T., Watermeyer, K., Hobley, T., Grinter, V., Holden, R., MacDonald, K. and Ferns, L. (2023)."); // Capture the submitted request ArgumentCaptor captor =