diff --git a/src/main/java/uk/gov/hmcts/probate/service/CaseQueryService.java b/src/main/java/uk/gov/hmcts/probate/service/CaseQueryService.java index ce845417af..d3500b4eae 100644 --- a/src/main/java/uk/gov/hmcts/probate/service/CaseQueryService.java +++ b/src/main/java/uk/gov/hmcts/probate/service/CaseQueryService.java @@ -263,7 +263,7 @@ private ReturnedCases runQuery(String jsonQuery, CaseType caseType) { tokenHeaders = new HttpHeaders(); tokenHeaders.setContentType(MediaType.APPLICATION_JSON); tokenHeaders.add(SERVICE_AUTH, "Bearer " + serviceAuthTokenGenerator.generate()); - tokenHeaders.add(AUTHORIZATION, securityUtils.getCaseworkerToken()); + tokenHeaders.add(AUTHORIZATION, securityUtils.getSchedulerToken()); log.info("DONE securityUtils.getCaseworkerToken()"); } finally { entity = new HttpEntity<>(jsonQuery, tokenHeaders); diff --git a/src/main/java/uk/gov/hmcts/probate/service/NotificationService.java b/src/main/java/uk/gov/hmcts/probate/service/NotificationService.java index a293cf6995..f54e4b0245 100644 --- a/src/main/java/uk/gov/hmcts/probate/service/NotificationService.java +++ b/src/main/java/uk/gov/hmcts/probate/service/NotificationService.java @@ -330,7 +330,13 @@ public SendEmailResponse sendSmeeAndFordEmail(List caseDeta public void sendDisposalReminderEmail(ReturnedCaseDetails caseDetails) throws NotificationClientException { log.info("Sending Disposal Reminder email"); String emailAddress = Optional.ofNullable(caseDetails.getData()) - .map(this::getEmail) + .flatMap(data -> { + try { + return Optional.ofNullable(getEmail(data)); + } catch (BadRequestException e) { + return Optional.empty(); + } + }) .orElseGet(() -> getUserEmail(caseDetails.getId())); if (emailAddress == null) { @@ -566,14 +572,18 @@ private SendEmailResponse getSendEmailResponse(State state, String templateId, S } private String getEmail(CaseData caseData) { - switch (caseData.getApplicationType()) { - case SOLICITOR: - return caseData.getSolsSolicitorEmail().toLowerCase(); - case PERSONAL: - return caseData.getPrimaryApplicantEmailAddress().toLowerCase(); - default: - throw new BadRequestException("Unsupported application type"); + if (caseData == null || caseData.getApplicationType() == null) { + throw new BadRequestException("Casedata or ApplicationType is null"); } + return switch (caseData.getApplicationType()) { + case SOLICITOR -> Optional.ofNullable(caseData.getSolsSolicitorEmail()) + .map(String::toLowerCase) + .orElse(null); + case PERSONAL -> Optional.ofNullable(caseData.getPrimaryApplicantEmailAddress()) + .map(String::toLowerCase) + .orElse(null); + default -> throw new BadRequestException("Unsupported application type"); + }; } private String getUserEmail(Long caseReference) { diff --git a/src/main/java/uk/gov/hmcts/probate/service/RetainAndDisposalService.java b/src/main/java/uk/gov/hmcts/probate/service/RetainAndDisposalService.java index 9c7269b518..7440015f73 100644 --- a/src/main/java/uk/gov/hmcts/probate/service/RetainAndDisposalService.java +++ b/src/main/java/uk/gov/hmcts/probate/service/RetainAndDisposalService.java @@ -40,7 +40,7 @@ public void sendEmailForInactiveCase(String switchDate, String runDate, long ina log.info("Sending email for case id: {}", caseDetails.getId()); try { notificationService.sendDisposalReminderEmail(caseDetails); - } catch (NotificationClientException e) { + } catch (NotificationClientException | RuntimeException e) { log.info("Error sending email for case id: {}", caseDetails.getId()); failedCases.add(caseDetails.getId()); } diff --git a/src/test/java/uk/gov/hmcts/probate/service/CaseQueryServiceTest.java b/src/test/java/uk/gov/hmcts/probate/service/CaseQueryServiceTest.java index 7f37df450e..1c0fd88611 100644 --- a/src/test/java/uk/gov/hmcts/probate/service/CaseQueryServiceTest.java +++ b/src/test/java/uk/gov/hmcts/probate/service/CaseQueryServiceTest.java @@ -69,7 +69,7 @@ public void setUp() { MockitoAnnotations.openMocks(this); when(serviceAuthTokenGenerator.generate()).thenReturn("Bearer 321"); - when(securityUtils.getCaseworkerToken()).thenReturn("Bearer 123"); + when(securityUtils.getSchedulerToken()).thenReturn("Bearer 123"); when(headers.getAuthorizationHeaders()).thenReturn(new HttpHeaders()); when(ccdDataStoreAPIConfiguration.getHost()).thenReturn("http://localhost");