diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/mapper/Converter.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/mapper/Converter.java index b80f83f4..cef38fa2 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/mapper/Converter.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/mapper/Converter.java @@ -219,6 +219,10 @@ default Collection getCollection(D m, Filter fil if (m.getSummaries().getAiDescription() != null) { collection.getProperties().put(CollectionProperty.aiDescription, m.getSummaries().getAiDescription()); } + + if(m.getSummaries().getScope() != null) { + collection.getProperties().put(CollectionProperty.scope, m.getSummaries().getScope()); + } } return collection; diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/model/SummariesModel.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/model/SummariesModel.java index 363bf371..724ec040 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/model/SummariesModel.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/model/SummariesModel.java @@ -41,5 +41,8 @@ public class SummariesModel { @JsonProperty("ai:description") protected String aiDescription; + @JsonProperty("scope") + protected Map scope; + protected String statement; } diff --git a/server/src/main/java/au/org/aodn/ogcapi/server/core/model/enumeration/CollectionProperty.java b/server/src/main/java/au/org/aodn/ogcapi/server/core/model/enumeration/CollectionProperty.java index 48bbf943..559043c1 100644 --- a/server/src/main/java/au/org/aodn/ogcapi/server/core/model/enumeration/CollectionProperty.java +++ b/server/src/main/java/au/org/aodn/ogcapi/server/core/model/enumeration/CollectionProperty.java @@ -22,7 +22,8 @@ public enum CollectionProperty { centroid("centroid"), pace("pace"), datasetGroup("dataset_group"), - aiDescription("ai:description"); + aiDescription("ai:description"), + scope("scope"); private final String value; diff --git a/server/src/test/java/au/org/aodn/ogcapi/server/core/mapper/StacToCollectionTest.java b/server/src/test/java/au/org/aodn/ogcapi/server/core/mapper/StacToCollectionTest.java index 8420565d..bc4e901c 100644 --- a/server/src/test/java/au/org/aodn/ogcapi/server/core/mapper/StacToCollectionTest.java +++ b/server/src/test/java/au/org/aodn/ogcapi/server/core/mapper/StacToCollectionTest.java @@ -107,6 +107,10 @@ public void verifyAddingPropertyWorks() { var datasetGroup = List.of("group_test"); var aiDescription = "AI-generated description for testing"; + Map scope = new HashMap<>(); + scope.put("code", "document"); + scope.put("name", "IMOS publication"); + StacCollectionModel model = StacCollectionModel .builder() .summaries( @@ -120,6 +124,7 @@ public void verifyAddingPropertyWorks() { .statement(statement) .datasetGroup(datasetGroup) .aiDescription(aiDescription) + .scope(scope) .build() ) .license("Attribution 4.0") @@ -147,6 +152,8 @@ public void verifyAddingPropertyWorks() { Assertions.assertEquals("revision date", collection.getProperties().get(CollectionProperty.revision)); Assertions.assertEquals(datasetGroup, collection.getProperties().get(CollectionProperty.datasetGroup)); Assertions.assertEquals(aiDescription, collection.getProperties().get(CollectionProperty.aiDescription)); + Assertions.assertEquals("document", + ((Map) collection.getProperties().get(CollectionProperty.scope)).get("code")); Assertions.assertNotNull(collection.getLinks()); Assertions.assertEquals(3, collection.getLinks().size()); }