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 ace3d89e418bd3871b4e9c8f83b3e822a67576ec
Merge: ac7d4ac 5596701
Author: Marcus Christie <[email protected]>
AuthorDate: Tue Mar 21 14:45:51 2023 -0400

    Merge branch 'main' into calcite

 .../datacatalog/api/mapper/DataProductMapper.java  | 16 +++++--
 .../api/repository/DataProductRepository.java      |  4 +-
 .../api/service/DataCatalogAPIService.java         | 50 ++++++++++++++++------
 .../api/service/impl/DataCatalogServiceImpl.java   | 19 ++++----
 4 files changed, 63 insertions(+), 26 deletions(-)

diff --cc 
data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/service/DataCatalogAPIService.java
index 4b7b383,e4e4794..efadaf5
--- 
a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/service/DataCatalogAPIService.java
+++ 
b/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/service/DataCatalogAPIService.java
@@@ -101,48 -106,21 +111,60 @@@ public class DataCatalogAPIService exte
      @Override
      public void 
addDataProductToMetadataSchema(DataProductAddToMetadataSchemaRequest request,
              StreamObserver<DataProductAddToMetadataSchemaResponse> 
responseObserver) {
+ 
          String dataProductId = request.getDataProductId();
          String schemaName = request.getSchemaName();
-         DataProduct dataProduct = 
dataCatalogService.addDataProductToMetadataSchema(dataProductId, schemaName);
- 
-         responseObserver
-                 
.onNext(DataProductAddToMetadataSchemaResponse.newBuilder().setDataProduct(dataProduct).build());
-         responseObserver.onCompleted();
+         try {
+             DataProduct dataProduct = 
dataCatalogService.addDataProductToMetadataSchema(dataProductId, schemaName);
+ 
+             responseObserver
+                     
.onNext(DataProductAddToMetadataSchemaResponse.newBuilder().setDataProduct(dataProduct).build());
+             responseObserver.onCompleted();
+         } catch (EntityNotFoundException e) {
+             
responseObserver.onError(Status.NOT_FOUND.withDescription(e.getMessage()).asException());
+             responseObserver.onCompleted();
+         }
      }
  
 +    @Override
 +    public void 
removeDataProductFromMetadataSchema(DataProductRemoveFromMetadataSchemaRequest 
request,
 +            StreamObserver<DataProductRemoveFromMetadataSchemaResponse> 
responseObserver) {
 +
 +        String dataProductId = request.getDataProductId();
 +        String schemaName = request.getSchemaName();
-         DataProduct dataProduct = 
dataCatalogService.removeDataProductFromMetadataSchema(dataProductId, 
schemaName);
- 
-         responseObserver
-                 
.onNext(DataProductRemoveFromMetadataSchemaResponse.newBuilder().setDataProduct(dataProduct).build());
-         responseObserver.onCompleted();
++        try {
++            DataProduct dataProduct = 
dataCatalogService.removeDataProductFromMetadataSchema(dataProductId, 
schemaName);
++
++            responseObserver
++                    
.onNext(DataProductRemoveFromMetadataSchemaResponse.newBuilder().setDataProduct(dataProduct)
++                            .build());
++            responseObserver.onCompleted();
++        } catch (EntityNotFoundException e) {
++            
responseObserver.onError(Status.NOT_FOUND.withDescription(e.getMessage()).asException());
++            responseObserver.onCompleted();
++        }
 +    }
 +
 +    @Override
 +    public void searchDataProducts(DataProductSearchRequest request,
 +            StreamObserver<DataProductSearchResponse> responseObserver) {
 +
 +        try {
 +            MetadataSchemaQueryResult searchResult = 
dataCatalogService.searchDataProducts(request.getSql());
 +            List<DataProduct> dataProducts = searchResult.dataProducts();
 +            
responseObserver.onNext(DataProductSearchResponse.newBuilder().addAllDataProducts(dataProducts).build());
 +            responseObserver.onCompleted();
 +        } catch (MetadataSchemaSqlParseException e) {
 +            responseObserver
 +                    .onError(Status.INVALID_ARGUMENT.withDescription("Failed 
to parse SQL query.").asException());
 +            responseObserver.onCompleted();
 +        } catch (MetadataSchemaSqlValidateException e) {
 +            responseObserver
 +                    .onError(Status.INVALID_ARGUMENT.withDescription("Failed 
to validate SQL query.").asException());
 +            responseObserver.onCompleted();
 +        }
 +    }
 +
      @Override
      public void getMetadataSchema(MetadataSchemaGetRequest request,
              StreamObserver<MetadataSchemaGetResponse> responseObserver) {
diff --cc 
data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/service/impl/DataCatalogServiceImpl.java
index dbce8bb,1f43ec9..1f664a1
--- 
a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/service/impl/DataCatalogServiceImpl.java
+++ 
b/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/service/impl/DataCatalogServiceImpl.java
@@@ -104,24 -94,6 +101,23 @@@ public class DataCatalogServiceImpl imp
          return toDataProduct(savedDataProductEntity);
      }
  
 +    @Override
 +    public DataProduct removeDataProductFromMetadataSchema(String 
dataProductId, String schemaName) {
 +
-         // TODO: handle data product not found
-         DataProductEntity dataProduct = 
dataProductRepository.findByExternalId(dataProductId);
++        DataProductEntity dataProduct = findDataProductEntity(dataProductId);
 +        // TODO: handle metadata schema not found
 +        MetadataSchemaEntity metadataSchemaEntity = 
metadataSchemaRepository.findBySchemaName(schemaName);
 +        dataProduct.removeMetadataSchema(metadataSchemaEntity);
 +        DataProductEntity savedDataProductEntity = 
dataProductRepository.save(dataProduct);
 +        return toDataProduct(savedDataProductEntity);
 +    }
 +
 +    @Override
 +    public MetadataSchemaQueryResult searchDataProducts(String sql)
 +            throws MetadataSchemaSqlParseException, 
MetadataSchemaSqlValidateException {
 +        return metadataSchemaQueryExecutor.execute(sql);
 +    }
 +
      @Override
      public MetadataSchema getMetadataSchema(String schemaName) {
          MetadataSchemaEntity metadataSchemaEntity = 
metadataSchemaRepository.findBySchemaName(schemaName);
@@@ -225,4 -208,10 +221,11 @@@
          return builder.build();
      }
  
+     private DataProductEntity findDataProductEntity(String dataProductId) {
+         return dataProductRepository
+                 .findByExternalId(dataProductId)
 -                .orElseThrow(() -> new EntityNotFoundException("Could not 
find a data product with the ID: " + dataProductId));
++                .orElseThrow(() -> new EntityNotFoundException(
++                        "Could not find a data product with the ID: " + 
dataProductId));
+     }
+ 
  }

Reply via email to