@@ -0,0 +1,1265 @@
+package com.google.step.coffee.servlets;%0A%0Aimport com.google.step.coffee.HttpError;%0Aimport com.google.step.coffee.JsonServlet;%0Aimport com.google.step.coffee.JsonServletRequest;%0Aimport com.google.step.coffee.PermissionChecker;%0Aimport com.google.step.coffee.data.GroupStore;%0Aimport com.google.step.coffee.entity.Group;%0Aimport com.google.step.coffee.entity.GroupMembership;%0Aimport com.google.step.coffee.entity.User;%0A%0Aimport javax.servlet.annotation.WebServlet;%0Aimport java.io.IOException;%0Aimport java.util.stream.Collectors;%0A%0A@WebServlet(%22/api/groupMembers%22)%0Apublic class GroupMembersServlet extends JsonServlet %7B%0A  private GroupStore groupStore = new GroupStore();%0A%0A  private static class GroupMember %7B%0A    public final User user;%0A    public final GroupMembership.Status status;%0A%0A    public GroupMember(User user, GroupMembership.Status status) %7B%0A      this.user = user;%0A      this.status = status;%0A    %7D%0A  %7D%0A%0A  @Override%0A  public Object get(JsonServletRequest request) throws IOException, HttpError %7B%0A    PermissionChecker.ensureLoggedIn();%0A    Group group = Group.fromEntity(request.getEntityFromParameter(%22id%22, %22group%22));%0A    return groupStore.getMembers(group).stream()%0A        .map(x -%3E new GroupMember(x.user(), x.status())).collect(Collectors.toList());%0A  %7D%0A%7D%0A

Implement group members endpoint