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 88be4d08bbbb4f233f04f98cb99b7b95bad52bc5 Author: Marcus Christie <[email protected]> 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){}
