mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-12 16:35:45 +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 javax.ws.rs.core.UriInfo;
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.util.Collection;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@@ -41,8 +41,10 @@ public abstract class Group2GroupDtoMapper {
|
|||||||
target.add(linksBuilder.build());
|
target.add(linksBuilder.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
Collection<MemberDto> mapMembers(Collection<String> members, @Context UriInfo uriInfo) {
|
@AfterMapping
|
||||||
return members.stream().map(name -> this.createMember(name, uriInfo)).collect(Collectors.toList());
|
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) {
|
private MemberDto createMember(String name, UriInfo uriInfo) {
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import lombok.Data;
|
|||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
@@ -20,7 +19,6 @@ public class GroupDto extends HalRepresentation {
|
|||||||
private Optional<Instant> lastModified;
|
private Optional<Instant> lastModified;
|
||||||
private String name;
|
private String name;
|
||||||
private String type;
|
private String type;
|
||||||
private Collection<MemberDto> members;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected HalRepresentation add(Links links) {
|
protected HalRepresentation add(Links links) {
|
||||||
|
|||||||
@@ -79,8 +79,8 @@ public class Group2GroupDtoMapperTest {
|
|||||||
|
|
||||||
GroupDto groupDto = mapper.groupToGroupDto(group, uriInfo);
|
GroupDto groupDto = mapper.groupToGroupDto(group, uriInfo);
|
||||||
|
|
||||||
assertEquals(10, groupDto.getMembers().size());
|
assertEquals(10, groupDto.getEmbedded().getItemsBy("members").size());
|
||||||
MemberDto actualMember = groupDto.getMembers().iterator().next();
|
MemberDto actualMember = (MemberDto) groupDto.getEmbedded().getItemsBy("members").iterator().next();
|
||||||
assertEquals("user0", actualMember.getName());
|
assertEquals("user0", actualMember.getName());
|
||||||
assertEquals("http://example.com/base/v2/users/user0", actualMember.getLinks().getLinkBy("self").get().getHref());
|
assertEquals("http://example.com/base/v2/users/user0", actualMember.getLinks().getLinkBy("self").get().getHref());
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user