diff --git a/src/main/java/de/bund/digitalservice/a2j/controller/SubscriberController.java b/src/main/java/de/bund/digitalservice/a2j/controller/SubscriberController.java index 3d69d58..34e39ef 100644 --- a/src/main/java/de/bund/digitalservice/a2j/controller/SubscriberController.java +++ b/src/main/java/de/bund/digitalservice/a2j/controller/SubscriberController.java @@ -4,6 +4,8 @@ import de.bund.digitalservice.a2j.service.subscriber.SubscriberService; import dev.fitko.fitconnect.api.domain.model.callback.NewSubmissionsCallback; import dev.fitko.fitconnect.api.domain.model.submission.SubmissionForPickup; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; @@ -17,13 +19,15 @@ public SubscriberController(SubscriberService service) { this.service = service; } + private static final Logger logger = LoggerFactory.getLogger(SubscriberController.class); + @PostMapping("callbacks/fit-connect") public void newSubmission(@RequestBody NewSubmissionsCallback callback) { for (SubmissionForPickup submissionForPickup : callback.getSubmissions()) { try { service.pickUpSubmission(submissionForPickup); } catch (EgvpClientException e) { - throw new RuntimeException(e.getMessage()); + logger.error("unable to propagate submission {}", submissionForPickup.getSubmissionId(), e); } } } diff --git a/src/main/java/de/bund/digitalservice/a2j/repository/egvp/MessagesInTransitInMemoryRepository.java b/src/main/java/de/bund/digitalservice/a2j/repository/egvp/MessagesInTransitInMemoryRepository.java index a8bde5e..a7ebf35 100644 --- a/src/main/java/de/bund/digitalservice/a2j/repository/egvp/MessagesInTransitInMemoryRepository.java +++ b/src/main/java/de/bund/digitalservice/a2j/repository/egvp/MessagesInTransitInMemoryRepository.java @@ -6,7 +6,7 @@ @Component public class MessagesInTransitInMemoryRepository implements MessagesInTransitRepository { - public Set messages = new HashSet<>(); + private final Set messages = new HashSet<>(); public Set getAll() { return messages; diff --git a/src/main/java/de/bund/digitalservice/a2j/service/egvp/EgvpOutboxService.java b/src/main/java/de/bund/digitalservice/a2j/service/egvp/EgvpOutboxService.java index 8a414d0..36227df 100644 --- a/src/main/java/de/bund/digitalservice/a2j/service/egvp/EgvpOutboxService.java +++ b/src/main/java/de/bund/digitalservice/a2j/service/egvp/EgvpOutboxService.java @@ -52,6 +52,7 @@ public void retrieveDeliveryStatus() { try { MessageDeliveryStatusResponse response = this.client.checkMessageStatus(m.userId(), m.customId()); + if (response.delivered()) { deliveredMessages.add(m); // TODO send confirmation file to user diff --git a/src/main/java/de/bund/digitalservice/a2j/service/egvp/client/EgvpClient.java b/src/main/java/de/bund/digitalservice/a2j/service/egvp/client/EgvpClient.java index b8bd7da..7f95ee4 100644 --- a/src/main/java/de/bund/digitalservice/a2j/service/egvp/client/EgvpClient.java +++ b/src/main/java/de/bund/digitalservice/a2j/service/egvp/client/EgvpClient.java @@ -48,7 +48,7 @@ private T invoke(Operation operation) throws EgvpClientException { serverErrorException.getStatusCode().toString(), serverErrorException); } catch (RestClientException ex) { - throw new EgvpClientException(ex.getMessage().toString(), ex); + throw new EgvpClientException(ex.getMessage(), ex); } } } diff --git a/src/test/java/de/bund/digitalservice/a2j/integration/EgvpClientIntegrationTest.java b/src/test/java/de/bund/digitalservice/a2j/integration/EgvpClientIntegrationTest.java index a88e4cd..b484967 100644 --- a/src/test/java/de/bund/digitalservice/a2j/integration/EgvpClientIntegrationTest.java +++ b/src/test/java/de/bund/digitalservice/a2j/integration/EgvpClientIntegrationTest.java @@ -26,7 +26,7 @@ // only extend with SpringExtension to avoid loading the whole Application context @ExtendWith(SpringExtension.class) @Tag("integration") -public class EgvpClientIntegrationTest { +class EgvpClientIntegrationTest { private EgvpClient client; diff --git a/src/test/java/de/bund/digitalservice/a2j/integration/ReceiverIntegrationTest.java b/src/test/java/de/bund/digitalservice/a2j/integration/ReceiverIntegrationTest.java index b70c8b8..b0e499c 100644 --- a/src/test/java/de/bund/digitalservice/a2j/integration/ReceiverIntegrationTest.java +++ b/src/test/java/de/bund/digitalservice/a2j/integration/ReceiverIntegrationTest.java @@ -84,7 +84,7 @@ void shouldSecureCallbackWithAuthorization() throws EgvpClientException { } @Test - void shouldSecureCallbackWithoutAuthorization() throws EgvpClientException { + void shouldSecureCallbackWithoutAuthorization() { when(senderClient.validateCallback(any(), any(), any(), any())) .thenReturn(ValidationResult.error("invalid callback")); diff --git a/src/test/java/de/bund/digitalservice/a2j/service/egvp/EgvpOutboxServiceTest.java b/src/test/java/de/bund/digitalservice/a2j/service/egvp/EgvpOutboxServiceTest.java index 0b14be5..bfc0f28 100644 --- a/src/test/java/de/bund/digitalservice/a2j/service/egvp/EgvpOutboxServiceTest.java +++ b/src/test/java/de/bund/digitalservice/a2j/service/egvp/EgvpOutboxServiceTest.java @@ -13,12 +13,12 @@ import org.springframework.test.context.junit.jupiter.SpringExtension; @ExtendWith(SpringExtension.class) -public class EgvpOutboxServiceTest { +class EgvpOutboxServiceTest { @MockBean private EgvpClient egvpClient; @Test - public void sendMessageTest() throws EgvpClientException { + void sendMessageTest() throws EgvpClientException { MessagesInTransitRepository repo = new MessagesInTransitInMemoryRepository(); EgvpOutboxService service = new EgvpOutboxService(egvpClient, repo); @@ -40,7 +40,7 @@ public void sendMessageTest() throws EgvpClientException { } @Test - public void retrieveDeliveredMessage() throws EgvpClientException { + void retrieveDeliveredMessage() throws EgvpClientException { MessagesInTransitRepository repo = new MessagesInTransitInMemoryRepository(); repo.add(new MessageInTransit("userId", "customId", "mailboxId")); @@ -54,7 +54,7 @@ public void retrieveDeliveredMessage() throws EgvpClientException { } @Test - public void keepPendingMessagesInTransit() throws EgvpClientException { + void keepPendingMessagesInTransit() throws EgvpClientException { MessagesInTransitRepository repo = new MessagesInTransitInMemoryRepository(); MessageInTransit msg = new MessageInTransit("userId", "customId", "mailboxId"); repo.add(msg); @@ -68,7 +68,7 @@ public void keepPendingMessagesInTransit() throws EgvpClientException { } @Test - public void deleteInTransitMessagesOnFailure() throws EgvpClientException { + void deleteInTransitMessagesOnFailure() throws EgvpClientException { MessagesInTransitRepository repo = new MessagesInTransitInMemoryRepository(); MessageInTransit msg = new MessageInTransit("userId", "customId", "mailboxId"); repo.add(msg); diff --git a/src/test/java/de/bund/digitalservice/a2j/service/subscriber/FitConnectSubscriberServiceTest.java b/src/test/java/de/bund/digitalservice/a2j/service/subscriber/FitConnectSubscriberServiceTest.java index 098f55a..854479c 100644 --- a/src/test/java/de/bund/digitalservice/a2j/service/subscriber/FitConnectSubscriberServiceTest.java +++ b/src/test/java/de/bund/digitalservice/a2j/service/subscriber/FitConnectSubscriberServiceTest.java @@ -9,7 +9,6 @@ import dev.fitko.fitconnect.api.domain.model.submission.SubmissionForPickup; import dev.fitko.fitconnect.api.domain.subscriber.ReceivedSubmission; import dev.fitko.fitconnect.client.SubscriberClient; -import java.io.IOException; import java.util.UUID; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -35,7 +34,7 @@ void setup() { } @Test - void testPickUpSubmission() throws IOException, EgvpClientException { + void testPickUpSubmission() throws EgvpClientException { when(client.requestSubmission(submissionForPickup)).thenReturn(receivedSubmission); UUID caseId = UUID.randomUUID(); when(receivedSubmission.getSubmissionId()).thenReturn(UUID.randomUUID());