From e2494757c22c51ce234f30f405161498be6acbdd Mon Sep 17 00:00:00 2001 From: Krzysztof <krzysztof.witukiewicz@mgm-tp.com> Date: Fri, 11 Apr 2025 16:30:21 +0200 Subject: [PATCH 1/3] OZG-7773 OZG-8079 setHasNewPostfachNachricht only if there are incoming mails --- .../postfach/PostfachMailModelAssembler.java | 31 +++- .../PostfachMailModelAssemblerTest.java | 151 +++++++++++++++--- 2 files changed, 154 insertions(+), 28 deletions(-) diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/postfach/PostfachMailModelAssembler.java b/alfa-service/src/main/java/de/ozgcloud/alfa/postfach/PostfachMailModelAssembler.java index 792d90d96a..9efceff0fd 100644 --- a/alfa-service/src/main/java/de/ozgcloud/alfa/postfach/PostfachMailModelAssembler.java +++ b/alfa-service/src/main/java/de/ozgcloud/alfa/postfach/PostfachMailModelAssembler.java @@ -25,6 +25,7 @@ package de.ozgcloud.alfa.postfach; import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*; +import java.util.List; import java.util.Objects; import java.util.Optional; import java.util.function.Predicate; @@ -68,6 +69,7 @@ class PostfachMailModelAssembler implements RepresentationModelAssembler<Postfac private static final String FILE_PATH = "file"; private static final Predicate<PostfachMail> IS_OUTGOING = postfachNachricht -> postfachNachricht.getDirection() == Direction.OUT; + private static final Predicate<PostfachMail> IS_INCOMING = postfachNachricht -> postfachNachricht.getDirection() == Direction.IN; private static final Predicate<PostfachMail> SENT_FAILED = postfachMail -> Objects.nonNull(postfachMail.getSentAt()) && BooleanUtils.isFalse(postfachMail.getSentSuccessful()); @@ -84,11 +86,11 @@ class PostfachMailModelAssembler implements RepresentationModelAssembler<Postfac public RepresentationModel<EntityModel<PostfachSettings>> toCollectionModel(Stream<PostfachMail> postfachMails, VorgangWithEingang vorgang, PostfachSettings postfachSettings) { - - var model = buildHalRepresentationModel(postfachMails, vorgang, postfachSettings); + var postfachMailsList = postfachMails.toList(); + var model = buildHalRepresentationModel(postfachMailsList.stream(), vorgang, postfachSettings); if (hasServiceKonto(vorgang)) { - addPostfachNachrichtLinks(model, vorgang); + addPostfachNachrichtLinks(model, getVorgangInfo(postfachMailsList, vorgang)); } return model; } @@ -106,10 +108,20 @@ class PostfachMailModelAssembler implements RepresentationModelAssembler<Postfac return Optional.ofNullable(vorgang.getHeader()).map(VorgangHead::getServiceKonto).isPresent(); } - void addPostfachNachrichtLinks(RepresentationModel<EntityModel<PostfachSettings>> model, VorgangWithEingang vorgang) { - var vorgangId = vorgang.getId(); + record VorgangInfo(VorgangWithEingang vorgang, boolean hasIncomingMails) {} + + VorgangInfo getVorgangInfo(List<PostfachMail> postfachMails, VorgangWithEingang vorgang) { + return new VorgangInfo(vorgang, hasIncomingMails(postfachMails)); + } - if (vorgangController.isEditable(vorgang)) { + boolean hasIncomingMails(List<PostfachMail> postfachMails) { + return postfachMails.stream().anyMatch(IS_INCOMING); + } + + void addPostfachNachrichtLinks(RepresentationModel<EntityModel<PostfachSettings>> model, VorgangInfo vorgangInfo) { + var vorgangId = vorgangInfo.vorgang.getId(); + + if (vorgangController.isEditable(vorgangInfo.vorgang)) { model.add(linkTo(methodOn(PostfachMailCommandByVorgangController.class).sendPostfachMail(vorgangId, null)) .withRel(REL_SEND_POSTFACH_MAIL)); } @@ -117,8 +129,11 @@ class PostfachMailModelAssembler implements RepresentationModelAssembler<Postfac model.add(linkTo(BinaryFileController.class).slash(vorgangId).slash(POSTFACH_NACHRICHT_ATTACHMENT_FIELD).slash(FILE_PATH) .withRel(REL_UPLOAD_ATTACHMENT)); - model.add(linkTo(VorgangController.class).slash(vorgangId).slash(HAS_NEW_POSTFACH_NACHRICHT_FIELD) - .withRel(vorgang.isHasNewPostfachNachricht() ? REL_RESET_NEW_POSTFACH_MAIL : REL_SET_HAS_NEW_POSTFACH_MAIL)); + if (vorgangInfo.vorgang.isHasNewPostfachNachricht()) { + model.add(linkTo(VorgangController.class).slash(vorgangId).slash(HAS_NEW_POSTFACH_NACHRICHT_FIELD).withRel(REL_RESET_NEW_POSTFACH_MAIL)); + } else if (vorgangInfo.hasIncomingMails()) { + model.add(linkTo(VorgangController.class).slash(vorgangId).slash(HAS_NEW_POSTFACH_NACHRICHT_FIELD).withRel(REL_SET_HAS_NEW_POSTFACH_MAIL)); + } } @Override diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/postfach/PostfachMailModelAssemblerTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/postfach/PostfachMailModelAssemblerTest.java index 01b02c1d5f..178be8905d 100644 --- a/alfa-service/src/test/java/de/ozgcloud/alfa/postfach/PostfachMailModelAssemblerTest.java +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/postfach/PostfachMailModelAssemblerTest.java @@ -27,6 +27,7 @@ import static org.assertj.core.api.Assertions.*; import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; +import java.util.List; import java.util.UUID; import java.util.stream.Stream; @@ -34,6 +35,10 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; +import org.mockito.ArgumentCaptor; +import org.mockito.Captor; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Spy; @@ -53,6 +58,7 @@ import de.ozgcloud.alfa.common.user.UserId; import de.ozgcloud.alfa.common.user.UserManagerUrlProvider; import de.ozgcloud.alfa.postfach.PostfachMail.Direction; import de.ozgcloud.alfa.postfach.PostfachMailController.PostfachMailCommandByVorgangController; +import de.ozgcloud.alfa.postfach.PostfachMailModelAssembler.VorgangInfo; import de.ozgcloud.alfa.vorgang.ServiceKontoTestFactory; import de.ozgcloud.alfa.vorgang.VorgangController; import de.ozgcloud.alfa.vorgang.VorgangHeadTestFactory; @@ -291,40 +297,59 @@ class PostfachMailModelAssemblerTest { @Nested class TestToCollectionModel { - private final Stream<PostfachMail> mails = Stream.of(PostfachMailTestFactory.create()); + private final List<PostfachMail> mails = List.of(PostfachMailTestFactory.create()); private final VorgangWithEingang vorgang = VorgangWithEingangTestFactory.create(); private final PostfachSettings postfachSettings = PostfachSettingsTestFactory.create(); @Mock private RepresentationModel<EntityModel<PostfachSettings>> model; + @Captor + private ArgumentCaptor<Stream<PostfachMail>> postfachMailsCaptor; @BeforeEach void setUpMocks() { - doReturn(model).when(modelAssembler).buildHalRepresentationModel(mails, vorgang, postfachSettings); + doReturn(model).when(modelAssembler).buildHalRepresentationModel(any(), any(), any()); } @Test void shouldBuildHalRepresentationModel() { + doReturn(false).when(modelAssembler).hasServiceKonto(vorgang); + callModelAssembler(); - verify(modelAssembler).buildHalRepresentationModel(mails, vorgang, postfachSettings); + verify(modelAssembler).buildHalRepresentationModel(postfachMailsCaptor.capture(), same(vorgang), same(postfachSettings)); + assertThat(postfachMailsCaptor.getValue()).containsExactlyElementsOf(mails); } @Nested class OnHasServiceKonto { + private final VorgangInfo vorgangInfo = new VorgangInfo(vorgang, true); + + @BeforeEach + void init() { + doReturn(vorgangInfo).when(modelAssembler).getVorgangInfo(any(), any()); + } + + @Test + void shouldGetVorgangInfo() { + callModelAssembler(); + + verify(modelAssembler).getVorgangInfo(mails, vorgang); + } + @Test void shouldAddPostfachNachrichtLinks() { doReturn(true).when(modelAssembler).hasServiceKonto(vorgang); callModelAssembler(); - verify(modelAssembler).addPostfachNachrichtLinks(model, vorgang); + verify(modelAssembler).addPostfachNachrichtLinks(model, vorgangInfo); } } @Nested - class OnHasNotServiceKonto { + class OnHasNoServiceKonto { @Test void shouldAddPostfachNachrichtLinks() { @@ -338,13 +363,15 @@ class PostfachMailModelAssemblerTest { @Test void shouldReturnModel() { + doReturn(false).when(modelAssembler).hasServiceKonto(vorgang); + var returnedModel = callModelAssembler(); assertThat(returnedModel).isEqualTo(model); } private RepresentationModel<EntityModel<PostfachSettings>> callModelAssembler() { - return modelAssembler.toCollectionModel(mails, vorgang, postfachSettings); + return modelAssembler.toCollectionModel(mails.stream(), vorgang, postfachSettings); } } @@ -410,6 +437,37 @@ class PostfachMailModelAssemblerTest { } + @Nested + class TestGetVorgangInfo { + + private final List<PostfachMail> mails = List.of(PostfachMailTestFactory.create()); + private final VorgangWithEingang vorgang = VorgangWithEingangTestFactory.create(); + + @Test + void shouldCallHasIncomingMails() { + modelAssembler.getVorgangInfo(mails, vorgang); + + verify(modelAssembler).hasIncomingMails(mails); + } + + @ParameterizedTest + @ValueSource(booleans = { true, false }) + void shouldHaveHasIncomingMails(boolean hasIncomingMails) { + doReturn(hasIncomingMails).when(modelAssembler).hasIncomingMails(any()); + + var vorgangInfo = modelAssembler.getVorgangInfo(mails, vorgang); + + assertThat(vorgangInfo.hasIncomingMails()).isEqualTo(hasIncomingMails); + } + + @Test + void shouldHaveVorgang() { + var vorgangInfo = modelAssembler.getVorgangInfo(mails, vorgang); + + assertThat(vorgangInfo.vorgang()).isEqualTo(vorgang); + } + } + @Nested class TestHasServiceKonto { @@ -438,6 +496,33 @@ class PostfachMailModelAssemblerTest { } } + @Nested + class TestHasIncomingMails { + + @Test + void shouldReturnFalseIfListIsEmpty() { + var hasIncomingMails = modelAssembler.hasIncomingMails(List.of()); + + assertThat(hasIncomingMails).isFalse(); + } + + @Test + void shouldReturnFalseIfNoIncomingMails() { + var hasIncomingMails = modelAssembler.hasIncomingMails(List.of(PostfachMailTestFactory.createBuilder().direction(Direction.OUT).build())); + + assertThat(hasIncomingMails).isFalse(); + } + + @Test + void shouldReturnTrueIfIncomingMailsArePresent() { + var hasIncomingMails = modelAssembler.hasIncomingMails(List.of( + PostfachMailTestFactory.createBuilder().direction(Direction.OUT).build(), + PostfachMailTestFactory.createBuilder().direction(Direction.IN).build())); + + assertThat(hasIncomingMails).isTrue(); + } + } + @Nested class TestAddPostfachNachrichtLinks { @@ -473,23 +558,49 @@ class PostfachMailModelAssemblerTest { @Nested class SetHasNewPostfachNachrichtLink { - @Test - void shouldBePresent() { - callModelAssembler(VorgangWithEingangTestFactory.createBuilder().hasNewPostfachNachricht(false).build()); + @Nested + class OnHasNewPostfachNachrichtSet { - var link = model.getLink(PostfachMailModelAssembler.REL_SET_HAS_NEW_POSTFACH_MAIL); - assertThat(link).isPresent().get().extracting(Link::getHref) - .isEqualTo(UriComponentsBuilder.fromUriString("/api/vorgangs") - .pathSegment(VorgangHeaderTestFactory.ID, "hasNewPostfachNachricht") - .build().toString()); + @Test + void shouldNotBePresent() { + callModelAssembler(); + + var link = model.getLink(PostfachMailModelAssembler.REL_SET_HAS_NEW_POSTFACH_MAIL); + assertThat(link).isNotPresent(); + } + + private void callModelAssembler() { + modelAssembler.addPostfachNachrichtLinks(model, + new VorgangInfo(VorgangWithEingangTestFactory.createBuilder().hasNewPostfachNachricht(true).build(), true)); + } } - @Test - void shouldNotBePresent() { - callModelAssembler(VorgangWithEingangTestFactory.create()); + @Nested + class OnHasNewPostfachNachrichtUnset { - var link = model.getLink(PostfachMailModelAssembler.REL_SET_HAS_NEW_POSTFACH_MAIL); - assertThat(link).isNotPresent(); + @Test + void shouldBePresentWhenHasIncomingMails() { + callModelAssembler(true); + + var link = model.getLink(PostfachMailModelAssembler.REL_SET_HAS_NEW_POSTFACH_MAIL); + assertThat(link).isPresent().get().extracting(Link::getHref) + .isEqualTo(UriComponentsBuilder.fromUriString("/api/vorgangs") + .pathSegment(VorgangHeaderTestFactory.ID, "hasNewPostfachNachricht") + .build().toString()); + } + + @Test + void shouldNotBePresentWhenHasNoIncomingMails() { + callModelAssembler(false); + + var link = model.getLink(PostfachMailModelAssembler.REL_SET_HAS_NEW_POSTFACH_MAIL); + assertThat(link).isNotPresent(); + } + + private void callModelAssembler(boolean hasIncomingMails) { + modelAssembler.addPostfachNachrichtLinks(model, + new VorgangInfo(VorgangWithEingangTestFactory.createBuilder().hasNewPostfachNachricht(false).build(), hasIncomingMails)); + } } } @@ -545,7 +656,7 @@ class PostfachMailModelAssemblerTest { } private void callModelAssembler(VorgangWithEingang vorgang) { - modelAssembler.addPostfachNachrichtLinks(model, vorgang); + modelAssembler.addPostfachNachrichtLinks(model, new VorgangInfo(vorgang, false)); } } } -- GitLab From 33458b51901ee6f6b6ce207209c87f92af7fce2c Mon Sep 17 00:00:00 2001 From: Krzysztof <krzysztof.witukiewicz@mgm-tp.com> Date: Fri, 11 Apr 2025 17:15:11 +0200 Subject: [PATCH 2/3] OZG-7773 OZG-8079 Renamings --- .../postfach/PostfachMailModelAssembler.java | 11 ++++--- .../PostfachMailModelAssemblerTest.java | 30 +++++++++---------- 2 files changed, 20 insertions(+), 21 deletions(-) diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/postfach/PostfachMailModelAssembler.java b/alfa-service/src/main/java/de/ozgcloud/alfa/postfach/PostfachMailModelAssembler.java index 9efceff0fd..6d73eb8ef1 100644 --- a/alfa-service/src/main/java/de/ozgcloud/alfa/postfach/PostfachMailModelAssembler.java +++ b/alfa-service/src/main/java/de/ozgcloud/alfa/postfach/PostfachMailModelAssembler.java @@ -90,7 +90,7 @@ class PostfachMailModelAssembler implements RepresentationModelAssembler<Postfac var model = buildHalRepresentationModel(postfachMailsList.stream(), vorgang, postfachSettings); if (hasServiceKonto(vorgang)) { - addPostfachNachrichtLinks(model, getVorgangInfo(postfachMailsList, vorgang)); + addPostfachNachrichtLinks(model, buildVorgangMailInfo(postfachMailsList, vorgang)); } return model; } @@ -108,17 +108,15 @@ class PostfachMailModelAssembler implements RepresentationModelAssembler<Postfac return Optional.ofNullable(vorgang.getHeader()).map(VorgangHead::getServiceKonto).isPresent(); } - record VorgangInfo(VorgangWithEingang vorgang, boolean hasIncomingMails) {} - - VorgangInfo getVorgangInfo(List<PostfachMail> postfachMails, VorgangWithEingang vorgang) { - return new VorgangInfo(vorgang, hasIncomingMails(postfachMails)); + VorgangMailInfo buildVorgangMailInfo(List<PostfachMail> postfachMails, VorgangWithEingang vorgang) { + return new VorgangMailInfo(vorgang, hasIncomingMails(postfachMails)); } boolean hasIncomingMails(List<PostfachMail> postfachMails) { return postfachMails.stream().anyMatch(IS_INCOMING); } - void addPostfachNachrichtLinks(RepresentationModel<EntityModel<PostfachSettings>> model, VorgangInfo vorgangInfo) { + void addPostfachNachrichtLinks(RepresentationModel<EntityModel<PostfachSettings>> model, VorgangMailInfo vorgangInfo) { var vorgangId = vorgangInfo.vorgang.getId(); if (vorgangController.isEditable(vorgangInfo.vorgang)) { @@ -156,4 +154,5 @@ class PostfachMailModelAssembler implements RepresentationModelAssembler<Postfac () -> Link.of(String.format(userManagerUrlProvider.getUserProfileTemplate(), postfachMail.getCreatedBy()), REL_CREATED_BY)); } + record VorgangMailInfo(VorgangWithEingang vorgang, boolean hasIncomingMails) {} } \ No newline at end of file diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/postfach/PostfachMailModelAssemblerTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/postfach/PostfachMailModelAssemblerTest.java index 178be8905d..da9a28e8d9 100644 --- a/alfa-service/src/test/java/de/ozgcloud/alfa/postfach/PostfachMailModelAssemblerTest.java +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/postfach/PostfachMailModelAssemblerTest.java @@ -58,7 +58,7 @@ import de.ozgcloud.alfa.common.user.UserId; import de.ozgcloud.alfa.common.user.UserManagerUrlProvider; import de.ozgcloud.alfa.postfach.PostfachMail.Direction; import de.ozgcloud.alfa.postfach.PostfachMailController.PostfachMailCommandByVorgangController; -import de.ozgcloud.alfa.postfach.PostfachMailModelAssembler.VorgangInfo; +import de.ozgcloud.alfa.postfach.PostfachMailModelAssembler.VorgangMailInfo; import de.ozgcloud.alfa.vorgang.ServiceKontoTestFactory; import de.ozgcloud.alfa.vorgang.VorgangController; import de.ozgcloud.alfa.vorgang.VorgangHeadTestFactory; @@ -324,18 +324,18 @@ class PostfachMailModelAssemblerTest { @Nested class OnHasServiceKonto { - private final VorgangInfo vorgangInfo = new VorgangInfo(vorgang, true); + private final VorgangMailInfo vorgangMailInfo = new VorgangMailInfo(vorgang, true); @BeforeEach void init() { - doReturn(vorgangInfo).when(modelAssembler).getVorgangInfo(any(), any()); + doReturn(vorgangMailInfo).when(modelAssembler).buildVorgangMailInfo(any(), any()); } @Test - void shouldGetVorgangInfo() { + void shouldBuildVorgangMailInfo() { callModelAssembler(); - verify(modelAssembler).getVorgangInfo(mails, vorgang); + verify(modelAssembler).buildVorgangMailInfo(mails, vorgang); } @Test @@ -344,7 +344,7 @@ class PostfachMailModelAssemblerTest { callModelAssembler(); - verify(modelAssembler).addPostfachNachrichtLinks(model, vorgangInfo); + verify(modelAssembler).addPostfachNachrichtLinks(model, vorgangMailInfo); } } @@ -438,14 +438,14 @@ class PostfachMailModelAssemblerTest { } @Nested - class TestGetVorgangInfo { + class TestBuildVorgangMailInfo { private final List<PostfachMail> mails = List.of(PostfachMailTestFactory.create()); private final VorgangWithEingang vorgang = VorgangWithEingangTestFactory.create(); @Test void shouldCallHasIncomingMails() { - modelAssembler.getVorgangInfo(mails, vorgang); + modelAssembler.buildVorgangMailInfo(mails, vorgang); verify(modelAssembler).hasIncomingMails(mails); } @@ -455,16 +455,16 @@ class PostfachMailModelAssemblerTest { void shouldHaveHasIncomingMails(boolean hasIncomingMails) { doReturn(hasIncomingMails).when(modelAssembler).hasIncomingMails(any()); - var vorgangInfo = modelAssembler.getVorgangInfo(mails, vorgang); + var vorgangMailInfo = modelAssembler.buildVorgangMailInfo(mails, vorgang); - assertThat(vorgangInfo.hasIncomingMails()).isEqualTo(hasIncomingMails); + assertThat(vorgangMailInfo.hasIncomingMails()).isEqualTo(hasIncomingMails); } @Test void shouldHaveVorgang() { - var vorgangInfo = modelAssembler.getVorgangInfo(mails, vorgang); + var vorgangMailInfo = modelAssembler.buildVorgangMailInfo(mails, vorgang); - assertThat(vorgangInfo.vorgang()).isEqualTo(vorgang); + assertThat(vorgangMailInfo.vorgang()).isEqualTo(vorgang); } } @@ -571,7 +571,7 @@ class PostfachMailModelAssemblerTest { private void callModelAssembler() { modelAssembler.addPostfachNachrichtLinks(model, - new VorgangInfo(VorgangWithEingangTestFactory.createBuilder().hasNewPostfachNachricht(true).build(), true)); + new VorgangMailInfo(VorgangWithEingangTestFactory.createBuilder().hasNewPostfachNachricht(true).build(), true)); } } @@ -599,7 +599,7 @@ class PostfachMailModelAssemblerTest { private void callModelAssembler(boolean hasIncomingMails) { modelAssembler.addPostfachNachrichtLinks(model, - new VorgangInfo(VorgangWithEingangTestFactory.createBuilder().hasNewPostfachNachricht(false).build(), hasIncomingMails)); + new VorgangMailInfo(VorgangWithEingangTestFactory.createBuilder().hasNewPostfachNachricht(false).build(), hasIncomingMails)); } } } @@ -656,7 +656,7 @@ class PostfachMailModelAssemblerTest { } private void callModelAssembler(VorgangWithEingang vorgang) { - modelAssembler.addPostfachNachrichtLinks(model, new VorgangInfo(vorgang, false)); + modelAssembler.addPostfachNachrichtLinks(model, new VorgangMailInfo(vorgang, false)); } } } -- GitLab From 695dd6cc26af32ad7ce746679f12052fc9d2958a Mon Sep 17 00:00:00 2001 From: Krzysztof <krzysztof.witukiewicz@mgm-tp.com> Date: Fri, 11 Apr 2025 17:18:34 +0200 Subject: [PATCH 3/3] OZG-7773 OZG-8079 Renamings --- .../alfa/postfach/PostfachMailModelAssembler.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/postfach/PostfachMailModelAssembler.java b/alfa-service/src/main/java/de/ozgcloud/alfa/postfach/PostfachMailModelAssembler.java index 6d73eb8ef1..7809011ca6 100644 --- a/alfa-service/src/main/java/de/ozgcloud/alfa/postfach/PostfachMailModelAssembler.java +++ b/alfa-service/src/main/java/de/ozgcloud/alfa/postfach/PostfachMailModelAssembler.java @@ -116,10 +116,10 @@ class PostfachMailModelAssembler implements RepresentationModelAssembler<Postfac return postfachMails.stream().anyMatch(IS_INCOMING); } - void addPostfachNachrichtLinks(RepresentationModel<EntityModel<PostfachSettings>> model, VorgangMailInfo vorgangInfo) { - var vorgangId = vorgangInfo.vorgang.getId(); + void addPostfachNachrichtLinks(RepresentationModel<EntityModel<PostfachSettings>> model, VorgangMailInfo vorgangMailInfo) { + var vorgangId = vorgangMailInfo.vorgang.getId(); - if (vorgangController.isEditable(vorgangInfo.vorgang)) { + if (vorgangController.isEditable(vorgangMailInfo.vorgang)) { model.add(linkTo(methodOn(PostfachMailCommandByVorgangController.class).sendPostfachMail(vorgangId, null)) .withRel(REL_SEND_POSTFACH_MAIL)); } @@ -127,9 +127,9 @@ class PostfachMailModelAssembler implements RepresentationModelAssembler<Postfac model.add(linkTo(BinaryFileController.class).slash(vorgangId).slash(POSTFACH_NACHRICHT_ATTACHMENT_FIELD).slash(FILE_PATH) .withRel(REL_UPLOAD_ATTACHMENT)); - if (vorgangInfo.vorgang.isHasNewPostfachNachricht()) { + if (vorgangMailInfo.vorgang.isHasNewPostfachNachricht()) { model.add(linkTo(VorgangController.class).slash(vorgangId).slash(HAS_NEW_POSTFACH_NACHRICHT_FIELD).withRel(REL_RESET_NEW_POSTFACH_MAIL)); - } else if (vorgangInfo.hasIncomingMails()) { + } else if (vorgangMailInfo.hasIncomingMails()) { model.add(linkTo(VorgangController.class).slash(vorgangId).slash(HAS_NEW_POSTFACH_NACHRICHT_FIELD).withRel(REL_SET_HAS_NEW_POSTFACH_MAIL)); } } -- GitLab