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

dyankiv pushed a commit to branch DATALAB-2895
in repository https://gitbox.apache.org/repos/asf/incubator-datalab.git

commit ba6b473735c211f3134278c712e1574dd6a9d96a
Author: Denys Yankiv <[email protected]>
AuthorDate: Mon Jul 25 16:21:10 2022 +0300

    add filter for images
---
 .../datalab/backendapi/resources/dto/ImageFilter.java    | 16 +++-------------
 .../service/impl/ImageExploratoryServiceImpl.java        | 15 ++++++++++++++-
 2 files changed, 17 insertions(+), 14 deletions(-)

diff --git 
a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/ImageFilter.java
 
b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/ImageFilter.java
index 09c50ef58..136438d5e 100644
--- 
a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/ImageFilter.java
+++ 
b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/ImageFilter.java
@@ -36,22 +36,12 @@ public class ImageFilter {
     @NonNull
     private String imageName;
     @NonNull
-    @JsonProperty("date_start")
-    private String dateStart;
-    @NonNull
-    @JsonProperty("date_end")
-    private String dateEnd;
+    private List<ImageStatus> statuses;
     @NonNull
     private List<CloudProvider> cloudProviders;
-    @NonNull
-    private List<ImageStatus> statuses;
-//    @NonNull
-//    private List<> sharingStatuses;
     @NonNull
     private List<String> templateNames;
-    @NonNull
-    private List<String> instanceNames;
-    @NonNull
-    private List<String> projects;
+    //    @NonNull
+//    private List<> sharingStatuses;
 
 }
diff --git 
a/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/ImageExploratoryServiceImpl.java
 
b/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/ImageExploratoryServiceImpl.java
index dac9db85e..b49dccf42 100644
--- 
a/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/ImageExploratoryServiceImpl.java
+++ 
b/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/ImageExploratoryServiceImpl.java
@@ -58,6 +58,7 @@ import com.google.inject.Inject;
 import com.google.inject.Singleton;
 import com.google.inject.name.Named;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -215,7 +216,9 @@ public class ImageExploratoryServiceImpl implements 
ImageExploratoryService {
         return projectService.getUserProjects(user, Boolean.FALSE)
                 .stream()
                 .map(p -> {
-                    List<ImageInfoRecord> images = 
imageExploratoryDao.getImagesOfUser(user.getName(), p.getName());
+                    List<ImageInfoRecord> images = 
filterImages(imageExploratoryDao.getImagesOfUser(user.getName(), 
p.getName()),imageFilter);
+                    List<ImageInfoRecord> sharedImages = 
filterImages(getSharedImages(user, p.getName()), imageFilter);
+                    images.addAll(sharedImages);
                     return ProjectImagesInfo.builder()
                             .project(p.getName())
                             .images(images)
@@ -336,4 +339,14 @@ public class ImageExploratoryServiceImpl implements 
ImageExploratoryService {
             userRoleDAO.insert(imageRoles);
         }
     }
+
+    private List<ImageInfoRecord> filterImages(List<ImageInfoRecord> images, 
ImageFilter filter){
+        return images.stream()
+                .filter(img -> img.getName().contains(filter.getImageName()))
+                .filter(img -> CollectionUtils.isEmpty(filter.getStatuses()) 
|| filter.getStatuses().contains(img.getStatus()))
+                .filter(img -> 
CollectionUtils.isEmpty(filter.getCloudProviders()) || 
filter.getCloudProviders().contains(img.getCloudProvider()))
+                .filter(img -> 
CollectionUtils.isEmpty(filter.getTemplateNames()) || 
filter.getTemplateNames().contains(img.getTemplateName()))
+                .collect(Collectors.toList());
+
+    }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to