diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/EnvironmentController.java b/alfa-service/src/main/java/de/ozgcloud/alfa/EnvironmentController.java index b18d3421b4e18bcc9329a453f6a503537c667b51..7f8c5f2a502d007523f52b2ad448f9e9d03a68d8 100644 --- a/alfa-service/src/main/java/de/ozgcloud/alfa/EnvironmentController.java +++ b/alfa-service/src/main/java/de/ozgcloud/alfa/EnvironmentController.java @@ -25,16 +25,11 @@ package de.ozgcloud.alfa; import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*; -import java.util.List; - import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import de.ozgcloud.alfa.vorgang.VorgangProperties; -import de.ozgcloud.alfa.vorgang.VorgangProperties.VorgangProperty; - @RestController @RequestMapping(EnvironmentController.PREFIX) public class EnvironmentController { @@ -48,7 +43,7 @@ public class EnvironmentController { private GoofyProperties goofyProperties; @Autowired - private VorgangProperties vorgangProperties; + private ManualTriggeredProcessorProperties manualTriggeredProcessorProperties; @GetMapping public FrontendEnvironment getFrontendEnvironment() { @@ -58,11 +53,7 @@ public class EnvironmentController { .authServer(oAuth2Properties.getAuthServerUrl()) .clientId(oAuth2Properties.getResource()) .realm(oAuth2Properties.getRealm()) - .processorNames(getProcessorNames()) + .processorNames(manualTriggeredProcessorProperties.getAnalogButtonProcessorNames()) .build(); } - - private List<String> getProcessorNames() { - return vorgangProperties.getAnalogButtonProcessor().stream().map(VorgangProperty::getFormId).toList(); - } } \ No newline at end of file diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/ManualTriggeredProcessorProperties.java b/alfa-service/src/main/java/de/ozgcloud/alfa/ManualTriggeredProcessorProperties.java new file mode 100644 index 0000000000000000000000000000000000000000..6da01de993d326ec92b84324664a24dbe2c53515 --- /dev/null +++ b/alfa-service/src/main/java/de/ozgcloud/alfa/ManualTriggeredProcessorProperties.java @@ -0,0 +1,31 @@ +package de.ozgcloud.alfa; + +import java.util.Collections; +import java.util.List; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +import de.ozgcloud.alfa.vorgang.VorgangProperties.VorgangProperty; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +@Configuration +@ConfigurationProperties(prefix = ManualTriggeredProcessorProperties.PREFIX) +public class ManualTriggeredProcessorProperties { + + static final String PREFIX = "ozgcloud.vorgang"; + + /** + * Matching conditions of manual triggerable vorgang processing based on vorgang#formId and vorgang#formEngineName. + */ + private List<VorgangProperty> analogButtonProcessor = Collections.emptyList(); + + /** + * Names of processor used after triggered vorgang processing. + */ + private List<String> analogButtonProcessorNames = Collections.emptyList(); + +} diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/VorgangProperties.java b/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/VorgangProperties.java index 2140099e72633cdd29c9873ff9b425f4bbe4da3c..a5a45fc9661bbe86dc1e845cc17a9459f66523fb 100644 --- a/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/VorgangProperties.java +++ b/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/VorgangProperties.java @@ -23,11 +23,6 @@ public class VorgangProperties { */ private List<VorgangProperty> bescheid = Collections.emptyList(); - /** - * Matching conditions of manual triggerable vorgang processing based on vorgang#formId and vorgang#formEngineName. - */ - private List<VorgangProperty> analogButtonProcessor = Collections.emptyList(); - @Builder @Setter @Getter @@ -35,6 +30,5 @@ public class VorgangProperties { private String formId; private String formEngineName; - } -} +} \ No newline at end of file diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/VorgangWithEingangProzessor.java b/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/VorgangWithEingangProzessor.java index 6d3d9166cb0b9c4d0375f8a06c84239f54ea4a41..beb1a0afd483ca222d47a18a439db1ca42aaf6c1 100644 --- a/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/VorgangWithEingangProzessor.java +++ b/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/VorgangWithEingangProzessor.java @@ -39,6 +39,7 @@ import org.springframework.hateoas.LinkRelation; import org.springframework.hateoas.server.RepresentationModelProcessor; import org.springframework.stereotype.Component; +import de.ozgcloud.alfa.ManualTriggeredProcessorProperties; import de.ozgcloud.alfa.attachment.AttachmentController; import de.ozgcloud.alfa.common.FeatureToggleProperties; import de.ozgcloud.alfa.common.ModelBuilder; @@ -83,6 +84,8 @@ class VorgangWithEingangProzessor implements RepresentationModelProcessor<Entity private FeatureToggleProperties featureToggleProperties; @Autowired private VorgangProperties vorgangProperties; + @Autowired + private ManualTriggeredProcessorProperties manualTriggeredProcessorProperties; private static final Predicate<VorgangWithEingang> HAS_ATTACHMENTS = vorgangWithEingang -> vorgangWithEingang.getEingang() .getNumberOfAttachments() > 0; @@ -117,7 +120,7 @@ class VorgangWithEingangProzessor implements RepresentationModelProcessor<Entity .ifMatch(() -> isCreateBescheidEnabled(vorgang)) .addLink(linkTo(methodOn(CommandByRelationController.class).createCommand(vorgang.getId(), vorgang.getId(), vorgang.getVersion(), null)).withRel(REL_BESCHEID)) - .ifMatch(this::showAnalogProzessorButton) + .ifMatch(this::showAnalogProcessorButton) .addLink(() -> linkTo(methodOn(CommandByRelationController.class).createCommand(vorgang.getId(), vorgang.getId(), vorgang.getVersion(), null)).withRel(REL_EXECUTE_PROCESSOR)) .buildModel(); @@ -162,8 +165,8 @@ class VorgangWithEingangProzessor implements RepresentationModelProcessor<Entity return isAnyFormIdAndFormEngineNameMatching(eingangHeader, vorgangProperties.getBescheid()); } - private boolean showAnalogProzessorButton(VorgangWithEingang vorgang) { - return isAnyFormIdAndFormEngineNameMatching(vorgang.getEingang().getHeader(), vorgangProperties.getAnalogButtonProcessor()); + private boolean showAnalogProcessorButton(VorgangWithEingang vorgang) { + return isAnyFormIdAndFormEngineNameMatching(vorgang.getEingang().getHeader(), manualTriggeredProcessorProperties.getAnalogButtonProcessor()); } private boolean isAnyFormIdAndFormEngineNameMatching(EingangHeader eingangHeader, List<VorgangProperty> properties) { diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/EnvironmentControllerTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/EnvironmentControllerTest.java index 21f04f747ad386b7b89381187c1d2337352fd8ef..75958f28f14ba1b5cef8325fcbd9f62c58f28dce 100644 --- a/alfa-service/src/test/java/de/ozgcloud/alfa/EnvironmentControllerTest.java +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/EnvironmentControllerTest.java @@ -37,9 +37,6 @@ import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.ResultActions; import org.springframework.test.web.servlet.setup.MockMvcBuilders; -import de.ozgcloud.alfa.vorgang.EingangHeaderTestFactory; -import de.ozgcloud.alfa.vorgang.VorgangProperties; -import de.ozgcloud.alfa.vorgang.VorgangPropertyTestFactory; import lombok.SneakyThrows; class EnvironmentControllerTest { @@ -51,7 +48,7 @@ class EnvironmentControllerTest { @Mock private GoofyProperties goofyProperties; @Mock - private VorgangProperties vorgangProperties; + private ManualTriggeredProcessorProperties manualTriggeredProcessorProperties; private MockMvc mockMvc; @@ -92,11 +89,12 @@ class EnvironmentControllerTest { @SneakyThrows @Test void shouldHaveProcessorNames() { - when(vorgangProperties.getAnalogButtonProcessor()).thenReturn(List.of(VorgangPropertyTestFactory.create())); + var processorName = "dummyProcessorName"; + when(manualTriggeredProcessorProperties.getAnalogButtonProcessorNames()).thenReturn(List.of(processorName)); var response = doRequest(); - response.andExpect(jsonPath("$.processorNames").value(EingangHeaderTestFactory.FORM_ID)); + response.andExpect(jsonPath("$.processorNames").value(processorName)); } @SneakyThrows diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/vorgang/VorgangWithEingangProzessorTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/vorgang/VorgangWithEingangProzessorTest.java index f65a5c35cbd13a36439718ac1cc03ebadd44ddb6..b7d90516cef3279cdeaaaea8e1577d858c097af8 100644 --- a/alfa-service/src/test/java/de/ozgcloud/alfa/vorgang/VorgangWithEingangProzessorTest.java +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/vorgang/VorgangWithEingangProzessorTest.java @@ -44,6 +44,7 @@ import org.springframework.hateoas.Link; import org.springframework.hateoas.LinkRelation; import org.springframework.web.util.UriComponentsBuilder; +import de.ozgcloud.alfa.ManualTriggeredProcessorProperties; import de.ozgcloud.alfa.common.FeatureToggleProperties; import de.ozgcloud.alfa.common.UserProfileUrlProvider; import de.ozgcloud.alfa.common.user.CurrentUserService; @@ -69,6 +70,9 @@ class VorgangWithEingangProzessorTest { @Mock private VorgangProperties vorgangProperties; + + @Mock + private ManualTriggeredProcessorProperties manualTriggeredProcessorProperties; private UserProfileUrlProvider urlProvider = new UserProfileUrlProvider(); @@ -522,7 +526,7 @@ class VorgangWithEingangProzessorTest { @BeforeEach void init() { - when(vorgangProperties.getAnalogButtonProcessor()).thenReturn(List.of(VorgangPropertyTestFactory.create())); + when(manualTriggeredProcessorProperties.getAnalogButtonProcessor()).thenReturn(List.of(VorgangPropertyTestFactory.create())); } @Test @@ -542,7 +546,7 @@ class VorgangWithEingangProzessorTest { @Test void shouldNotBeVisibleOnWrongFormId() { var properties = List.of(VorgangPropertyTestFactory.createBuilder().formId("quatsch").build()); - when(vorgangProperties.getAnalogButtonProcessor()).thenReturn(properties); + when(manualTriggeredProcessorProperties.getAnalogButtonProcessor()).thenReturn(properties); var processed = processor.process(vorgangEntityModel); @@ -552,7 +556,7 @@ class VorgangWithEingangProzessorTest { @Test void shouldNotBeVisibleOnWrongFormEngineName() { var properties = List.of(VorgangPropertyTestFactory.createBuilder().formEngineName("quatsch").build()); - when(vorgangProperties.getAnalogButtonProcessor()).thenReturn(properties); + when(manualTriggeredProcessorProperties.getAnalogButtonProcessor()).thenReturn(properties); var processed = processor.process(vorgangEntityModel);