diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/group/GetMember.java b/gerrit-server/src/main/java/com/google/gerrit/server/group/GetMember.java index fc610a279c..57fa909d2b 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/group/GetMember.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/group/GetMember.java @@ -14,17 +14,12 @@ package com.google.gerrit.server.group; -import com.google.gerrit.extensions.restapi.AuthException; -import com.google.gerrit.extensions.restapi.BadRequestException; -import com.google.gerrit.extensions.restapi.ResourceConflictException; import com.google.gerrit.extensions.restapi.RestReadView; import com.google.gerrit.server.group.MembersCollection.MemberInfo; public class GetMember implements RestReadView { - @Override - public MemberInfo apply(final MemberResource resource) throws AuthException, - BadRequestException, ResourceConflictException, Exception { + public MemberInfo apply(MemberResource resource) { return MembersCollection.parse(resource.getUser().getAccount()); } } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/group/Module.java b/gerrit-server/src/main/java/com/google/gerrit/server/group/Module.java index 3c039b1534..ed9f2221e6 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/group/Module.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/group/Module.java @@ -21,6 +21,7 @@ import static com.google.gerrit.server.group.MemberResource.MEMBER_KIND; import com.google.gerrit.extensions.registration.DynamicMap; import com.google.gerrit.extensions.restapi.RestApiModule; import com.google.gerrit.server.group.DeleteMembers.DeleteMember; +import com.google.gerrit.server.group.PutMembers.UpdateMember; public class Module extends RestApiModule { @Override @@ -37,6 +38,7 @@ public class Module extends RestApiModule { get(MEMBER_KIND).to(GetMember.class); post(GROUP_KIND, "members").to(PostMembers.class); put(GROUP_KIND, "members").to(PutMembers.class); + put(MEMBER_KIND).to(UpdateMember.class); delete(MEMBER_KIND).to(DeleteMember.class); child(GROUP_KIND, "groups").to(IncludedGroupsCollection.class); diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/group/PutMembers.java b/gerrit-server/src/main/java/com/google/gerrit/server/group/PutMembers.java index c6543726dc..e123a3a0f1 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/group/PutMembers.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/group/PutMembers.java @@ -224,4 +224,27 @@ class PutMembers implements RestModifyView { } } } + + static class UpdateMember implements RestModifyView { + static class Input { + } + + private final Provider get; + + @Inject + UpdateMember(Provider get) { + this.get = get; + } + + @Override + public Class inputType() { + return PutMember.Input.class; + } + + @Override + public Object apply(MemberResource resource, PutMember.Input input) { + // Do nothing, the user is already a member. + return get.get().apply(resource); + } + } }