diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/AntragraumProxyMapper.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/AntragraumProxyMapper.java index 9f6c502216aa3734f64d0039d2f5a128a2cd7869..d88c4a1f26d78c819dd373d5651120cc7647eb20 100644 --- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/AntragraumProxyMapper.java +++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/AntragraumProxyMapper.java @@ -34,7 +34,6 @@ import de.ozgcloud.antragsraum.proxy.AntragraumproxyGrpcRueckfrageAnswer; @Mapper interface AntragraumProxyMapper { - @Mapping(target = "rueckfrageId", source = "id") @Mapping(target = "answerText", source = "message") @Mapping(target = "attachmentFileId", expression = "java(mapAttachments(nachricht))") AntragraumproxyGrpcRueckfrageAnswer toRestProxyAntwort(ReplyNachricht nachricht); @@ -43,7 +42,7 @@ interface AntragraumProxyMapper { if (Objects.isNull(nachricht.attachments())) { return List.of(); } - + return nachricht.attachments().stream().map(OzgFile::id).toList(); } } diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtMapper.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtMapper.java index 039696e7823b24b9c34e1da5efbc1a9ee155bad9..f2fec2a82099a67d9fa676afdb548798b57908d4 100644 --- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtMapper.java +++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/NachrichtMapper.java @@ -103,8 +103,8 @@ class NachrichtMapper { return rueckfrage.getAnswers().stream() .map(answer -> { var builder = ReplyNachricht.builder() - .id(rueckfrage.getId()) - .antwortId(answer.getRueckfrageId()) + .id(answer.getRueckfrageId()) + .rueckfrageId(rueckfrage.getId()) .nachrichtEventId(id) .message(answer.getAnswerText()) .attachments(getAttachments(answer.getAttachmentFileId(), answer.getRueckfrageId(), id)); @@ -114,7 +114,7 @@ class NachrichtMapper { public AntragraumproxyGrpcRueckfrageAnswer toRestRueckfrageAnswer(final ReplyNachricht nachricht) { var antwort = new AntragraumproxyGrpcRueckfrageAnswer(); - antwort.setRueckfrageId(nachricht.id()); + antwort.setRueckfrageId(nachricht.rueckfrageId()); antwort.setAnswerText(nachricht.message()); if (Objects.nonNull(nachricht.attachments())) { diff --git a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/ReplyNachricht.java b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/ReplyNachricht.java index d22d0df368a4acc418bf01b828e41bb7cab9f62c..071cc1ad752021b551f7844c3dd1952f66a12b73 100644 --- a/server/src/main/java/de/ozgcloud/antragsraum/nachricht/ReplyNachricht.java +++ b/server/src/main/java/de/ozgcloud/antragsraum/nachricht/ReplyNachricht.java @@ -35,7 +35,7 @@ import lombok.Builder; @Builder(toBuilder = true) record ReplyNachricht( @Size(max = 24, message = "An id is too long") - @Schema(description = "The id of the Rückfrage", + @Schema(description = "The id of the Antwort", name = "id", type = "string", example = "66af924b4f1a2560298b45ab" @@ -43,13 +43,13 @@ record ReplyNachricht( @NotEmpty String id, @Size(max = 24, message = "An id is too long") - @Schema(description = "The id of the Antwort", + @Schema(description = "The id of the Rückfrage", name = "id", type = "string", example = "66af924b4f1a2560298b45ab" ) @NotEmpty - String antwortId, + String rueckfrageId, @Size(max = 36, message = "An id is too long") @Schema(description = "The id of the postfach", name = "postfachId", @@ -81,7 +81,7 @@ record ReplyNachricht( "postfachId='" + postfachId + '\'' + ", nachrichtEventId='" + nachrichtEventId + '\'' + ", id='" + id + '\'' + - ", antwortId='" + antwortId + '\'' + + ", rueckfrageId='" + rueckfrageId + '\'' + ", attachments=" + attachments + ", message=<...masked for privacy..>" + '}'; diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/AntragraumProxyMapperTest.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/AntragraumProxyMapperTest.java new file mode 100644 index 0000000000000000000000000000000000000000..66cad5b1ef50dceb4e8677734614761e580d057e --- /dev/null +++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/AntragraumProxyMapperTest.java @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2023-2024. + * Das Land Schleswig-Holstein vertreten durch den Ministerpräsidenten des Landes Schleswig-Holstein Staatskanzlei Abteilung Digitalisierung und zentrales IT-Management der Landesregierung + * + * Lizenziert unter der EUPL, Version 1.2 oder - sobald + * diese von der Europäischen Kommission genehmigt wurden - + * Folgeversionen der EUPL ("Lizenz"); + * Sie dürfen dieses Werk ausschließlich gemäß + * dieser Lizenz nutzen. + * Eine Kopie der Lizenz finden Sie hier: + * + * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * Sofern nicht durch anwendbare Rechtsvorschriften + * gefordert oder in schriftlicher Form vereinbart, wird + * die unter der Lizenz verbreitete Software "so wie sie + * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - + * ausdrücklich oder stillschweigend - verbreitet. + * Die sprachspezifischen Genehmigungen und Beschränkungen + * unter der Lizenz sind dem Lizenztext zu entnehmen. + */ + +package de.ozgcloud.antragsraum.nachricht; + +import static org.assertj.core.api.Assertions.*; + +import java.util.Collections; + +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; +import org.mapstruct.factory.Mappers; + +class AntragraumProxyMapperTest { + + private final AntragraumProxyMapper mapper = Mappers.getMapper(AntragraumProxyMapper.class); + + @Nested + class TestToRestProxyAntwort { + private final ReplyNachricht replyNachricht = ReplyNachrichtTestFactory.create(); + + @Test + void shouldHaveRueckfrageId() { + var grpcRueckfrageAnswer = mapper.toRestProxyAntwort(replyNachricht); + + assertThat(grpcRueckfrageAnswer.getRueckfrageId()).isEqualTo(ReplyNachrichtTestFactory.RUECKFRAGE_ID); + } + + @Test + void shouldHaveAnswerText() { + var grpcRueckfrageAnswer = mapper.toRestProxyAntwort(replyNachricht); + + assertThat(grpcRueckfrageAnswer.getAnswerText()).isEqualTo(ReplyNachrichtTestFactory.TEXT); + } + + @Test + void shouldHaveAttachmentFileId() { + var grpcRueckfrageAnswer = mapper.toRestProxyAntwort(replyNachricht); + + assertThat(grpcRueckfrageAnswer.getAttachmentFileId()).isEqualTo(Collections.emptyList()); + } + } + +} \ No newline at end of file diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtMapperTest.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtMapperTest.java index e4b967011ef35fd0de5b51901d23671997c2443f..f585a4ec6eb915ed0801b524961de49191fe2c22 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtMapperTest.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtMapperTest.java @@ -183,7 +183,7 @@ class NachrichtMapperTest { void shouldMapAnswerNachrichtId() { var nachricht = mapper.fromRestRueckfrage(answeredRueckfrage, NachrichtTestFactory.NACHRICHT_EVENT_ID); - assertThat(nachricht.replyNachrichten().getFirst().antwortId()).isEqualTo(AntragraumproxyGrpcRueckfrageTestFactory.ANSWER_ID); + assertThat(nachricht.replyNachrichten().getFirst().id()).isEqualTo(AntragraumproxyGrpcRueckfrageTestFactory.ANSWER_ID); } @Test diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenControllerITCase.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenControllerITCase.java index c50db1e212f58992e3f1ebed9230a78279349a92..e56cb39db2d08a57d4fca5adb36323daef352f8a 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenControllerITCase.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/NachrichtenControllerITCase.java @@ -230,16 +230,16 @@ public class NachrichtenControllerITCase { class TestSendingInvalidReply { @Test @WithMockUser - void shouldNotSendNachrichtBlankId() throws Exception { - var invalidMsg = ReplyNachrichtTestFactory.createBuilder().id("").build(); + void shouldNotSendNachrichtBlankRueckfrageId() throws Exception { + var invalidMsg = ReplyNachrichtTestFactory.createBuilder().rueckfrageId("").build(); performPutRequest(mapper.writeValueAsString(invalidMsg)).andExpect(status().isBadRequest()); } @Test @WithMockUser - void shouldHandleInvalidId() throws Exception { - var invalidMsg = msg.toBuilder().id("id_that_is_too_long_123456789").build(); + void shouldHandleInvalidRueckfrageId() throws Exception { + var invalidMsg = msg.toBuilder().rueckfrageId("id_that_is_too_long_123456789").build(); performPutRequest(mapper.writeValueAsString(invalidMsg)).andExpect(status().isBadRequest()); } diff --git a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/ReplyNachrichtTestFactory.java b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/ReplyNachrichtTestFactory.java index 072cc052aa28adf3def265ca47a54e4eb2dcb417..e0b0bf7a544a6a045a0a26076cad35a9a9bc65d0 100644 --- a/server/src/test/java/de/ozgcloud/antragsraum/nachricht/ReplyNachrichtTestFactory.java +++ b/server/src/test/java/de/ozgcloud/antragsraum/nachricht/ReplyNachrichtTestFactory.java @@ -23,7 +23,7 @@ package de.ozgcloud.antragsraum.nachricht; public class ReplyNachrichtTestFactory { public static final String ID = "60af924b4f1a2560298b4567"; - public static final String ANTWORT_ID = "60af924b4f1a2560298b4568"; + public static final String RUECKFRAGE_ID = "60af924b4f1a2560298b4568"; public static final String NACHRICHT_EVENT_ID = "60af924b4f1a2560298b4569"; public static final String TEXT = "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam"; @@ -34,7 +34,7 @@ public class ReplyNachrichtTestFactory { static ReplyNachricht.ReplyNachrichtBuilder createBuilder() { return ReplyNachricht.builder() .id(ID) - .antwortId(ANTWORT_ID) + .rueckfrageId(RUECKFRAGE_ID) .nachrichtEventId(NACHRICHT_EVENT_ID) .postfachId(NachrichtTestFactory.POSTFACH_ID) .message(TEXT);