From 4a8337e35bc5cc89a0fe01405fca8de7e2932886 Mon Sep 17 00:00:00 2001
From: Rustam_Lotsmanenko <rustam_lotsmanenko@epam.com>
Date: Wed, 27 Sep 2023 14:30:08 +0300
Subject: [PATCH] temp fix

---
 .../gcp/config/ExternalSubscriptionsManager.java       | 10 +++++++++-
 .../provider/gcp/pubsub/OqmNotificationHandler.java    |  7 +++++++
 .../gcp/pubsub/receiver/OqmPublishTopicReceiver.java   |  3 +--
 3 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/provider/notification-gc/src/main/java/org/opengroup/osdu/notification/provider/gcp/config/ExternalSubscriptionsManager.java b/provider/notification-gc/src/main/java/org/opengroup/osdu/notification/provider/gcp/config/ExternalSubscriptionsManager.java
index 4b4cdc9e0..7889a4333 100644
--- a/provider/notification-gc/src/main/java/org/opengroup/osdu/notification/provider/gcp/config/ExternalSubscriptionsManager.java
+++ b/provider/notification-gc/src/main/java/org/opengroup/osdu/notification/provider/gcp/config/ExternalSubscriptionsManager.java
@@ -18,6 +18,7 @@
 package org.opengroup.osdu.notification.provider.gcp.config;
 
 import java.util.List;
+import java.util.Objects;
 import java.util.Optional;
 import java.util.stream.Collectors;
 import lombok.RequiredArgsConstructor;
@@ -50,7 +51,14 @@ public class ExternalSubscriptionsManager {
     List<Subscription> cachedInfos = Optional.ofNullable(getExternalSubscriptions(dataPartitionId))
         .orElseThrow(() -> new AppException(HttpStatus.SC_INTERNAL_SERVER_ERROR, "Server error", "OQM | Subscription info cache was not initialized"))
         .getSubscriptions();
-    return getFilteredSubscription(cachedInfos, dataPartitionId, subscriptionId, serviceTopic);
+
+    Subscription subscription = getFilteredSubscription(cachedInfos, dataPartitionId,
+        subscriptionId, serviceTopic);
+
+    if (Objects.nonNull(subscription) && Objects.isNull(subscription.getSecret())) {
+      return sendGetSubscriptionRequest(dataPartitionId, subscriptionId, serviceTopic, cachedInfos);
+    }
+    return subscription;
   }
 
   private Subscription getFilteredSubscription(List<Subscription> subscriptions, String dataPartitionId,
diff --git a/provider/notification-gc/src/main/java/org/opengroup/osdu/notification/provider/gcp/pubsub/OqmNotificationHandler.java b/provider/notification-gc/src/main/java/org/opengroup/osdu/notification/provider/gcp/pubsub/OqmNotificationHandler.java
index 1b41fbb1a..a4ecd5296 100644
--- a/provider/notification-gc/src/main/java/org/opengroup/osdu/notification/provider/gcp/pubsub/OqmNotificationHandler.java
+++ b/provider/notification-gc/src/main/java/org/opengroup/osdu/notification/provider/gcp/pubsub/OqmNotificationHandler.java
@@ -16,6 +16,7 @@
 
 package org.opengroup.osdu.notification.provider.gcp.pubsub;
 
+import java.util.Objects;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.http.HttpStatus;
@@ -57,6 +58,12 @@ public class OqmNotificationHandler {
     }
 
     Subscription subscription = externalSubscriptionsManager.getSubscription(dataPartitionId, subscriptionId, serviceTopic);
+    if (Objects.isNull(subscription)) {
+      throw new AppException(HttpStatus.SC_INTERNAL_SERVER_ERROR,
+          "Subscriber config not found.",
+          String.format("Subscriber with id: %s not found in cache", subscriptionId)
+      );
+    }
     Secret secret = subscription.getSecret();
 
     SecretAuth secretAuth = authFactory.getSecretAuth(secret.getSecretType());
diff --git a/provider/notification-gc/src/main/java/org/opengroup/osdu/notification/provider/gcp/pubsub/receiver/OqmPublishTopicReceiver.java b/provider/notification-gc/src/main/java/org/opengroup/osdu/notification/provider/gcp/pubsub/receiver/OqmPublishTopicReceiver.java
index 3f784f5b6..49f985eb1 100644
--- a/provider/notification-gc/src/main/java/org/opengroup/osdu/notification/provider/gcp/pubsub/receiver/OqmPublishTopicReceiver.java
+++ b/provider/notification-gc/src/main/java/org/opengroup/osdu/notification/provider/gcp/pubsub/receiver/OqmPublishTopicReceiver.java
@@ -17,6 +17,7 @@
 
 package org.opengroup.osdu.notification.provider.gcp.pubsub.receiver;
 
+import java.util.Map;
 import lombok.extern.slf4j.Slf4j;
 import org.opengroup.osdu.core.common.http.HttpResponse;
 import org.opengroup.osdu.core.common.model.http.AppException;
@@ -27,8 +28,6 @@ import org.opengroup.osdu.core.gcp.oqm.model.OqmSubscription;
 import org.opengroup.osdu.notification.provider.gcp.pubsub.OqmNotificationHandler;
 import org.opengroup.osdu.notification.provider.gcp.thread.ThreadScopeContextHolder;
 
-import java.util.Map;
-
 @Slf4j
 public class OqmPublishTopicReceiver implements OqmMessageReceiver {
 
-- 
GitLab