You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by is...@apache.org on 2022/09/21 02:05:15 UTC

[airavata-data-lake] branch master updated: Fix key based search

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

isjarana pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airavata-data-lake.git


The following commit(s) were added to refs/heads/master by this push:
     new 9f7b678  Fix key based search
     new 0b31881  Merge pull request #182 from isururanawaka/mysql_conversion
9f7b678 is described below

commit 9f7b6783cff1f26f122c6385ecc954a7b988f776
Author: Isuru Ranawaka <ir...@gmail.com>
AuthorDate: Tue Sep 20 22:04:42 2022 -0400

    Fix key based search
---
 .../drms/api/handlers/ResourceServiceHandler.java  | 22 +++++++++++++++++++---
 .../repository/ResourcePropertyRepository.java     |  2 ++
 2 files changed, 21 insertions(+), 3 deletions(-)

diff --git a/data-resource-management-service/drms-rdbms-impl/drms-server/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java b/data-resource-management-service/drms-rdbms-impl/drms-server/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java
index ef1ed8d..d65e84a 100644
--- a/data-resource-management-service/drms-rdbms-impl/drms-server/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java
+++ b/data-resource-management-service/drms-rdbms-impl/drms-server/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java
@@ -280,6 +280,7 @@ public class ResourceServiceHandler extends ResourceServiceGrpc.ResourceServiceI
 
         SearchRequest.Builder searchRequestBuilder = SearchRequest.newBuilder();
 
+        Map<String, String> searchMap = new HashMap<>();
 
         for (ResourceSearchQuery searchQuery : resourceSearchQueries) {
 
@@ -290,6 +291,8 @@ public class ResourceServiceHandler extends ResourceServiceGrpc.ResourceServiceI
                         .setValue(searchQuery.getValue()).build();
 
                 searchRequestBuilder = searchRequestBuilder.addSearchCriteria(searchCriteria);
+            } else {
+                searchMap.put(searchQuery.getField(), searchQuery.getValue());
             }
 
         }
@@ -329,9 +332,22 @@ public class ResourceServiceHandler extends ResourceServiceGrpc.ResourceServiceI
             Entities entities = sharingManagementClient.searchEntities(callUser.getTenantId(), searchRequest);
             List<GenericResource> metadataList = new ArrayList<>();
             entities.getEntityArrayList().forEach(shrMetadata -> {
-                Optional<Resource> resourceOptional = resourceRepository.findById(shrMetadata.getId());
-                if (resourceOptional.isPresent()) {
-                    metadataList.add(ResourceMapper.map(resourceOptional.get(), shrMetadata));
+
+                if (!searchMap.isEmpty()) {
+                    searchMap.forEach((key, val) -> {
+                        List<ResourceProperty> resourceProperties = resourcePropertyRepository
+                                .findByPropertyKeyAndPropertyValueAndResourceId(key, val, shrMetadata.getId());
+                        resourceProperties.forEach(rp -> {
+                            metadataList.add(ResourceMapper.map(rp.getResource(), shrMetadata));
+                        });
+                    });
+                } else {
+
+
+                    Optional<Resource> resourceOptional = resourceRepository.findById(shrMetadata.getId());
+                    if (resourceOptional.isPresent()) {
+                        metadataList.add(ResourceMapper.map(resourceOptional.get(), shrMetadata));
+                    }
                 }
 
             });
diff --git a/data-resource-management-service/drms-rdbms-impl/drms-server/src/main/java/org/apache/airavata/drms/api/persistance/repository/ResourcePropertyRepository.java b/data-resource-management-service/drms-rdbms-impl/drms-server/src/main/java/org/apache/airavata/drms/api/persistance/repository/ResourcePropertyRepository.java
index 43638d3..9dbb20b 100644
--- a/data-resource-management-service/drms-rdbms-impl/drms-server/src/main/java/org/apache/airavata/drms/api/persistance/repository/ResourcePropertyRepository.java
+++ b/data-resource-management-service/drms-rdbms-impl/drms-server/src/main/java/org/apache/airavata/drms/api/persistance/repository/ResourcePropertyRepository.java
@@ -10,6 +10,8 @@ public interface ResourcePropertyRepository extends JpaRepository<ResourceProper
 
     List<ResourceProperty> findByPropertyKeyAndResourceId(String key, String resourceId);
 
+    List<ResourceProperty> findByPropertyKeyAndPropertyValueAndResourceId(String key,String value, String resourceId);
+
     List<ResourceProperty> findAllByResourceId(String resourceId);
 
     void deleteAllByPropertyKeyAndResourceId(String propertyKey, String resourceId);