diff --git a/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/NotificationEventResenderServiceDefault.java b/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/NotificationEventResenderServiceDefault.java index 82fbb39e7..3e7d65834 100644 --- a/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/NotificationEventResenderServiceDefault.java +++ b/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/NotificationEventResenderServiceDefault.java @@ -1,6 +1,7 @@ package it.pagopa.selfcare.onboarding.service; import com.microsoft.azure.functions.ExecutionContext; +import io.quarkus.runtime.util.ExceptionUtil; import it.pagopa.selfcare.onboarding.dto.ResendNotificationsFilters; import it.pagopa.selfcare.onboarding.entity.Onboarding; import jakarta.enterprise.context.ApplicationScoped; @@ -31,7 +32,11 @@ public ResendNotificationsFilters resendNotifications(ResendNotificationsFilters List onboardingsToResend = onboardingService.getOnboardingsToResend(filters, page, pageSize); context.getLogger().info(() -> String.format("Found: %s onboardings to send for page: %s ", onboardingsToResend.size(), page)); for (Onboarding onboarding : onboardingsToResend) { - notificationEventService.send(context, onboarding, null, filters.getNotificationEventTraceId()); + try { + notificationEventService.send(context, onboarding, null, filters.getNotificationEventTraceId()); + } catch (Exception e) { + context.getLogger().severe(() -> String.format("ERROR: Sending onboarding %s error: %s ", onboarding.getId(), ExceptionUtil.generateStackTrace(e))); + } } if(onboardingsToResend.isEmpty() || onboardingsToResend.size() < pageSize) { diff --git a/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/NotificationEventServiceDefault.java b/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/NotificationEventServiceDefault.java index 4a9d6a010..d1d6f6547 100644 --- a/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/NotificationEventServiceDefault.java +++ b/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/service/NotificationEventServiceDefault.java @@ -87,34 +87,29 @@ public void send(ExecutionContext context, Onboarding onboarding, QueueEvent que return; } - try { - context.getLogger().info(() -> String.format("Getting product info for onboarding with ID %s and productId %s", onboarding.getId(), onboarding.getProductId())); - Product product = productService.getProduct(onboarding.getProductId()); - if (product.getConsumers() == null || product.getConsumers().isEmpty()) { - context.getLogger().warning(() -> String.format("Node consumers is null or empty for product with ID %s", onboarding.getProductId())); - return; - } + context.getLogger().info(() -> String.format("Getting product info for onboarding with ID %s and productId %s", onboarding.getId(), onboarding.getProductId())); + Product product = productService.getProduct(onboarding.getProductId()); + if (product.getConsumers() == null || product.getConsumers().isEmpty()) { + context.getLogger().warning(() -> String.format("Node consumers is null or empty for product with ID %s", onboarding.getProductId())); + return; + } - if(Objects.isNull(queueEvent)) { - queueEvent = queueEventExaminer.determineEventType(onboarding); - } + if(Objects.isNull(queueEvent)) { + queueEvent = queueEventExaminer.determineEventType(onboarding); + } - context.getLogger().info(() -> String.format("Retrieving institution having ID %s", onboarding.getInstitution().getId())); - InstitutionResponse institution = institutionApi.retrieveInstitutionByIdUsingGET(onboarding.getInstitution().getId()); + context.getLogger().info(() -> String.format("Retrieving institution having ID %s", onboarding.getInstitution().getId())); + InstitutionResponse institution = institutionApi.retrieveInstitutionByIdUsingGET(onboarding.getInstitution().getId()); - Token token = tokenRepository.findByOnboardingId(onboarding.getId()).orElse(null); - NotificationsResources notificationsResources = new NotificationsResources(onboarding, institution, token, queueEvent); - for (String consumer : product.getConsumers()) { - NotificationConfig.Consumer consumerConfig = notificationConfig.consumers().get(consumer.toLowerCase()); - prepareAndSendNotification(context, product, consumerConfig, notificationsResources, notificationEventTraceId); - } - } catch (Exception e) { - context.getLogger().severe(String.format("Error sending notification for onboarding with ID %s %s", onboarding.getId(), Arrays.toString(e.getStackTrace()))); - telemetryClient.trackEvent(EVENT_ONBOARDING_FN_NAME, onboardingEventFailureMap(onboarding, e, notificationEventTraceId), Map.of(EVENT_ONBOARDING_INSTTITUTION_FN_FAILURE, 1D)); + Token token = tokenRepository.findByOnboardingId(onboarding.getId()).orElse(null); + NotificationsResources notificationsResources = new NotificationsResources(onboarding, institution, token, queueEvent); + for (String consumer : product.getConsumers()) { + NotificationConfig.Consumer consumerConfig = notificationConfig.consumers().get(consumer.toLowerCase()); + prepareAndSendNotification(context, product, consumerConfig, notificationsResources, notificationEventTraceId); } } - private void prepareAndSendNotification(ExecutionContext context, Product product, NotificationConfig.Consumer consumer, NotificationsResources notificationsResources, String notificationEventTraceId) throws JsonProcessingException { + private void prepareAndSendNotification(ExecutionContext context, Product product, NotificationConfig.Consumer consumer, NotificationsResources notificationsResources, String notificationEventTraceId) { NotificationBuilder notificationBuilder = notificationBuilderFactory.create(consumer); if (notificationBuilder.shouldSendNotification(notificationsResources.getOnboarding(), notificationsResources.getInstitution())) { NotificationToSend notificationToSend = notificationBuilder.buildNotificationToSend(notificationsResources.getOnboarding(), notificationsResources.getToken(), notificationsResources.getInstitution(), notificationsResources.getQueueEvent()); @@ -125,19 +120,22 @@ private void prepareAndSendNotification(ExecutionContext context, Product produc } } - private void sendNotification(ExecutionContext context, String topic, NotificationToSend notificationToSend, String notificationEventTraceId) throws JsonProcessingException { - String message = mapper.writeValueAsString(notificationToSend); - context.getLogger().info(() -> String.format("Sending notification on topic: %s with message: %s", topic, message)); - + private void sendNotification(ExecutionContext context, String topic, NotificationToSend notificationToSend, String notificationEventTraceId) { + String message = null; try { - eventHubRestClient.sendMessage(topic, message); - telemetryClient.trackEvent(EVENT_ONBOARDING_FN_NAME, notificationEventMap(notificationToSend, topic, notificationEventTraceId), Map.of(EVENT_ONBOARDING_INSTTITUTION_FN_SUCCESS, 1D)); - } catch (Exception e) { - throw new NotificationException(e.getMessage()); + message = mapper.writeValueAsString(notificationToSend); + } catch (JsonProcessingException e) { + throw new NotificationException("Notification cannot be serialized"); + } finally { + String finalMessage = message; + context.getLogger().info(() -> String.format("Sending notification on topic: %s with message: %s", topic, finalMessage)); } + + eventHubRestClient.sendMessage(topic, message); + telemetryClient.trackEvent(EVENT_ONBOARDING_FN_NAME, notificationEventMap(notificationToSend, topic, notificationEventTraceId), Map.of(EVENT_ONBOARDING_INSTTITUTION_FN_SUCCESS, 1D)); } - private void sendTestEnvProductsNotification(ExecutionContext context, Product product, String topic, NotificationToSend notificationToSend, String notificationEventTraceId) throws JsonProcessingException { + private void sendTestEnvProductsNotification(ExecutionContext context, Product product, String topic, NotificationToSend notificationToSend, String notificationEventTraceId) { context.getLogger().info(() -> String.format("Starting sendTestEnvProductsNotification with testEnv %s", product.getTestEnvProductIds())); if (product.getTestEnvProductIds() != null) { for (String testEnvProductId : product.getTestEnvProductIds()) { diff --git a/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/utils/BaseNotificationBuilder.java b/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/utils/BaseNotificationBuilder.java index bdc52e685..454d5fdab 100644 --- a/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/utils/BaseNotificationBuilder.java +++ b/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/utils/BaseNotificationBuilder.java @@ -119,7 +119,7 @@ public InstitutionToNotify retrieveInstitution(InstitutionResponse institution) if (Objects.nonNull(institution.getRootParent())) { rootParent.setId(institution.getRootParent().getId()); rootParent.setDescription(institution.getRootParent().getDescription()); - InstitutionResponse parentInstitution = coreInstitutionApi.retrieveInstitutionByIdUsingGET(institution.getId()); + InstitutionResponse parentInstitution = coreInstitutionApi.retrieveInstitutionByIdUsingGET(rootParent.getId()); rootParent.setOriginId(Objects.nonNull(parentInstitution) ? parentInstitution.getOriginId() : null); toNotify.setRootParent(rootParent); } @@ -153,18 +153,13 @@ private PaymentServiceProvider toSetPaymentServiceProvider(PaymentServiceProvide @Override public void retrieveAndSetGeographicData(InstitutionToNotify institution) { - try { - InstitutionResource institutionProxyInfo = proxyRegistryInstitutionApi.findInstitutionUsingGET(institution.getTaxCode(), null, null); - institution.setIstatCode(institutionProxyInfo.getIstatCode()); - institution.setCategory(institutionProxyInfo.getCategory()); - GeographicTaxonomyResource geographicTaxonomies = geographicTaxonomiesApi.retrieveGeoTaxonomiesByCodeUsingGET(institutionProxyInfo.getIstatCode()); - institution.setCounty(geographicTaxonomies.getProvinceAbbreviation()); - institution.setCountry(geographicTaxonomies.getCountryAbbreviation()); - institution.setCity(geographicTaxonomies.getDesc().replace(DESCRIPTION_TO_REPLACE_REGEX, "")); - } catch (Exception e) { - log.warn("Error while searching institution {} on IPA, {} ", institution.getTaxCode(), e.getMessage()); - institution.setIstatCode(null); - } + InstitutionResource institutionProxyInfo = proxyRegistryInstitutionApi.findInstitutionUsingGET(institution.getTaxCode(), null, null); + institution.setIstatCode(institutionProxyInfo.getIstatCode()); + institution.setCategory(institutionProxyInfo.getCategory()); + GeographicTaxonomyResource geographicTaxonomies = geographicTaxonomiesApi.retrieveGeoTaxonomiesByCodeUsingGET(institutionProxyInfo.getIstatCode()); + institution.setCounty(geographicTaxonomies.getProvinceAbbreviation()); + institution.setCountry(geographicTaxonomies.getCountryAbbreviation()); + institution.setCity(geographicTaxonomies.getDesc().replace(DESCRIPTION_TO_REPLACE_REGEX, "")); } @Override diff --git a/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/utils/SapNotificationBuilder.java b/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/utils/SapNotificationBuilder.java index ce908ea97..e73d36383 100644 --- a/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/utils/SapNotificationBuilder.java +++ b/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/utils/SapNotificationBuilder.java @@ -80,40 +80,35 @@ public InstitutionToNotify retrieveInstitution(InstitutionResponse institution) } @Override public void retrieveAndSetGeographicData(InstitutionToNotify institutionToNotify) { - try { - GeographicTaxonomyResource geographicTaxonomies; - if (institutionToNotify.getSubUnitType() != null) { - switch (Objects.requireNonNull(institutionToNotify.getSubUnitType())) { - case "UO" -> { - UOResource organizationUnit = proxyRegistryUoApi.findByUnicodeUsingGET1(institutionToNotify.getSubUnitCode(), null); - institutionToNotify.setIstatCode(organizationUnit.getCodiceComuneISTAT()); - geographicTaxonomies = geographicTaxonomiesApi.retrieveGeoTaxonomiesByCodeUsingGET(organizationUnit.getCodiceComuneISTAT()); - } - case "AOO" -> { - AOOResource homogeneousOrganizationalArea = proxyRegistryAooApi.findByUnicodeUsingGET(institutionToNotify.getSubUnitCode(), null); - institutionToNotify.setIstatCode(homogeneousOrganizationalArea.getCodiceComuneISTAT()); - geographicTaxonomies = geographicTaxonomiesApi.retrieveGeoTaxonomiesByCodeUsingGET(homogeneousOrganizationalArea.getCodiceComuneISTAT()); - } - default -> { - InstitutionResource proxyInfo = proxyRegistryInstitutionApi.findInstitutionUsingGET(institutionToNotify.getTaxCode(), null, null); - institutionToNotify.setIstatCode(proxyInfo.getIstatCode()); - geographicTaxonomies = geographicTaxonomiesApi.retrieveGeoTaxonomiesByCodeUsingGET(proxyInfo.getIstatCode()); - } + GeographicTaxonomyResource geographicTaxonomies; + if (institutionToNotify.getSubUnitType() != null) { + switch (Objects.requireNonNull(institutionToNotify.getSubUnitType())) { + case "UO" -> { + UOResource organizationUnit = proxyRegistryUoApi.findByUnicodeUsingGET1(institutionToNotify.getSubUnitCode(), null); + institutionToNotify.setIstatCode(organizationUnit.getCodiceComuneISTAT()); + geographicTaxonomies = geographicTaxonomiesApi.retrieveGeoTaxonomiesByCodeUsingGET(organizationUnit.getCodiceComuneISTAT()); + } + case "AOO" -> { + AOOResource homogeneousOrganizationalArea = proxyRegistryAooApi.findByUnicodeUsingGET(institutionToNotify.getSubUnitCode(), null); + institutionToNotify.setIstatCode(homogeneousOrganizationalArea.getCodiceComuneISTAT()); + geographicTaxonomies = geographicTaxonomiesApi.retrieveGeoTaxonomiesByCodeUsingGET(homogeneousOrganizationalArea.getCodiceComuneISTAT()); + } + default -> { + InstitutionResource proxyInfo = proxyRegistryInstitutionApi.findInstitutionUsingGET(institutionToNotify.getTaxCode(), null, null); + institutionToNotify.setIstatCode(proxyInfo.getIstatCode()); + geographicTaxonomies = geographicTaxonomiesApi.retrieveGeoTaxonomiesByCodeUsingGET(proxyInfo.getIstatCode()); } - } else { - InstitutionResource proxyInfo = proxyRegistryInstitutionApi.findInstitutionUsingGET(institutionToNotify.getTaxCode(), null, null); - institutionToNotify.setIstatCode(proxyInfo.getIstatCode()); - geographicTaxonomies = geographicTaxonomiesApi.retrieveGeoTaxonomiesByCodeUsingGET(proxyInfo.getIstatCode()); } + } else { + InstitutionResource proxyInfo = proxyRegistryInstitutionApi.findInstitutionUsingGET(institutionToNotify.getTaxCode(), null, null); + institutionToNotify.setIstatCode(proxyInfo.getIstatCode()); + geographicTaxonomies = geographicTaxonomiesApi.retrieveGeoTaxonomiesByCodeUsingGET(proxyInfo.getIstatCode()); + } - if (geographicTaxonomies != null) { - institutionToNotify.setCounty(geographicTaxonomies.getProvinceAbbreviation()); - institutionToNotify.setCountry(geographicTaxonomies.getCountryAbbreviation()); - institutionToNotify.setCity(geographicTaxonomies.getDesc().replace(DESCRIPTION_TO_REPLACE_REGEX, "")); - } - } catch (Exception e) { - log.warn("Error while searching institution {} on IPA, {} ", institutionToNotify.getDescription(), e.getMessage()); - institutionToNotify.setIstatCode(null); + if (geographicTaxonomies != null) { + institutionToNotify.setCounty(geographicTaxonomies.getProvinceAbbreviation()); + institutionToNotify.setCountry(geographicTaxonomies.getCountryAbbreviation()); + institutionToNotify.setCity(geographicTaxonomies.getDesc().replace(DESCRIPTION_TO_REPLACE_REGEX, "")); } } @Override diff --git a/apps/onboarding-functions/src/main/resources/application.properties b/apps/onboarding-functions/src/main/resources/application.properties index be555064e..d341198c9 100644 --- a/apps/onboarding-functions/src/main/resources/application.properties +++ b/apps/onboarding-functions/src/main/resources/application.properties @@ -39,15 +39,21 @@ onboarding-functions.force-institution-persist= ${FORCE_INSTITUTION_PERSIST:fals ## REST CLIENT # +quarkus.rest-client.logging.scope=request-response +quarkus.rest-client.logging.body-limit=50 + +quarkus.log.category."org.jboss.resteasy.reactive.client.logging".level=INFO quarkus.openapi-generator.user_registry_json.auth.api_key.api-key = ${USER_REGISTRY_API_KEY:example-api-key} quarkus.rest-client."org.openapi.quarkus.user_registry_json.api.UserApi".url=${USER_REGISTRY_URL:http://localhost:8080} -quarkus.rest-client."org.openapi.quarkus.user_registry_json.api.UserApi".read-timeout=5000 +quarkus.rest-client."org.openapi.quarkus.user_registry_json.api.UserApi".read-timeout=10000 +quarkus.rest-client."org.openapi.quarkus.user_registry_json.api.UserApi".connection-pool-size=1024 quarkus.openapi-generator.codegen.spec.core_json.enable-security-generation=false quarkus.openapi-generator.codegen.spec.core_json.additional-api-type-annotations=@org.eclipse.microprofile.rest.client.annotation.RegisterClientHeaders(it.pagopa.selfcare.onboarding.client.auth.AuthenticationPropagationHeadersFactory.class) quarkus.rest-client."org.openapi.quarkus.core_json.api.InstitutionApi".url=${MS_CORE_URL:http://localhost:8080} quarkus.rest-client."org.openapi.quarkus.core_json.api.InstitutionApi".read-timeout=60000 +quarkus.rest-client."org.openapi.quarkus.core_json.api.InstitutionApi".connection-pool-size=1024 quarkus.rest-client."org.openapi.quarkus.core_json.api.DelegationApi".url=${MS_CORE_URL:http://localhost:8080} quarkus.rest-client."org.openapi.quarkus.core_json.api.DelegationApi".read-timeout=60000 @@ -55,6 +61,7 @@ quarkus.openapi-generator.codegen.spec.user_json.enable-security-generation=fals quarkus.openapi-generator.codegen.spec.user_json.additional-api-type-annotations=@org.eclipse.microprofile.rest.client.annotation.RegisterClientHeaders(it.pagopa.selfcare.onboarding.client.auth.AuthenticationPropagationHeadersFactory.class) quarkus.rest-client."org.openapi.quarkus.user_json.api.UserApi".url=${MS_USER_URL:http://localhost:8081} quarkus.rest-client."org.openapi.quarkus.user_json.api.UserApi".read-timeout=60000 +quarkus.rest-client."org.openapi.quarkus.user_json.api.UserApi".connection-pool-size=1024 quarkus.openapi-generator.codegen.spec.party_registry_proxy_json.enable-security-generation=false quarkus.openapi-generator.codegen.spec.party_registry_proxy_json.additional-api-type-annotations=@org.eclipse.microprofile.rest.client.annotation.RegisterClientHeaders(it.pagopa.selfcare.onboarding.client.auth.AuthenticationPropagationHeadersFactory.class) diff --git a/apps/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/NotificationEventResenderServiceDefaultTest.java b/apps/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/NotificationEventResenderServiceDefaultTest.java index c47bd402c..e6b4f1b7b 100644 --- a/apps/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/NotificationEventResenderServiceDefaultTest.java +++ b/apps/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/NotificationEventResenderServiceDefaultTest.java @@ -5,11 +5,13 @@ import io.quarkus.test.junit.QuarkusTest; import it.pagopa.selfcare.onboarding.dto.ResendNotificationsFilters; import it.pagopa.selfcare.onboarding.entity.Onboarding; +import it.pagopa.selfcare.onboarding.exception.NotificationException; import jakarta.inject.Inject; import org.junit.jupiter.api.Test; import java.util.ArrayList; import java.util.List; +import java.util.logging.Logger; import static it.pagopa.selfcare.onboarding.TestUtils.getMockedContext; import static org.junit.jupiter.api.Assertions.*; @@ -64,6 +66,25 @@ void resendNotificationsEndsIncrementingPageIfIsWorkingOnIntermediatePage() { assertEquals(1, resendNotificationsFilters.getPage()); } + @Test + void resendNotificationsActivityException() { + ExecutionContext context = mock(ExecutionContext.class); + doReturn(Logger.getGlobal()).when(context).getLogger(); + + doThrow(new NotificationException("Error")).when(notificationEventService).send(any(), any(), any(), any()); + + List onboardings = new ArrayList<>(); + onboardings.add(new Onboarding()); + when(onboardingService.getOnboardingsToResend(any(), anyInt(), anyInt())).thenReturn(onboardings); + + ResendNotificationsFilters resendNotificationsFilters = new ResendNotificationsFilters(); + resendNotificationsFilters.setProductId("prod-pagopa"); + + ResendNotificationsFilters nextFilter = notificationEventResenderServiceDefault.resendNotifications(resendNotificationsFilters, context); + + assertNull(nextFilter); + } + private List mockOnboardingList(int size) { List onboardings = new ArrayList<>(); for (int i = 0; i < size; i++) { diff --git a/apps/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/NotificationEventServiceDefaultTest.java b/apps/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/NotificationEventServiceDefaultTest.java index 4e1dd424f..afda1a9fe 100644 --- a/apps/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/NotificationEventServiceDefaultTest.java +++ b/apps/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/NotificationEventServiceDefaultTest.java @@ -1,5 +1,8 @@ package it.pagopa.selfcare.onboarding.service; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.microsoft.applicationinsights.TelemetryClient; import com.microsoft.azure.functions.ExecutionContext; import io.quarkus.test.InjectMock; import io.quarkus.test.junit.QuarkusTest; @@ -21,6 +24,7 @@ import jakarta.inject.Inject; import org.eclipse.microprofile.rest.client.inject.RestClient; import org.junit.jupiter.api.Test; +import org.mockito.Mockito; import org.openapi.quarkus.core_json.api.InstitutionApi; import org.openapi.quarkus.core_json.model.InstitutionResponse; @@ -29,6 +33,7 @@ import java.util.Optional; import java.util.logging.Logger; +import static it.pagopa.selfcare.onboarding.TestUtils.getMockedContext; import static org.junit.jupiter.api.Assertions.*; import static org.mockito.Mockito.*; @@ -36,7 +41,7 @@ public class NotificationEventServiceDefaultTest { @Inject - NotificationEventServiceDefault messageServiceDefault; + NotificationEventServiceDefault notificationServiceDefault; @InjectMock ProductService productService; @@ -70,7 +75,7 @@ void sendMessage() { ExecutionContext context = mock(ExecutionContext.class); doReturn(Logger.getGlobal()).when(context).getLogger(); doNothing().when(eventHubRestClient).sendMessage(anyString(), anyString()); - messageServiceDefault.send(context, onboarding, QueueEvent.ADD); + notificationServiceDefault.send(context, onboarding, QueueEvent.ADD); verify(eventHubRestClient, times(3)) .sendMessage(anyString(), anyString()); } @@ -87,7 +92,7 @@ void sendMessageWithoutQueueEvent() { doReturn(Logger.getGlobal()).when(context).getLogger(); doNothing().when(eventHubRestClient).sendMessage(anyString(), anyString()); when(queueEventExaminer.determineEventType(any())).thenReturn(QueueEvent.ADD); - messageServiceDefault.send(context, onboarding, null); + notificationServiceDefault.send(context, onboarding, null); verify(eventHubRestClient, times(3)) .sendMessage(anyString(), anyString()); } @@ -111,7 +116,7 @@ void sendMessageWithoutToken() { ExecutionContext context = mock(ExecutionContext.class); doReturn(Logger.getGlobal()).when(context).getLogger(); doNothing().when(eventHubRestClient).sendMessage(anyString(), anyString()); - messageServiceDefault.send(context, onboarding, QueueEvent.ADD); + notificationServiceDefault.send(context, onboarding, QueueEvent.ADD); verify(eventHubRestClient, times(3)) .sendMessage(anyString(), anyString()); } @@ -127,7 +132,7 @@ void sendMessageDoesntSendNotificationIfFilterDoesntAllow() { ExecutionContext context = mock(ExecutionContext.class); doReturn(Logger.getGlobal()).when(context).getLogger(); doNothing().when(eventHubRestClient).sendMessage(anyString(), anyString()); - messageServiceDefault.send(context, onboarding, QueueEvent.ADD); + notificationServiceDefault.send(context, onboarding, QueueEvent.ADD); verifyNoInteractions(eventHubRestClient); } @@ -143,7 +148,7 @@ void sendMessageWithTestEnvProducts() { ExecutionContext context = mock(ExecutionContext.class); doReturn(Logger.getGlobal()).when(context).getLogger(); doNothing().when(eventHubRestClient).sendMessage(anyString(), anyString()); - messageServiceDefault.send(context, onboarding, QueueEvent.ADD); + notificationServiceDefault.send(context, onboarding, QueueEvent.ADD); verify(eventHubRestClient, times(9)) .sendMessage(anyString(), anyString()); } @@ -160,7 +165,7 @@ void sendMessageWithError() { .when(eventHubRestClient).sendMessage(anyString(), anyString()); ExecutionContext context = mock(ExecutionContext.class); doReturn(Logger.getGlobal()).when(context).getLogger(); - assertDoesNotThrow(() -> messageServiceDefault.send(context, onboarding, QueueEvent.ADD)); + assertThrows(NotificationException.class, () -> notificationServiceDefault.send(context, onboarding, QueueEvent.ADD)); verify(eventHubRestClient, times(1)) .sendMessage(anyString(), anyString()); } @@ -173,7 +178,7 @@ void sendMessageNullConsumers() { when(productService.getProduct(any())).thenReturn(test); ExecutionContext context = mock(ExecutionContext.class); doReturn(Logger.getGlobal()).when(context).getLogger(); - messageServiceDefault.send(context, onboarding, QueueEvent.ADD); + notificationServiceDefault.send(context, onboarding, QueueEvent.ADD); verifyNoInteractions(eventHubRestClient); } @@ -185,7 +190,7 @@ void sendMessageWontProceedsWhenOnboardingIsNotReferredToInstitution() { ExecutionContext context = mock(ExecutionContext.class); doReturn(Logger.getGlobal()).when(context).getLogger(); - messageServiceDefault.send(context, onboarding, QueueEvent.ADD); + notificationServiceDefault.send(context, onboarding, QueueEvent.ADD); verifyNoInteractions(productService); verifyNoInteractions(tokenRepository); verifyNoInteractions(institutionApi); @@ -285,6 +290,33 @@ void notificationEventMapRootParentTest() { assertEquals(properties.get("billing.TaxCodeInvoicing"), "456"); } + @Test + void sendNotificationsJsonError() { + final Onboarding onboarding = createOnboarding(); + final Product product = createProduct(); + when(productService.getProduct(any())).thenReturn(product); + + when(tokenRepository.findByOnboardingId(any())).thenReturn(Optional.of(new Token())); + when(institutionApi.retrieveInstitutionByIdUsingGET(any())).thenReturn(new InstitutionResponse()); + + BaseNotificationBuilder notificationMapper = mock(BaseNotificationBuilder.class); + when(notificationBuilderFactory.create(any())).thenReturn(notificationMapper); + + NotificationToSend mockNotificationToSend = mock(NotificationToSend.class); + when(mockNotificationToSend.toString()).thenReturn(mockNotificationToSend.getClass().getName()); + + when(notificationMapper.buildNotificationToSend(any(), any(), any(), any())).thenReturn(mockNotificationToSend); + when(notificationMapper.shouldSendNotification(any(), any())).thenReturn(true); + + ExecutionContext context = mock(ExecutionContext.class); + doReturn(Logger.getGlobal()).when(context).getLogger(); + doNothing().when(eventHubRestClient).sendMessage(anyString(), anyString()); + TelemetryClient telemetryClient = mock(TelemetryClient.class); + doNothing().when(telemetryClient).trackEvent(anyString(), any(), any()); + + assertThrows(NotificationException.class, () -> notificationServiceDefault.send(context, onboarding, QueueEvent.ADD)); + } + private Onboarding createOnboarding() { Onboarding onboarding = new Onboarding(); onboarding.setWorkflowType(WorkflowType.CONTRACT_REGISTRATION); diff --git a/apps/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/utils/SapNotificationBuilderTest.java b/apps/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/utils/SapNotificationBuilderTest.java index 2c499aa82..5e6e6aa42 100644 --- a/apps/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/utils/SapNotificationBuilderTest.java +++ b/apps/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/utils/SapNotificationBuilderTest.java @@ -263,21 +263,7 @@ void toNotificationToSendForEcWhenPartyRegistryThrowsException() { when(registryProxyInstitutionsApi.findInstitutionUsingGET(any(), any(), any())) .thenThrow(new RuntimeException("Error")); - NotificationToSend notification = sapNotificationBuilder.buildNotificationToSend(onboarding, token, institution, QueueEvent.ADD); - - assertNotNull(notification); - assertNull(notification.getClosedAt()); - assertEquals("ACTIVE", notification.getState()); - assertNotEquals(onboarding.getId(), notification.getId()); - assertEquals(onboarding.getActivatedAt(), notification.getCreatedAt().toLocalDateTime()); - assertEquals(onboarding.getActivatedAt(), notification.getUpdatedAt().toLocalDateTime()); - assertNull(notification.getBilling().getTaxCodeInvoicing()); - assertNull(notification.getBilling().isPublicServices()); - assertNull(notification.getNotificationType()); - assertEquals(NotificationType.ADD_INSTITUTE, notification.getType()); - assertNull(notification.getBilling().getTaxCodeInvoicing()); - assertEquals("taxCodeInvoicing", notification.getInstitution().getTaxCode()); - assertNull(notification.getInstitution().getIstatCode()); + assertThrows(RuntimeException.class, () -> sapNotificationBuilder.buildNotificationToSend(onboarding, token, institution, QueueEvent.ADD)); } @Test diff --git a/apps/onboarding-ms/src/main/docs/openapi.json b/apps/onboarding-ms/src/main/docs/openapi.json index e28a01fda..e1ee20d1e 100644 --- a/apps/onboarding-ms/src/main/docs/openapi.json +++ b/apps/onboarding-ms/src/main/docs/openapi.json @@ -1600,7 +1600,7 @@ } }, "InstitutionPaSubunitType" : { - "enum" : [ "AOO", "UO" ], + "enum" : [ "AOO", "UO", "EC" ], "type" : "string" }, "InstitutionPspRequest" : { diff --git a/apps/onboarding-ms/src/main/docs/openapi.yaml b/apps/onboarding-ms/src/main/docs/openapi.yaml index e2140ac76..5c6b7354d 100644 --- a/apps/onboarding-ms/src/main/docs/openapi.yaml +++ b/apps/onboarding-ms/src/main/docs/openapi.yaml @@ -1122,6 +1122,7 @@ components: enum: - AOO - UO + - EC type: string InstitutionPspRequest: required: diff --git a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/request/InstitutionBaseRequest.java b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/request/InstitutionBaseRequest.java index bb0cc5954..7360e7670 100644 --- a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/request/InstitutionBaseRequest.java +++ b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/request/InstitutionBaseRequest.java @@ -1,8 +1,8 @@ package it.pagopa.selfcare.onboarding.controller.request; +import it.pagopa.selfcare.onboarding.common.InstitutionPaSubunitType; import it.pagopa.selfcare.onboarding.common.InstitutionType; import it.pagopa.selfcare.onboarding.common.Origin; -import it.pagopa.selfcare.onboarding.util.InstitutionPaSubunitType; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.Data; diff --git a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/request/InstitutionImportRequest.java b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/request/InstitutionImportRequest.java index bcbdcfa04..6d281f8a2 100644 --- a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/request/InstitutionImportRequest.java +++ b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/request/InstitutionImportRequest.java @@ -1,8 +1,8 @@ package it.pagopa.selfcare.onboarding.controller.request; +import it.pagopa.selfcare.onboarding.common.InstitutionPaSubunitType; import it.pagopa.selfcare.onboarding.common.InstitutionType; import it.pagopa.selfcare.onboarding.common.Origin; -import it.pagopa.selfcare.onboarding.util.InstitutionPaSubunitType; import jakarta.validation.constraints.NotEmpty; import lombok.Data; diff --git a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/response/InstitutionResponse.java b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/response/InstitutionResponse.java index 3941a1664..6052b5ecf 100644 --- a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/response/InstitutionResponse.java +++ b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/response/InstitutionResponse.java @@ -1,11 +1,11 @@ package it.pagopa.selfcare.onboarding.controller.response; +import it.pagopa.selfcare.onboarding.common.InstitutionPaSubunitType; import it.pagopa.selfcare.onboarding.common.InstitutionType; import it.pagopa.selfcare.onboarding.common.Origin; import it.pagopa.selfcare.onboarding.controller.request.DataProtectionOfficerRequest; import it.pagopa.selfcare.onboarding.controller.request.GeographicTaxonomyDto; import it.pagopa.selfcare.onboarding.controller.request.PaymentServiceProviderRequest; -import it.pagopa.selfcare.onboarding.util.InstitutionPaSubunitType; import lombok.Data; import java.util.List; diff --git a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/entity/Institution.java b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/entity/Institution.java index a2f7ec15f..7fc08fb8d 100644 --- a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/entity/Institution.java +++ b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/entity/Institution.java @@ -1,8 +1,8 @@ package it.pagopa.selfcare.onboarding.entity; +import it.pagopa.selfcare.onboarding.common.InstitutionPaSubunitType; import it.pagopa.selfcare.onboarding.common.InstitutionType; import it.pagopa.selfcare.onboarding.common.Origin; -import it.pagopa.selfcare.onboarding.util.InstitutionPaSubunitType; import lombok.Data; import org.bson.codecs.pojo.annotations.BsonProperty; diff --git a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/service/AggregatesServiceDefault.java b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/service/AggregatesServiceDefault.java index e87b4932e..36670455e 100644 --- a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/service/AggregatesServiceDefault.java +++ b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/service/AggregatesServiceDefault.java @@ -5,6 +5,7 @@ import com.opencsv.enums.CSVReaderNullFieldIndicator; import io.smallrye.mutiny.Multi; import io.smallrye.mutiny.Uni; +import it.pagopa.selfcare.onboarding.common.InstitutionPaSubunitType; import it.pagopa.selfcare.onboarding.exception.InvalidRequestException; import it.pagopa.selfcare.onboarding.exception.ResourceNotFoundException; import it.pagopa.selfcare.onboarding.mapper.OnboardingMapper; @@ -12,7 +13,6 @@ import it.pagopa.selfcare.onboarding.model.CsvAggregate; import it.pagopa.selfcare.onboarding.model.RowError; import it.pagopa.selfcare.onboarding.model.VerifyAggregateResponse; -import it.pagopa.selfcare.onboarding.util.InstitutionPaSubunitType; import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; import jakarta.ws.rs.WebApplicationException; diff --git a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/service/OnboardingServiceDefault.java b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/service/OnboardingServiceDefault.java index db5f9db7f..d255de464 100644 --- a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/service/OnboardingServiceDefault.java +++ b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/service/OnboardingServiceDefault.java @@ -29,7 +29,6 @@ import it.pagopa.selfcare.onboarding.model.OnboardingGetFilters; import it.pagopa.selfcare.onboarding.service.strategy.OnboardingValidationStrategy; import it.pagopa.selfcare.onboarding.service.util.OnboardingUtils; -import it.pagopa.selfcare.onboarding.util.InstitutionPaSubunitType; import it.pagopa.selfcare.onboarding.util.QueryUtils; import it.pagopa.selfcare.onboarding.util.SortEnum; import it.pagopa.selfcare.product.entity.Product; @@ -1064,17 +1063,20 @@ public Uni checkManager(OnboardingUserRequest onboardingUserRequest) { .collect().asList() .onItem().transformToUni(this::getOnboardingList) .onItem().ifNull().failWith(resourceNotFoundExceptionSupplier(onboardingUserRequest)) - .onItem().transform(items -> - items.stream().map(onboarding -> onboarding.getUsers().stream() - .filter(userToOnboard -> PartyRole.MANAGER == userToOnboard.getRole()) - .map(User::getId) - .findAny().orElse(null)).toList()) + .onItem().transform(this::getManagerIds) .onItem().transformToUni(uuids -> { if (uuids.contains(uuid.toString())) { return Uni.createFrom().item(true); } return Uni.createFrom().item(false); - })); + })) + .onFailure().recoverWithUni(ex -> { + if (ex instanceof ResourceNotFoundException + || ((WebApplicationException) ex).getResponse().getStatus() != 404) { + return Uni.createFrom().failure(ex); + } + return Uni.createFrom().item(false); + }); } public Uni checkRecipientCode(String recipientCode, String originId) { @@ -1110,4 +1112,12 @@ private Uni> getOnboardingList(List onboardings) { } return Uni.createFrom().item(onboardings); } + + // Retrieve manager uuids from previous onboardings in case of workflowType USERS + private List getManagerIds(List onboardings) { + return onboardings.stream().map(onboarding -> onboarding.getUsers().stream() + .filter(userToOnboard -> PartyRole.MANAGER == userToOnboard.getRole()) + .map(User::getId) + .findAny().orElse(null)).toList(); + } } diff --git a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/service/util/OnboardingUtils.java b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/service/util/OnboardingUtils.java index 392a03422..68efb42e6 100644 --- a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/service/util/OnboardingUtils.java +++ b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/service/util/OnboardingUtils.java @@ -1,6 +1,7 @@ package it.pagopa.selfcare.onboarding.service.util; import io.smallrye.mutiny.Uni; +import it.pagopa.selfcare.onboarding.common.InstitutionPaSubunitType; import it.pagopa.selfcare.onboarding.common.InstitutionType; import it.pagopa.selfcare.onboarding.common.ProductId; import it.pagopa.selfcare.onboarding.constants.CustomError; @@ -8,7 +9,6 @@ import it.pagopa.selfcare.onboarding.exception.InvalidRequestException; import it.pagopa.selfcare.onboarding.exception.OnboardingNotAllowedException; import it.pagopa.selfcare.onboarding.exception.ResourceNotFoundException; -import it.pagopa.selfcare.onboarding.util.InstitutionPaSubunitType; import it.pagopa.selfcare.product.entity.Product; import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; diff --git a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/util/InstitutionPaSubunitType.java b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/util/InstitutionPaSubunitType.java deleted file mode 100644 index e3af5786f..000000000 --- a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/util/InstitutionPaSubunitType.java +++ /dev/null @@ -1,5 +0,0 @@ -package it.pagopa.selfcare.onboarding.util; - -public enum InstitutionPaSubunitType { - AOO, UO -} diff --git a/apps/onboarding-ms/src/test/java/it/pagopa/selfcare/onboarding/service/OnboardingServiceDefaultTest.java b/apps/onboarding-ms/src/test/java/it/pagopa/selfcare/onboarding/service/OnboardingServiceDefaultTest.java index 74af8551a..8fd3983ab 100644 --- a/apps/onboarding-ms/src/test/java/it/pagopa/selfcare/onboarding/service/OnboardingServiceDefaultTest.java +++ b/apps/onboarding-ms/src/test/java/it/pagopa/selfcare/onboarding/service/OnboardingServiceDefaultTest.java @@ -14,10 +14,7 @@ import io.smallrye.mutiny.Uni; import io.smallrye.mutiny.helpers.test.UniAssertSubscriber; import it.pagopa.selfcare.azurestorage.AzureBlobClient; -import it.pagopa.selfcare.onboarding.common.InstitutionType; -import it.pagopa.selfcare.onboarding.common.OnboardingStatus; -import it.pagopa.selfcare.onboarding.common.Origin; -import it.pagopa.selfcare.onboarding.common.PartyRole; +import it.pagopa.selfcare.onboarding.common.*; import it.pagopa.selfcare.onboarding.constants.CustomError; import it.pagopa.selfcare.onboarding.controller.request.OnboardingImportContract; import it.pagopa.selfcare.onboarding.controller.request.OnboardingUserRequest; @@ -37,7 +34,6 @@ import it.pagopa.selfcare.onboarding.service.profile.OnboardingTestProfile; import it.pagopa.selfcare.onboarding.service.strategy.OnboardingValidationStrategy; import it.pagopa.selfcare.onboarding.service.util.OnboardingUtils; -import it.pagopa.selfcare.onboarding.util.InstitutionPaSubunitType; import it.pagopa.selfcare.product.entity.Product; import it.pagopa.selfcare.product.entity.ProductRole; import it.pagopa.selfcare.product.entity.ProductRoleInfo; @@ -1894,6 +1890,39 @@ void testCheckManager() { assertFalse(subscriber.getItem()); } + @Test + void testCheckManagerWith404FromUserRegistry() { + OnboardingUserRequest request = createDummyUserRequest(); + WebApplicationException exception = mock(WebApplicationException.class); + Response response = mock(Response.class); + when(response.getStatus()).thenReturn(404); + when(exception.getResponse()).thenReturn(response); + when(userRegistryApi.searchUsingPOST(any(), any())) + .thenReturn(Uni.createFrom().failure(exception)); + UniAssertSubscriber subscriber = onboardingService + .checkManager(request) + .subscribe() + .withSubscriber(UniAssertSubscriber.create()); + subscriber.assertCompleted(); + assertFalse(subscriber.getItem()); + } + + @Test + void testCheckManagerWith500FromUserRegistry() { + OnboardingUserRequest request = createDummyUserRequest(); + WebApplicationException exception = mock(WebApplicationException.class); + Response response = mock(Response.class); + when(response.getStatus()).thenReturn(500); + when(exception.getResponse()).thenReturn(response); + when(userRegistryApi.searchUsingPOST(any(), any())) + .thenReturn(Uni.createFrom().failure(exception)); + UniAssertSubscriber subscriber = onboardingService + .checkManager(request) + .subscribe() + .withSubscriber(UniAssertSubscriber.create()); + subscriber.assertFailedWith(WebApplicationException.class); + } + @Test void testCheckManagerWithTrueCheck() { final UUID uuid = UUID.randomUUID(); diff --git a/apps/onboarding-ms/src/test/java/it/pagopa/selfcare/onboarding/service/util/OnboardingUtilsTest.java b/apps/onboarding-ms/src/test/java/it/pagopa/selfcare/onboarding/service/util/OnboardingUtilsTest.java index 4580cc715..94570720b 100644 --- a/apps/onboarding-ms/src/test/java/it/pagopa/selfcare/onboarding/service/util/OnboardingUtilsTest.java +++ b/apps/onboarding-ms/src/test/java/it/pagopa/selfcare/onboarding/service/util/OnboardingUtilsTest.java @@ -4,6 +4,7 @@ import io.quarkus.test.junit.QuarkusTest; import io.smallrye.mutiny.Uni; import io.smallrye.mutiny.helpers.test.UniAssertSubscriber; +import it.pagopa.selfcare.onboarding.common.InstitutionPaSubunitType; import it.pagopa.selfcare.onboarding.common.InstitutionType; import it.pagopa.selfcare.onboarding.common.ProductId; import it.pagopa.selfcare.onboarding.entity.AdditionalInformations; @@ -11,7 +12,6 @@ import it.pagopa.selfcare.onboarding.entity.Institution; import it.pagopa.selfcare.onboarding.entity.Onboarding; import it.pagopa.selfcare.onboarding.exception.InvalidRequestException; -import it.pagopa.selfcare.onboarding.util.InstitutionPaSubunitType; import it.pagopa.selfcare.product.entity.Product; import jakarta.inject.Inject; import org.eclipse.microprofile.rest.client.inject.RestClient; diff --git a/infra/functions/onboarding-functions/env/prod-pnpg/terraform.tfvars b/infra/functions/onboarding-functions/env/prod-pnpg/terraform.tfvars index e9381e496..0f5142dd5 100644 --- a/infra/functions/onboarding-functions/env/prod-pnpg/terraform.tfvars +++ b/infra/functions/onboarding-functions/env/prod-pnpg/terraform.tfvars @@ -104,7 +104,7 @@ app_settings = { "MAIL_USER_CONFIRMATION_LINK" = "https://imprese.notifichedigitali.it/onboarding/confirm?jwt=%s#add-user=true", "MAIL_ONBOARDING_REJECTION_LINK" = "https://imprese.notifichedigitali.it/onboarding/cancel?jwt=", "MAIL_ONBOARDING_URL" = "https://imprese.notifichedigitali.it/onboarding/", - "USER_MS_SEND_MAIL" = "true", + "USER_MS_SEND_MAIL" = "false", "FORCE_INSTITUTION_PERSIST" = "true", "EMAIL_SERVICE_AVAILABLE" = "true" "JWT_TOKEN_ISSUER" = "SPID" diff --git a/infra/functions/onboarding-functions/env/uat-pnpg/terraform.tfvars b/infra/functions/onboarding-functions/env/uat-pnpg/terraform.tfvars index cb0436aec..9d7a9ef3c 100644 --- a/infra/functions/onboarding-functions/env/uat-pnpg/terraform.tfvars +++ b/infra/functions/onboarding-functions/env/uat-pnpg/terraform.tfvars @@ -68,13 +68,13 @@ app_settings = { "BACKOFF_COEFFICIENT" = "1" "EVENT_HUB_BASE_PATH" = "https://selc-u-eventhub-ns.servicebus.windows.net", "STANDARD_SHARED_ACCESS_KEY_NAME" = "selfcare-wo" - "EVENTHUB-SC-CONTRACTS-SELFCARE-WO-KEY-LC" = "string" + "EVENTHUB_SC_CONTRACTS_SELFCARE_WO_KEY_LC" = "string" "STANDARD_TOPIC_NAME" = "SC-Contracts" "SAP_SHARED_ACCESS_KEY_NAME" = "external-interceptor-wo" - "EVENTHUB-SC-CONTRACTS-SAP-SELFCARE-WO-KEY-LC" = "string" + "EVENTHUB_SC_CONTRACTS_SAP_SELFCARE_WO_KEY_LC" = "string" "SAP_TOPIC_NAME" = "SC-Contracts-SAP" "FD_SHARED_ACCESS_KEY_NAME" = "external-interceptor-wo" - "EVENTHUB-SC-CONTRACTS-FD-SELFCARE-WO-KEY-LC" = "string" + "EVENTHUB_SC_CONTRACTS_FD_SELFCARE_WO_KEY_LC" = "string" "FD_TOPIC_NAME" = "Selfcare-FD" "SAP_ALLOWED_INSTITUTION_TYPE" = "PA,GSP,SA,AS,SCP" "SAP_ALLOWED_ORIGINS" = "IPA,SELC"