This is an automated email from the ASF dual-hosted git repository.

machristie pushed a commit to branch custos-integration
in repository https://gitbox.apache.org/repos/asf/airavata-data-catalog.git

commit 9f3c7b6c0c44db56a0815fb069b6a294250f154f
Author: Marcus Christie <[email protected]>
AuthorDate: Wed Mar 29 09:31:04 2023 -0400

    Adds SharingException to SharingManager methods for sharing errors
---
 .../api/DataCatalogApiServiceApplication.java      |  9 +-
 .../api/exception/SharingException.java            | 24 ++++++
 .../datacatalog/api/sharing/SharingManager.java    | 24 +++---
 .../api/sharing/SharingManagerImpl.java            | 97 +++++++++++++++-------
 4 files changed, 111 insertions(+), 43 deletions(-)

diff --git 
a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/DataCatalogApiServiceApplication.java
 
b/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/DataCatalogApiServiceApplication.java
index b330f6c..7b6bd4e 100644
--- 
a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/DataCatalogApiServiceApplication.java
+++ 
b/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/DataCatalogApiServiceApplication.java
@@ -4,13 +4,14 @@ import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.domain.EntityScan;
 import org.springframework.context.annotation.ComponentScan;
-import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
 import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
 
-@ComponentScan(basePackages = 
{"org.apache.airavata.datacatalog.api","org.apache.custos.sharing.core"})
+@ComponentScan(basePackages = { "org.apache.airavata.datacatalog.api", 
"org.apache.custos.sharing.core" })
 @SpringBootApplication
