NONRTRIC - Enrichment Coordinator Service, Changed error codes
[nonrtric.git] / enrichment-coordinator-service / src / main / java / org / oransc / enrichment / repository / InfoTypeSubscriptions.java
index 60fe35f..65978e1 100644 (file)
@@ -47,6 +47,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.http.HttpStatus;
 import org.springframework.util.FileSystemUtils;
 
 import reactor.core.publisher.Flux;
@@ -99,8 +100,7 @@ public class InfoTypeSubscriptions {
     }
 
     public synchronized void put(SubscriptionInfo subscription) {
-        allSubscriptions.put(subscription.getId(), subscription);
-        subscriptionsByOwner.put(subscription.owner, subscription.id, subscription);
+        doPut(subscription);
         storeInFile(subscription);
         logger.debug("Added type status subscription {}", subscription.id);
     }
@@ -119,7 +119,7 @@ public class InfoTypeSubscriptions {
     public synchronized SubscriptionInfo getSubscription(String id) throws ServiceException {
         SubscriptionInfo p = allSubscriptions.get(id);
         if (p == null) {
-            throw new ServiceException("Could not find Information subscription: " + id);
+            throw new ServiceException("Could not find Information subscription: " + id, HttpStatus.NOT_FOUND);
         }
         return p;
     }
@@ -197,7 +197,8 @@ public class InfoTypeSubscriptions {
 
                 private Mono<String> error() {
                     return Mono.error(new ServiceException(
-                        "No notifyTypeRegistered handler found for interface version " + apiVersion));
+                        "No notifyTypeRegistered handler found for interface version " + apiVersion,
+                        HttpStatus.INTERNAL_SERVER_ERROR));
                 }
             };
         }
@@ -259,10 +260,15 @@ public class InfoTypeSubscriptions {
         for (File file : dbDir.listFiles()) {
             String json = Files.readString(file.toPath());
             SubscriptionInfo subscription = gson.fromJson(json, SubscriptionInfo.class);
-            this.allSubscriptions.put(subscription.getId(), subscription);
+            doPut(subscription);
         }
     }
 
+    private void doPut(SubscriptionInfo subscription) {
+        allSubscriptions.put(subscription.getId(), subscription);
+        subscriptionsByOwner.put(subscription.owner, subscription.id, subscription);
+    }
+
     private File getFile(SubscriptionInfo subscription) {
         return getPath(subscription).toFile();
     }