diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/Group2GroupDtoMapper.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/Group2GroupDtoMapper.java index 337c62d0c9..2b5828aa23 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/Group2GroupDtoMapper.java +++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/Group2GroupDtoMapper.java @@ -12,7 +12,7 @@ import sonia.scm.util.AssertUtil; import javax.ws.rs.core.UriInfo; import java.time.Instant; -import java.util.Collection; +import java.util.List; import java.util.Optional; import java.util.stream.Collectors; @@ -41,8 +41,10 @@ public abstract class Group2GroupDtoMapper { target.add(linksBuilder.build()); } - Collection mapMembers(Collection members, @Context UriInfo uriInfo) { - return members.stream().map(name -> this.createMember(name, uriInfo)).collect(Collectors.toList()); + @AfterMapping + void mapMembers(Group group, @MappingTarget GroupDto target, @Context UriInfo uriInfo) { + List memberDtos = group.getMembers().stream().map(name -> this.createMember(name, uriInfo)).collect(Collectors.toList()); + target.withEmbedded("members", memberDtos); } private MemberDto createMember(String name, UriInfo uriInfo) { diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/GroupDto.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/GroupDto.java index 754a933e7c..37412967b7 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/GroupDto.java +++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/GroupDto.java @@ -7,7 +7,6 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.time.Instant; -import java.util.Collection; import java.util.List; import java.util.Optional; @@ -20,7 +19,6 @@ public class GroupDto extends HalRepresentation { private Optional lastModified; private String name; private String type; - private Collection members; @Override protected HalRepresentation add(Links links) { diff --git a/scm-webapp/src/test/java/sonia/scm/api/v2/resources/Group2GroupDtoMapperTest.java b/scm-webapp/src/test/java/sonia/scm/api/v2/resources/Group2GroupDtoMapperTest.java index 190c74d2c4..dcaa01ee57 100644 --- a/scm-webapp/src/test/java/sonia/scm/api/v2/resources/Group2GroupDtoMapperTest.java +++ b/scm-webapp/src/test/java/sonia/scm/api/v2/resources/Group2GroupDtoMapperTest.java @@ -79,8 +79,8 @@ public class Group2GroupDtoMapperTest { GroupDto groupDto = mapper.groupToGroupDto(group, uriInfo); - assertEquals(10, groupDto.getMembers().size()); - MemberDto actualMember = groupDto.getMembers().iterator().next(); + assertEquals(10, groupDto.getEmbedded().getItemsBy("members").size()); + MemberDto actualMember = (MemberDto) groupDto.getEmbedded().getItemsBy("members").iterator().next(); assertEquals("user0", actualMember.getName()); assertEquals("http://example.com/base/v2/users/user0", actualMember.getLinks().getLinkBy("self").get().getHref()); }