-@EnableJpaRepositories({"org.apache.custos.sharing.core.persistance.repository","org.apache.airavata.datacatalog.api.repository"})
-@EntityScan(basePackages = 
{"org.apache.airavata.datacatalog.api.model","org.apache.custos.sharing.core.persistance.model"})
+@EnableJpaRepositories({ 
"org.apache.custos.sharing.core.persistance.repository",
+        "org.apache.airavata.datacatalog.api.repository" })
+@EntityScan(basePackages = { "org.apache.airavata.datacatalog.api.model",
+        "org.apache.custos.sharing.core.persistance.model" })
 public class DataCatalogApiServiceApplication {
 
     public static void main(String[] args) {
diff --git 
a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/exception/SharingException.java
 
b/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/exception/SharingException.java
new file mode 100644
index 0000000..d8b0368
--- /dev/null
+++ 
b/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/exception/SharingException.java
@@ -0,0 +1,24 @@
+package org.apache.airavata.datacatalog.api.exception;
+
+public class SharingException extends Exception {
+
+    public SharingException() {
+    }
+
+    public SharingException(String message) {
+        super(message);
+    }
+
+    public SharingException(Throwable cause) {
+        super(cause);
+    }
+
+    public SharingException(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+    public SharingException(String message, Throwable cause, boolean 
enableSuppression, boolean writableStackTrace) {
+        super(message, cause, enableSuppression, writableStackTrace);
+    }
+
+}
diff --git 
a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/sharing/SharingManager.java
 
b/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/sharing/SharingManager.java
index 65c61df..1a5c3f7 100644
--- 
a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/sharing/SharingManager.java
+++ 
b/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/sharing/SharingManager.java
@@ -4,8 +4,8 @@ import org.apache.airavata.datacatalog.api.DataProduct;
 import org.apache.airavata.datacatalog.api.GroupInfo;
 import org.apache.airavata.datacatalog.api.Permission;
 import org.apache.airavata.datacatalog.api.UserInfo;
+import org.apache.airavata.datacatalog.api.exception.SharingException;
 import org.apache.airavata.datacatalog.api.model.UserEntity;
-import org.apache.custos.sharing.core.exceptions.CustosSharingException;
 
 public interface SharingManager {
 
@@ -15,7 +15,7 @@ public interface SharingManager {
      * @param userInfo
      * @return
      */
-    UserEntity resolveUser(UserInfo userInfo);
+    UserEntity resolveUser(UserInfo userInfo) throws SharingException;
 
     /**
      * Return true if the user has access to the data product with the given
@@ -26,7 +26,7 @@ public interface SharingManager {
      * @param permission
      * @return
      */
-    boolean userHasAccess(UserInfo userInfo, DataProduct dataProduct, 
Permission permission) throws Exception;
+    boolean userHasAccess(UserInfo userInfo, DataProduct dataProduct, 
Permission permission) throws SharingException;
 
     /**
      * Return the name of the database view that includes sharing information
@@ -45,7 +45,8 @@ public interface SharingManager {
      * @param dataProduct
      * @param permission
      */
-    void grantPermissionToUser(UserInfo userInfo, DataProduct dataProduct, 
Permission permission) throws Exception;
+    void grantPermissionToUser(UserInfo userInfo, DataProduct dataProduct, 
Permission permission)
+            throws SharingException;
 
     /**
      * Revoke permission from the user for the given data product.
@@ -54,7 +55,8 @@ public interface SharingManager {
      * @param dataProduct
      * @param permission
      */
-    void revokePermissionFromUser(UserInfo userInfo, DataProduct dataProduct, 
Permission permission) throws Exception;
+    void revokePermissionFromUser(UserInfo userInfo, DataProduct dataProduct, 
Permission permission)
+            throws SharingException;
 
     /**
      * Grant permission to the group for the given data product.
@@ -63,7 +65,8 @@ public interface SharingManager {
      * @param dataProduct
      * @param permission
      */
-    void grantPermissionToGroup(GroupInfo groupInfo, DataProduct dataProduct, 
Permission permission) throws Exception;
+    void grantPermissionToGroup(GroupInfo groupInfo, DataProduct dataProduct, 
Permission permission)
+            throws SharingException;
 
     /**
      * Revoke permission from the group for the given data product.
@@ -72,7 +75,8 @@ public interface SharingManager {
      * @param dataProduct
      * @param permission
      */
-    void revokePermissionFromGroup(GroupInfo groupInfo, DataProduct 
dataProduct, Permission permission) throws Exception;
+    void revokePermissionFromGroup(GroupInfo groupInfo, DataProduct 
dataProduct, Permission permission)
+            throws SharingException;
 
     /**
      * Return true if public access at the given permission is granted for the
@@ -83,7 +87,7 @@ public interface SharingManager {
      * @param permission
      * @return
      */
-    boolean hasPublicAccess(DataProduct dataProduct, Permission permission) 
throws Exception;
+    boolean hasPublicAccess(DataProduct dataProduct, Permission permission) 
throws SharingException;
 
     /**
      * Grant public access to the given data product.
@@ -91,7 +95,7 @@ public interface SharingManager {
      * @param dataProduct
      * @param permission
      */
-    void grantPublicAccess(DataProduct dataProduct, Permission permission) 
throws Exception;
+    void grantPublicAccess(DataProduct dataProduct, Permission permission) 
throws SharingException;
 
     /**
      * Revoke public access from the given data product.
@@ -99,5 +103,5 @@ public interface SharingManager {
      * @param dataProduct
      * @param permission
      */
-    void revokePublicAccess(DataProduct dataProduct, Permission permission) 
throws Exception;
+    void revokePublicAccess(DataProduct dataProduct, Permission permission) 
throws SharingException;
 }
diff --git 
a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/sharing/SharingManagerImpl.java
 
b/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/sharing/SharingManagerImpl.java
index 7eab638..4cf34ce 100644
--- 
a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/sharing/SharingManagerImpl.java
+++ 
b/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/sharing/SharingManagerImpl.java
@@ -1,9 +1,13 @@
 package org.apache.airavata.datacatalog.api.sharing;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import org.apache.airavata.datacatalog.api.DataProduct;
 import org.apache.airavata.datacatalog.api.GroupInfo;
 import org.apache.airavata.datacatalog.api.Permission;
 import org.apache.airavata.datacatalog.api.UserInfo;
+import org.apache.airavata.datacatalog.api.exception.SharingException;
 import org.apache.airavata.datacatalog.api.model.UserEntity;
 import org.apache.custos.sharing.core.exceptions.CustosSharingException;
 import org.apache.custos.sharing.core.impl.SharingImpl;
@@ -11,9 +15,6 @@ import org.apache.custos.sharing.core.utils.Constants;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import java.util.ArrayList;
-import java.util.List;
-
 @Component
 public class SharingManagerImpl implements SharingManager {
 
@@ -22,16 +23,21 @@ public class SharingManagerImpl implements SharingManager {
 
     private static final String PUBLIC_ACCESS_GROUP = "public_access_group";
 
-
     @Override
     public UserEntity resolveUser(UserInfo userInfo) {
         return null;
     }
 
     @Override
-    public boolean userHasAccess(UserInfo userInfo, DataProduct dataProduct, 
Permission permission) throws CustosSharingException {
-        return custosSharingImpl.userHasAccess(userInfo.getTenantId(), 
dataProduct.getDataProductId(), permission.name(),
-                userInfo.getUserId());
+    public boolean userHasAccess(UserInfo userInfo, DataProduct dataProduct, 
Permission permission)
+            throws SharingException {
+        try {
+            return custosSharingImpl.userHasAccess(userInfo.getTenantId(), 
dataProduct.getDataProductId(),
+                    permission.name(),
+                    userInfo.getUserId());
+        } catch (CustosSharingException e) {
+            throw new SharingException(e);
+        }
     }
 
     @Override
@@ -40,63 +46,96 @@ public class SharingManagerImpl implements SharingManager {
     }
 
     @Override
-    public void grantPermissionToUser(UserInfo userInfo, DataProduct 
dataProduct, Permission permission) throws CustosSharingException {
+    public void grantPermissionToUser(UserInfo userInfo, DataProduct 
dataProduct, Permission permission)
+            throws SharingException {
 
         List<String> userIds = new ArrayList<>();
         userIds.add(userInfo.getUserId());
-        custosSharingImpl.shareEntity(userInfo.getTenantId(),
-                dataProduct.getDataProductId(), permission.name(), userIds, 
true, Constants.USER, null);
+        try {
+            custosSharingImpl.shareEntity(userInfo.getTenantId(),
+                    dataProduct.getDataProductId(), permission.name(), 
userIds, true, Constants.USER, null);
+        } catch (CustosSharingException e) {
+            throw new SharingException(e);
+        }
     }
 
     @Override
-    public void revokePermissionFromUser(UserInfo userInfo, DataProduct 
dataProduct, Permission permission) throws CustosSharingException {
+    public void revokePermissionFromUser(UserInfo userInfo, DataProduct 
dataProduct, Permission permission)
+            throws SharingException {
 
         List<String> userIds = new ArrayList<>();
         userIds.add(userInfo.getUserId());
-        custosSharingImpl.revokePermission(userInfo.getTenantId(),
-                dataProduct.getDataProductId(), permission.name(), userIds);
+        try {
+            custosSharingImpl.revokePermission(userInfo.getTenantId(),
+                    dataProduct.getDataProductId(), permission.name(), 
userIds);
+        } catch (CustosSharingException e) {
+            throw new SharingException(e);
+        }
 
     }
 
     @Override
-    public void grantPermissionToGroup(GroupInfo groupInfo, DataProduct 
dataProduct, Permission permission) throws CustosSharingException {
+    public void grantPermissionToGroup(GroupInfo groupInfo, DataProduct 
dataProduct, Permission permission)
+            throws SharingException {
 
         List<String> userIds = new ArrayList<>();
         userIds.add(groupInfo.getGroupId());
-        custosSharingImpl.shareEntity(groupInfo.getTenantId(),
-                dataProduct.getDataProductId(), permission.name(), userIds, 
true, Constants.GROUP, null);
+        try {
+            custosSharingImpl.shareEntity(groupInfo.getTenantId(),
+                    dataProduct.getDataProductId(), permission.name(), 
userIds, true, Constants.GROUP, null);
+        } catch (CustosSharingException e) {
+            throw new SharingException(e);
+        }
     }
 
     @Override
-    public void revokePermissionFromGroup(GroupInfo groupInfo, DataProduct 
dataProduct, Permission permission) throws CustosSharingException {
+    public void revokePermissionFromGroup(GroupInfo groupInfo, DataProduct 
dataProduct, Permission permission)
+            throws SharingException {
         List<String> userIds = new ArrayList<>();
         userIds.add(groupInfo.getGroupId());
-        custosSharingImpl.revokePermission(groupInfo.getTenantId(),
-                dataProduct.getDataProductId(), permission.name(), userIds);
+        try {
+            custosSharingImpl.revokePermission(groupInfo.getTenantId(),
+                    dataProduct.getDataProductId(), permission.name(), 
userIds);
+        } catch (CustosSharingException e) {
+            throw new SharingException(e);
+        }
     }
 
     @Override
-    public boolean hasPublicAccess(DataProduct dataProduct, Permission 
permission) throws CustosSharingException{
-        return custosSharingImpl.userHasAccess(dataProduct.getTenantId(), 
dataProduct.getDataProductId(), permission.name(),
-                PUBLIC_ACCESS_GROUP);
+    public boolean hasPublicAccess(DataProduct dataProduct, Permission 
permission) throws SharingException {
+        try {
+            return custosSharingImpl.userHasAccess(dataProduct.getTenantId(), 
dataProduct.getDataProductId(),
+                    permission.name(),
+                    PUBLIC_ACCESS_GROUP);
+        } catch (CustosSharingException e) {
+            throw new SharingException(e);
+        }
     }
 
     @Override
-    public void grantPublicAccess(DataProduct dataProduct, Permission 
permission) throws CustosSharingException{
+    public void grantPublicAccess(DataProduct dataProduct, Permission 
permission) throws SharingException {
 
-        //TODO: create PUBLIC GROUP If not exists
+        // TODO: create PUBLIC GROUP If not exists
         List<String> userIds = new ArrayList<>();
         userIds.add(PUBLIC_ACCESS_GROUP);
-        custosSharingImpl.shareEntity(dataProduct.getTenantId(),
-                dataProduct.getDataProductId(), permission.name(), userIds, 
true, Constants.GROUP, null);
+        try {
+            custosSharingImpl.shareEntity(dataProduct.getTenantId(),
+                    dataProduct.getDataProductId(), permission.name(), 
userIds, true, Constants.GROUP, null);
+        } catch (CustosSharingException e) {
+            throw new SharingException(e);
+        }
 
     }
 
     @Override
-    public void revokePublicAccess(DataProduct dataProduct, Permission 
permission) throws CustosSharingException{
+    public void revokePublicAccess(DataProduct dataProduct, Permission 
permission) throws SharingException {
         List<String> userIds = new ArrayList<>();
         userIds.add(PUBLIC_ACCESS_GROUP);
-        custosSharingImpl.revokePermission(dataProduct.getTenantId(),
-                dataProduct.getDataProductId(), permission.name(), userIds);
+        try {
+            custosSharingImpl.revokePermission(dataProduct.getTenantId(),
+                    dataProduct.getDataProductId(), permission.name(), 
userIds);
+        } catch (CustosSharingException e) {
+            throw new SharingException(e);
+        }
     }
 }

Reply via email to