Sort members in ListMembers REST endpoint before returning them
Change-Id: I8bdcc7de8e10f785a88e9e848e7204e69c45d81a Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
This commit is contained in:
@@ -14,8 +14,10 @@
|
|||||||
|
|
||||||
package com.google.gerrit.server.group;
|
package com.google.gerrit.server.group;
|
||||||
|
|
||||||
|
import com.google.common.collect.ComparisonChain;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
|
import com.google.common.collect.Ordering;
|
||||||
import com.google.gerrit.common.data.GroupDetail;
|
import com.google.gerrit.common.data.GroupDetail;
|
||||||
import com.google.gerrit.common.errors.NoSuchGroupException;
|
import com.google.gerrit.common.errors.NoSuchGroupException;
|
||||||
import com.google.gerrit.extensions.restapi.AuthException;
|
import com.google.gerrit.extensions.restapi.AuthException;
|
||||||
@@ -36,6 +38,7 @@ import com.google.inject.Inject;
|
|||||||
import org.kohsuke.args4j.Option;
|
import org.kohsuke.args4j.Option;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
import java.util.Comparator;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -63,7 +66,17 @@ public class ListMembers implements RestReadView<GroupResource> {
|
|||||||
Exception {
|
Exception {
|
||||||
final Map<Account.Id, MemberInfo> members =
|
final Map<Account.Id, MemberInfo> members =
|
||||||
getMembers(resource.getGroupUUID(), new HashSet<AccountGroup.UUID>());
|
getMembers(resource.getGroupUUID(), new HashSet<AccountGroup.UUID>());
|
||||||
return Lists.newArrayList(members.values());
|
final List<MemberInfo> memberInfos = Lists.newArrayList(members.values());
|
||||||
|
Collections.sort(memberInfos, new Comparator<MemberInfo>() {
|
||||||
|
@Override
|
||||||
|
public int compare(MemberInfo a, MemberInfo b) {
|
||||||
|
return ComparisonChain.start()
|
||||||
|
.compare(a.fullName, b.fullName, Ordering.natural().nullsFirst())
|
||||||
|
.compare(a.preferredEmail, b.preferredEmail, Ordering.natural().nullsFirst())
|
||||||
|
.compare(a.id, b.id, Ordering.natural().nullsFirst()).result();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return memberInfos;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<Account.Id, MemberInfo> getMembers(
|
private Map<Account.Id, MemberInfo> getMembers(
|
||||||
|
|||||||
Reference in New Issue
Block a user