Skip to content

Commit

Permalink
FRI-493 Function updated
Browse files Browse the repository at this point in the history
  • Loading branch information
QuyenLy87 committed Jan 10, 2023
1 parent 286b824 commit e2ed4c6
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 27 deletions.
38 changes: 16 additions & 22 deletions src/main/java/org/ihtsdo/buildcloud/core/dao/BuildDAOImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@
import org.apache.commons.codec.DecoderException;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.ihtsdo.buildcloud.core.dao.helper.S3PathHelper;
import org.ihtsdo.buildcloud.core.dao.helper.ListHelper;
import org.ihtsdo.buildcloud.core.dao.helper.S3PathHelper;
import org.ihtsdo.buildcloud.core.dao.io.AsyncPipedStreamBean;
import org.ihtsdo.buildcloud.core.entity.*;
import org.ihtsdo.buildcloud.core.service.BuildService;
Expand Down Expand Up @@ -613,7 +613,7 @@ private BuildPage<Build> findBuilds(final String productDirectoryPath, final Str
joinBuildConfigurations(allBuilds);
}

sortBuilds(pageRequest, userPaths, allBuilds);
sortBuilds(pageRequest, allBuilds);
pagedBuilds = pageBuilds(allBuilds, pageNumber, pageSize);

if (pageRequest.getSort().getOrderFor("buildName") == null && Boolean.TRUE.equals(includeBuildConfiguration)) {
Expand All @@ -638,37 +638,37 @@ private BuildPage<Build> findBuilds(final String productDirectoryPath, final Str
return new BuildPage<>(allBuilds.size(), totalPages, pageNumber, pageSize, pagedBuilds);
}

private void sortBuilds(PageRequest pageRequest, List<String> userPaths, List<Build> allBuilds) {
private void sortBuilds(PageRequest pageRequest, List<Build> allBuilds) {
Comparator<Build> comparator = Comparator.nullsLast(null);
Sort sort = pageRequest.getSort();
for (Sort.Order order : sort.toList()) {
switch (order.getProperty()) {
case "buildName":
if (order.getDirection().isDescending()) {
comparator = comparator.thenComparing(Build::getBuildName).reversed();
comparator = comparator.thenComparing(Build::getBuildName, Comparator.nullsLast(Comparator.reverseOrder()));
} else {
comparator = comparator.thenComparing(Build::getBuildName);
comparator = comparator.thenComparing(Build::getBuildName, Comparator.nullsLast(Comparator.naturalOrder()));
}
break;
case "creationTime":
if (order.getDirection().isDescending()) {
comparator = comparator.thenComparing(Build::getId).reversed();
comparator = comparator.thenComparing(Build::getCreationTime, Comparator.nullsLast(Comparator.reverseOrder()));
} else {
comparator = comparator.thenComparing(Build::getId);
comparator = comparator.thenComparing(Build::getCreationTime, Comparator.nullsLast(Comparator.naturalOrder()));
}
break;
case "status":
if (order.getDirection().isDescending()) {
comparator = comparator.thenComparing(Build::getStatus).reversed();
comparator = comparator.thenComparing(Build::getStatus, Comparator.nullsLast(Comparator.reverseOrder()));
} else {
comparator = comparator.thenComparing(Build::getStatus);
comparator = comparator.thenComparing(Build::getStatus, Comparator.nullsLast(Comparator.naturalOrder()));
}
break;
case "buildUser":
if (order.getDirection().isDescending()) {
comparator = comparator.thenComparing(Build::getBuildUser).reversed();
comparator = comparator.thenComparing(Build::getBuildUser, Comparator.nullsLast(Comparator.reverseOrder()));
} else {
comparator = comparator.thenComparing(Build::getBuildUser);
comparator = comparator.thenComparing(Build::getBuildUser, Comparator.nullsLast(Comparator.naturalOrder()));
}
break;
default:
Expand Down Expand Up @@ -763,21 +763,15 @@ private List<Build> pageBuilds(List<Build> builds, int pageNumber, int pageSize)
}

private void joinUsers(List<Build> builds, List<String> userPaths) {
builds.forEach(build -> {
build.setBuildUser(getBuildUser(build, userPaths));
});
builds.forEach(build -> build.setBuildUser(getBuildUser(build, userPaths)));
}

private void joinTags(List<Build> builds, List<String> userPaths) {
builds.forEach(build -> {
build.setBuildUser(getBuildUser(build, userPaths));
});
private void joinTags(List<Build> builds, List<String> tagPaths) {
builds.forEach(build -> build.setTags(getTags(build, tagPaths)));
}

private void joinRoles(List<Build> builds, List<String> tagPaths) {
builds.forEach(build -> {
build.setTags(getTags(build, tagPaths));
});
private void joinRoles(List<Build> builds, List<String> rolesPaths) {
builds.forEach(build -> build.setUserRoles(getUserRoles(build, rolesPaths)));
}

private void joinBuildConfigurations(List<Build> builds) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -610,17 +610,20 @@ public ResponseEntity createRVFFailureJiraAssociations(@PathVariable final Strin

private List<Sort.Order> createPageRequest(String[] sort) {
List<Sort.Order> orders = new ArrayList<>();
for(String item : sort) {
if (item.contains(COMMA)) {
if (sort.length == 2) {
String fieldSortProperty = sort[0];
String fieldSortDirection = sort[1];
Sort.Direction sortDirection = (fieldSortDirection != null && fieldSortDirection.equalsIgnoreCase("desc")) ? Sort.Direction.DESC : Sort.Direction.ASC;
Sort.Order order = new Sort.Order(sortDirection, fieldSortProperty);
orders.add(order);
} else {
for(String item : sort) {
String[] arr = item.split(COMMA);
String fieldSortProperty = arr[0];
String fieldSortDirection = arr[1];
Sort.Direction sortDirection = (fieldSortDirection != null && fieldSortDirection.equalsIgnoreCase("desc")) ? Sort.Direction.DESC : Sort.Direction.ASC;
Sort.Order order = new Sort.Order(sortDirection, fieldSortProperty);
orders.add(order);
} else {
Sort.Order order = new Sort.Order(null, item);
orders.add(order);
}
}
return orders;
Expand Down

0 comments on commit e2ed4c6

Please sign in to comment.