diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataResolversController.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataResolversController.java index c6b648e8c..2b1ddc6b5 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataResolversController.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataResolversController.java @@ -104,6 +104,7 @@ public ResponseEntity create(@RequestBody MetadataResolver newResolver) { newResolver.convertFiltersFromTransientRepresentationIfNecessary(); MetadataResolver persistedResolver = resolverRepository.save(newResolver); + positionOrderContainerService.appendPositionOrderForNew(persistedResolver); persistedResolver.updateVersion(); persistedResolver.convertFiltersIntoTransientRepresentationIfNecessary(); diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/DefaultMetadataResolversPositionOrderContainerService.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/DefaultMetadataResolversPositionOrderContainerService.java index 07128f5d0..76ac86cea 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/DefaultMetadataResolversPositionOrderContainerService.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/DefaultMetadataResolversPositionOrderContainerService.java @@ -62,6 +62,14 @@ public MetadataResolversPositionOrderContainer retrieveExistingOrEmpty() { return getPositionOrderContainerIfExists().orElseGet(MetadataResolversPositionOrderContainer::new); } + @Override + @Transactional + public void appendPositionOrderForNew(MetadataResolver metadataResolver) { + MetadataResolversPositionOrderContainer positionOrderContainer = retrieveExistingOrEmpty(); + positionOrderContainer.getResourceIds().add(metadataResolver.getResourceId()); + positionOrderContainerRepository.save(positionOrderContainer); + } + private Optional getPositionOrderContainerIfExists() { Iterator iter = positionOrderContainerRepository.findAll().iterator(); return iter.hasNext() ? Optional.of(iter.next()) : Optional.empty(); diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/MetadataResolversPositionOrderContainerService.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/MetadataResolversPositionOrderContainerService.java index 3b67f6018..7de6490af 100644 --- a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/MetadataResolversPositionOrderContainerService.java +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/service/MetadataResolversPositionOrderContainerService.java @@ -18,4 +18,6 @@ public interface MetadataResolversPositionOrderContainerService { void addOrUpdatePositionOrderContainer(MetadataResolversPositionOrderContainer metadataResolversPositionOrderContainer); List getAllMetadataResolversInDefinedOrderOrUnordered(); + + void appendPositionOrderForNew(MetadataResolver metadataResolver); }