Adds group suggestions into ListGroups REST API.

This is a different approach of
Ie86de1f73ccd7bdec041730d95301d6aa3bdbdc4. This allows group
auto completion to be used in a plugin's UI.

Change-Id: Ia1cfa068246127c29f1b74f6aa4562a9167c301e
This commit is contained in:
Yuxuan 'fishy' Wang
2015-09-08 17:53:23 -07:00
parent b5032e1aef
commit 8c48525834
6 changed files with 173 additions and 44 deletions

View File

@@ -19,10 +19,12 @@ import static com.google.gerrit.sshd.CommandMetaData.Mode.MASTER_OR_SLAVE;
import com.google.common.base.MoreObjects;
import com.google.common.base.Strings;
import com.google.gerrit.extensions.common.GroupInfo;
import com.google.gerrit.extensions.restapi.BadRequestException;
import com.google.gerrit.extensions.restapi.Url;
import com.google.gerrit.reviewdb.client.AccountGroup;
import com.google.gerrit.server.IdentifiedUser;
import com.google.gerrit.server.account.GetGroups;
import com.google.gerrit.server.account.GroupBackend;
import com.google.gerrit.server.account.GroupCache;
import com.google.gerrit.server.account.GroupControl;
import com.google.gerrit.server.group.GroupJson;
@@ -71,12 +73,13 @@ public class ListGroupsCommand extends SshCommand {
final Provider<IdentifiedUser> identifiedUser,
final IdentifiedUser.GenericFactory userFactory,
final Provider<GetGroups> accountGetGroups,
final GroupJson json) {
final GroupJson json,
GroupBackend groupBackend) {
super(groupCache, groupControlFactory, genericGroupControlFactory,
identifiedUser, userFactory, accountGetGroups, json);
identifiedUser, userFactory, accountGetGroups, json, groupBackend);
}
void display(final PrintWriter out) throws OrmException {
void display(final PrintWriter out) throws OrmException, BadRequestException {
final ColumnFormatter formatter = new ColumnFormatter(out, '\t');
for (final GroupInfo info : get()) {
formatter.addColumn(MoreObjects.firstNonNull(info.name, "n/a"));