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

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


The following commit(s) were added to refs/heads/develop by this push:
     new 210d43d1e change images page model
210d43d1e is described below

commit 210d43d1ec504de5454e5cb21c5c9f7bb015e284
Author: Denys Yankiv <[email protected]>
AuthorDate: Tue Aug 9 19:00:57 2022 +0300

    change images page model
---
 .../resources/ImageExploratoryResource.java        |  4 +-
 .../resources/dto/ProjectImagesInfo.java           | 13 ++----
 .../service/ImageExploratoryService.java           |  6 +--
 .../service/impl/ImageExploratoryServiceImpl.java  | 49 +++++++++++++++-------
 4 files changed, 42 insertions(+), 30 deletions(-)

diff --git 
a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/ImageExploratoryResource.java
 
b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/ImageExploratoryResource.java
index ae1f798df..3c7085ec5 100644
--- 
a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/ImageExploratoryResource.java
+++ 
b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/ImageExploratoryResource.java
@@ -102,7 +102,7 @@ public class ImageExploratoryResource {
     @Path("user")
     public Response getImagesForUser(@Auth UserInfo ui) {
         log.debug("Getting images for user {}", ui.getName());
-        final ProjectImagesInfo images = 
imageExploratoryService.getImagesOfUser(ui);
+        final ImagesPageInfo images = 
imageExploratoryService.getImagesOfUser(ui);
         return Response.ok(images).build();
     }
 
@@ -110,7 +110,7 @@ public class ImageExploratoryResource {
     @Path("user")
     public Response getImagesForUser(@Auth UserInfo ui, @Valid @NotNull 
ImageFilter imageFilter) {
         log.debug("Getting images for user {} with filter {}", ui.getName(), 
imageFilter);
-        final ProjectImagesInfo images = 
imageExploratoryService.getImagesOfUserWithFilter(ui, imageFilter);
+        final ImagesPageInfo images = 
imageExploratoryService.getImagesOfUserWithFilter(ui, imageFilter);
         return Response.ok(images).build();
     }
 
diff --git 
a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/ProjectImagesInfo.java
 
b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/ProjectImagesInfo.java
index d561a78f1..8743214c4 100644
--- 
a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/ProjectImagesInfo.java
+++ 
b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/dto/ProjectImagesInfo.java
@@ -20,23 +20,18 @@
 package com.epam.datalab.backendapi.resources.dto;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.EqualsAndHashCode;
-import lombok.ToString;
+import lombok.*;
 
 import java.util.List;
-import java.util.Map;
 
 @AllArgsConstructor
 @Builder
 @EqualsAndHashCode
 @ToString
+@Data
 public class ProjectImagesInfo {
     @JsonProperty
-    private Map<String,List<ImageInfoRecord>> projectImages;
+    private String project;
     @JsonProperty
-    private ImageFilter imageFilter;
-    @JsonProperty
-    private ImageFilterFormData filterData;
+    private List<ImageInfoRecord> images;
 }
diff --git 
a/services/self-service/src/main/java/com/epam/datalab/backendapi/service/ImageExploratoryService.java
 
b/services/self-service/src/main/java/com/epam/datalab/backendapi/service/ImageExploratoryService.java
index b9cf922c1..b07a83616 100644
--- 
a/services/self-service/src/main/java/com/epam/datalab/backendapi/service/ImageExploratoryService.java
+++ 
b/services/self-service/src/main/java/com/epam/datalab/backendapi/service/ImageExploratoryService.java
@@ -23,7 +23,7 @@ import com.epam.datalab.auth.UserInfo;
 import com.epam.datalab.backendapi.resources.dto.ImageFilter;
 import com.epam.datalab.backendapi.resources.dto.ImageInfoRecord;
 import com.epam.datalab.backendapi.resources.dto.ImageUserPermissions;
-import com.epam.datalab.backendapi.resources.dto.ProjectImagesInfo;
+import com.epam.datalab.backendapi.resources.dto.ImagesPageInfo;
 import com.epam.datalab.model.exploratory.Image;
 
 import java.util.List;
@@ -42,8 +42,8 @@ public interface ImageExploratoryService {
 
     List<ImageInfoRecord> getImagesForProject(String project);
 
-    ProjectImagesInfo getImagesOfUser(UserInfo user);
-    ProjectImagesInfo getImagesOfUserWithFilter(UserInfo user, ImageFilter 
imageFilter);
+    ImagesPageInfo getImagesOfUser(UserInfo user);
+    ImagesPageInfo getImagesOfUserWithFilter(UserInfo user, ImageFilter 
imageFilter);
 
     void shareImageWithProjectGroups(UserInfo user, String imageName, String 
projectName, String endpoint);
 
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 c5ee95534..cec04196f 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
@@ -190,12 +190,8 @@ public class ImageExploratoryServiceImpl implements 
ImageExploratoryService {
     }
 
     @Override
-    public ProjectImagesInfo getImagesOfUser(UserInfo user) {
+    public ImagesPageInfo getImagesOfUser(UserInfo user) {
         log.debug("Loading list of images for user {}", user.getName());
-        Map<String, List<ImageInfoRecord>> projectImages = new HashMap<>();
-        projectService.getUserProjects(user, Boolean.FALSE).stream()
-                .map(ProjectDTO::getName)
-                .forEach(name->projectImages.put(name, new ArrayList<>()));
 
         List<ImageInfoRecord> images = 
imageExploratoryDao.getImagesOfUser(user.getName());
         images.forEach(img -> 
img.setSharingStatus(getImageSharingStatus(user.getName(),img)));
@@ -210,20 +206,29 @@ public class ImageExploratoryServiceImpl implements 
ImageExploratoryService {
         userSettingsDAO.setUserImageFilter(user.getName(),imageFilter);
         images.forEach(img -> 
img.setImageUserPermissions(getUserImagePermissions(user,img)));
 
-        
projectImages.putAll(images.stream().collect(Collectors.groupingBy(ImageInfoRecord::getProject)));
-        return ProjectImagesInfo.builder()
-                .projectImages(projectImages)
+
+        final List<ImageInfoRecord> finalImages = images;
+
+        List<ProjectImagesInfo> projectImagesInfoList = 
projectService.getUserProjects(user, Boolean.FALSE)
+                .stream()
+                .map(p -> {
+                    List<ImageInfoRecord> im = finalImages.stream().filter(img 
-> img.getProject().equals(p.getName())).collect(Collectors.toList());
+                    return ProjectImagesInfo.builder()
+                            .project(p.getName())
+                            .images(im)
+                            .build();
+                })
+                .collect(Collectors.toList());
+
+        return ImagesPageInfo.builder()
+                .projectImagesInfos(projectImagesInfoList)
                 
.imageFilter(userSettingsDAO.getImageFilter(user.getName()).get())
                 .filterData(filterData).build();
     }
 
     @Override
-    public ProjectImagesInfo getImagesOfUserWithFilter(UserInfo user, 
ImageFilter imageFilter) {
+    public ImagesPageInfo getImagesOfUserWithFilter(UserInfo user, ImageFilter 
imageFilter) {
         log.debug("Loading list of images for user {}", user.getName());
-        Map<String, List<ImageInfoRecord>> projectImages = new HashMap<>();
-        projectService.getUserProjects(user, Boolean.FALSE).stream()
-                .map(ProjectDTO::getName)
-                .forEach(name->projectImages.put(name, new ArrayList<>()));
 
         List<ImageInfoRecord> images = 
imageExploratoryDao.getImagesOfUser(user.getName());
         images.forEach(img -> 
img.setSharingStatus(getImageSharingStatus(user.getName(),img)));
@@ -236,9 +241,21 @@ public class ImageExploratoryServiceImpl implements 
ImageExploratoryService {
 
         images.forEach(img -> 
img.setImageUserPermissions(getUserImagePermissions(user,img)));
 
-        
projectImages.putAll(images.stream().collect(Collectors.groupingBy(ImageInfoRecord::getProject)));
-        return ProjectImagesInfo.builder()
-                .projectImages(projectImages)
+
+        List<ImageInfoRecord> finalImages = images;
+
+        List<ProjectImagesInfo> projectImagesInfoList = 
projectService.getUserProjects(user, Boolean.FALSE)
+                .stream()
+                .map(p -> {
+                    List<ImageInfoRecord> im = finalImages.stream().filter(img 
-> img.getProject().equals(p.getName())).collect(Collectors.toList());
+                    return ProjectImagesInfo.builder()
+                            .project(p.getName())
+                            .images(im)
+                            .build();
+                })
+                .collect(Collectors.toList());
+        return ImagesPageInfo.builder()
+                .projectImagesInfos(projectImagesInfoList)
                 .filterData(filterData)
                 .imageFilter(imageFilter)
                 .build();


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

Reply via email to