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]
