You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ma...@apache.org on 2023/02/17 14:19:55 UTC
[airavata-data-catalog] 05/05: Additional methods to manage metadata schemas
This is an automated email from the ASF dual-hosted git repository.
machristie pushed a commit to branch machristie/issue7
in repository https://gitbox.apache.org/repos/asf/airavata-data-catalog.git
commit 88be4d08bbbb4f233f04f98cb99b7b95bad52bc5
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Wed Feb 15 15:57:25 2023 -0500
Additional methods to manage metadata schemas
---
.../repository/MetadataSchemaFieldRepository.java | 2 +
.../api/service/DataCatalogAPIService.java | 43 ++++++++++++++++++----
.../stubs/src/main/proto/DataCatalogAPI.proto | 2 +-
3 files changed, 38 insertions(+), 9 deletions(-)
diff --git a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/repository/MetadataSchemaFieldRepository.java b/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/repository/MetadataSchemaFieldRepository.java
index e237dac..c8503db 100644
--- a/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/repository/MetadataSchemaFieldRepository.java
+++ b/data-catalog-api/server/src/main/java/org/apache/airavata/datacatalog/api/repository/MetadataSchemaFieldRepository.java
@@ -8,4 +8,6 @@ import org.springframework.data.jpa.repository.JpaRepository;
public interface MetadataSchemaFieldRepository extends JpaRepository<MetadataSchemaFieldEntity, Long> {
List<MetadataSchemaFieldEntity> findByMetadataSchema_SchemaName(String schemaName);
+
+ MetadataSchemaFieldEntity findByFieldNameAndSchema_SchemaName(String fieldName, String schemaName);
}
diff --git 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
index 7374def..d001e46 100644
--- 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
@@ -19,6 +19,8 @@ import org.apache.airavata.datacatalog.api.DataProductUpdateRequest;
import org.apache.airavata.datacatalog.api.DataProductUpdateResponse;
import org.apache.airavata.datacatalog.api.MetadataSchemaCreateRequest;
import org.apache.airavata.datacatalog.api.MetadataSchemaCreateResponse;
+import org.apache.airavata.datacatalog.api.MetadataSchemaDeleteRequest;
+import org.apache.airavata.datacatalog.api.MetadataSchemaDeleteResponse;
import org.apache.airavata.datacatalog.api.MetadataSchemaField;
import org.apache.airavata.datacatalog.api.MetadataSchemaFieldCreateRequest;
import org.apache.airavata.datacatalog.api.MetadataSchemaFieldCreateResponse;
@@ -196,17 +198,30 @@ public class DataCatalogAPIService extends DataCatalogAPIServiceGrpc.DataCatalog
}
@Override
- public void deleteMetadataSchema(MetadataSchemaCreateRequest request,
- StreamObserver<MetadataSchemaCreateResponse> responseObserver) {
- // TODO Auto-generated method stub
- super.deleteMetadataSchema(request, responseObserver);
+ public void deleteMetadataSchema(MetadataSchemaDeleteRequest request,
+ StreamObserver<MetadataSchemaDeleteResponse> responseObserver) {
+ // TODO: check that user has write access on metadata schema
+ // TODO: handle metadata schema not found
+ MetadataSchemaEntity metadataSchemaEntity = metadataSchemaRepository
+ .findBySchemaName(request.getMetadataSchema().getSchemaName());
+ metadataSchemaRepository.delete(metadataSchemaEntity);
+ MetadataSchemaDeleteResponse.Builder responseBuilder = MetadataSchemaDeleteResponse.newBuilder();
+ responseObserver.onNext(responseBuilder.build());
+ responseObserver.onCompleted();
}
@Override
public void deleteMetadataSchemaField(MetadataSchemaFieldDeleteRequest request,
StreamObserver<MetadataSchemaFieldDeleteResponse> responseObserver) {
- // TODO Auto-generated method stub
- super.deleteMetadataSchemaField(request, responseObserver);
+ // TODO: check that user has write access on metadata schema field
+ // TODO: handle metadata schema field not found
+ MetadataSchemaFieldEntity metadataSchemaFieldEntity = metadataSchemaFieldRepository
+ .findByFieldNameAndSchema_SchemaName(request.getMetadataSchemaField().getFieldName(),
+ request.getMetadataSchemaField().getSchemaName());
+ metadataSchemaFieldRepository.delete(metadataSchemaFieldEntity);
+ MetadataSchemaFieldDeleteResponse.Builder responseBuilder = MetadataSchemaFieldDeleteResponse.newBuilder();
+ responseObserver.onNext(responseBuilder.build());
+ responseObserver.onCompleted();
}
@Override
@@ -248,7 +263,19 @@ public class DataCatalogAPIService extends DataCatalogAPIServiceGrpc.DataCatalog
@Override
public void updateMetadataSchemaField(MetadataSchemaFieldUpdateRequest request,
StreamObserver<MetadataSchemaFieldUpdateResponse> responseObserver) {
- // TODO Auto-generated method stub
- super.updateMetadataSchemaField(request, responseObserver);
+
+ // TODO: check that user has write access on metadata schema field
+ // TODO: handle metadata schema field not found
+ MetadataSchemaFieldEntity metadataSchemaFieldEntity = metadataSchemaFieldRepository
+ .findByFieldNameAndSchema_SchemaName(request.getMetadataSchemaField().getFieldName(),
+ request.getMetadataSchemaField().getSchemaName());
+ metadataSchemaFieldMapper.mapModelToEntity(request.getMetadataSchemaField(), metadataSchemaFieldEntity);
+ metadataSchemaFieldRepository.save(metadataSchemaFieldEntity);
+
+ MetadataSchemaFieldUpdateResponse.Builder responseBuilder = MetadataSchemaFieldUpdateResponse.newBuilder();
+ metadataSchemaFieldMapper.mapEntityToModel(metadataSchemaFieldEntity,
+ responseBuilder.getMetadataSchemaFieldBuilder());
+ responseObserver.onNext(responseBuilder.build());
+ responseObserver.onCompleted();
}
}
diff --git a/data-catalog-api/stubs/src/main/proto/DataCatalogAPI.proto b/data-catalog-api/stubs/src/main/proto/DataCatalogAPI.proto
index 7d91b8b..74261d1 100644
--- a/data-catalog-api/stubs/src/main/proto/DataCatalogAPI.proto
+++ b/data-catalog-api/stubs/src/main/proto/DataCatalogAPI.proto
@@ -178,7 +178,7 @@ service DataCatalogAPIService {
rpc deleteDataProduct(DataProductDeleteRequest) returns (DataProductDeleteResponse){}
rpc getMetadataSchema(MetadataSchemaGetRequest) returns (MetadataSchemaGetResponse){}
rpc createMetadataSchema(MetadataSchemaCreateRequest) returns (MetadataSchemaCreateResponse){}
- rpc deleteMetadataSchema(MetadataSchemaCreateRequest) returns (MetadataSchemaCreateResponse){}
+ rpc deleteMetadataSchema(MetadataSchemaDeleteRequest) returns (MetadataSchemaDeleteResponse){}
rpc createMetadataSchemaField(MetadataSchemaFieldCreateRequest) returns (MetadataSchemaFieldCreateResponse){}
rpc updateMetadataSchemaField(MetadataSchemaFieldUpdateRequest) returns (MetadataSchemaFieldUpdateResponse){}
rpc deleteMetadataSchemaField(MetadataSchemaFieldDeleteRequest) returns (MetadataSchemaFieldDeleteResponse){}