mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-12 08:25:44 +01:00
Model members as embedded partial users
This commit is contained in:
@@ -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<MemberDto> mapMembers(Collection<String> 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<MemberDto> memberDtos = group.getMembers().stream().map(name -> this.createMember(name, uriInfo)).collect(Collectors.toList());
|
||||
target.withEmbedded("members", memberDtos);
|
||||
}
|
||||
|
||||
private MemberDto createMember(String name, UriInfo uriInfo) {
|
||||
|
||||
@@ -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<Instant> lastModified;
|
||||
private String name;
|
||||
private String type;
|
||||
private Collection<MemberDto> members;
|
||||
|
||||
@Override
|
||||
protected HalRepresentation add(Links links) {
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user