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 9d15309c0..240492208 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 @@ -37,6 +37,7 @@ public class NotificationEventServiceDefault implements NotificationEventService public static final String EVENT_ONBOARDING_FN_NAME = "ONBOARDING-FN"; public static final String EVENT_ONBOARDING_INSTTITUTION_FN_FAILURE = "EventsOnboardingInstitution_failures"; + public static final String EVENT_ONBOARDING_INSTTITUTION_FN_ERROR = "EventsOnboardingInstitution_error"; public static final String EVENT_ONBOARDING_INSTTITUTION_FN_SUCCESS = "EventsOnboardingInstitution_success"; public static final String OPERATION_NAME = "ONBOARDING-FN"; private final TelemetryClient telemetryClient; @@ -98,7 +99,8 @@ public void send(ExecutionContext context, Onboarding onboarding, QueueEvent que prepareAndSendNotification(context, product, consumerConfig, onboarding, token.orElse(null), institution, queueEvent); } } catch (Exception e) { - telemetryClient.trackEvent(EVENT_ONBOARDING_FN_NAME, onboardingEventMap(onboarding), Map.of(EVENT_ONBOARDING_INSTTITUTION_FN_FAILURE, 1D)); + telemetryClient.trackEvent(EVENT_ONBOARDING_FN_NAME, onboardingEventMap(onboarding), Map.of(EVENT_ONBOARDING_INSTTITUTION_FN_ERROR, 1D)); + context.getLogger().severe(String.format("Impossible to send notification for onboarding with ID %s %s", onboarding.getId(), Arrays.toString(e.getStackTrace()))); throw new NotificationException(String.format("Impossible to send notification for onboarding with ID %s", onboarding.getId()), e); } } @@ -120,9 +122,9 @@ private void sendNotification(ExecutionContext context, String topic, Notificati try { eventHubRestClient.sendMessage(topic, message); - telemetryClient.trackEvent(EVENT_ONBOARDING_FN_NAME, notificationEventMap(notificationToSend), Map.of(EVENT_ONBOARDING_INSTTITUTION_FN_SUCCESS, 1D)); + telemetryClient.trackEvent(EVENT_ONBOARDING_FN_NAME, notificationEventMap(notificationToSend, topic), Map.of(EVENT_ONBOARDING_INSTTITUTION_FN_SUCCESS, 1D)); } catch (Exception e) { - telemetryClient.trackEvent(EVENT_ONBOARDING_FN_NAME, notificationEventMap(notificationToSend), Map.of(EVENT_ONBOARDING_INSTTITUTION_FN_FAILURE, 1D)); + telemetryClient.trackEvent(EVENT_ONBOARDING_FN_NAME, notificationEventMap(notificationToSend, topic), Map.of(EVENT_ONBOARDING_INSTTITUTION_FN_FAILURE, 1D)); throw new NotificationException(e.getMessage()); } } @@ -144,8 +146,9 @@ public static Map onboardingEventMap(Onboarding onboarding) { return propertiesMap; } - public static Map notificationEventMap(NotificationToSend notificationToSend) { + public static Map notificationEventMap(NotificationToSend notificationToSend, String topic) { Map propertiesMap = new HashMap<>(); + Optional.ofNullable(topic).ifPresent(value -> propertiesMap.put("topic", value)); Optional.ofNullable(notificationToSend.getId()).ifPresent(value -> propertiesMap.put("id", value)); Optional.ofNullable(notificationToSend.getInternalIstitutionID()).ifPresent(value -> propertiesMap.put("internalIstitutionID", value)); Optional.ofNullable(notificationToSend.getInstitutionId()).ifPresent(value -> propertiesMap.put("institutionId", value)); 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 d2e4d6a8f..57741694c 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 @@ -214,7 +214,7 @@ void notificationEventMapTest() { billing.setPublicService(false); notificationToSend.setBilling(billing); - Map properties = NotificationEventServiceDefault.notificationEventMap(notificationToSend); + Map properties = NotificationEventServiceDefault.notificationEventMap(notificationToSend, "topic"); assertNotNull(properties); assertEquals(properties.get("id"), "id"); assertEquals(properties.get("internalIstitutionID"), "internal"); @@ -261,7 +261,7 @@ void notificationEventMapRootParentTest() { billing.setTaxCodeInvoicing("456"); notificationToSend.setBilling(billing); - Map properties = NotificationEventServiceDefault.notificationEventMap(notificationToSend); + Map properties = NotificationEventServiceDefault.notificationEventMap(notificationToSend, "topic"); assertNotNull(properties); assertEquals(properties.get("id"), "id"); assertEquals(properties.get("internalIstitutionID"), "internal");