Fix HTTP response for duplicate module 46/115046/4
authorniamhcore <niamh.core@est.tech>
Wed, 18 Nov 2020 16:29:15 +0000 (16:29 +0000)
committerniamhcore <niamh.core@est.tech>
Thu, 19 Nov 2020 09:39:53 +0000 (09:39 +0000)
Issue-ID: CPS-80
Signed-off-by: niamhcore <niamh.core@est.tech>
Change-Id: I27b83d671a9f235a4e926ebe9897add36080fd6f

cps-ri/src/main/java/org/onap/cps/spi/impl/ModelPersistenceServiceImpl.java
cps-service/src/main/java/org/onap/cps/api/CpService.java

index a54e506..03679b3 100755 (executable)
 
 package org.onap.cps.spi.impl;
 
+import org.onap.cps.exceptions.CpsValidationException;
 import org.onap.cps.spi.ModelPersistenceService;
 import org.onap.cps.spi.entities.Dataspace;
 import org.onap.cps.spi.entities.Module;
 import org.onap.cps.spi.repository.DataspaceRepository;
 import org.onap.cps.spi.repository.ModuleRepository;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.dao.DataIntegrityViolationException;
 import org.springframework.stereotype.Component;
 
 @Component
@@ -46,6 +48,11 @@ public class ModelPersistenceServiceImpl implements ModelPersistenceService {
         }
         dataspace.setId(dataspaceRepository.getByName(dataspaceName).getId());
         final Module module = new Module(namespace, moduleContent, revision, dataspace);
-        moduleRepository.save(module);
+        try {
+            moduleRepository.save(module);
+        } catch (final DataIntegrityViolationException ex) {
+            throw new CpsValidationException("Duplicate Entry",
+                String.format("Module already exist in dataspace %s.", dataspaceName));
+        }
     }
-}
\ No newline at end of file
+}
index 6b59949..726ca0f 100755 (executable)
@@ -51,6 +51,7 @@ public interface CpService {
      *
      * @param schemaContext the schema context
      * @param dataspaceName the dataspace name
+     * @throws CpsValidationException if input data already exists.
      */
     void storeSchemaContext(SchemaContext schemaContext, String dataspaceName);