mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-12 00:15:44 +01:00
Group Resource now accepts a list of member's names instead of full user objects
This commit is contained in:
@@ -1,13 +1,9 @@
|
||||
package sonia.scm.api.v2.resources;
|
||||
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import org.mapstruct.AfterMapping;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mapping;
|
||||
import org.mapstruct.MappingTarget;
|
||||
import sonia.scm.group.Group;
|
||||
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Mapper
|
||||
public abstract class GroupDtoToGroupMapper {
|
||||
@@ -16,15 +12,4 @@ public abstract class GroupDtoToGroupMapper {
|
||||
@Mapping(target = "lastModified", ignore = true)
|
||||
public abstract Group map(GroupDto groupDto);
|
||||
|
||||
@AfterMapping
|
||||
void mapMembers(GroupDto dto, @MappingTarget Group target) {
|
||||
target.setMembers(
|
||||
dto
|
||||
.getEmbedded()
|
||||
.getItemsBy("members")
|
||||
.stream()
|
||||
.map(m -> m.getAttribute("name"))
|
||||
.map(JsonNode::asText)
|
||||
.collect(Collectors.toList()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,8 @@ import org.junit.Test;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
import sonia.scm.group.Group;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import static java.util.Arrays.asList;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
@@ -21,14 +23,7 @@ public class GroupDtoToGroupMapperTest {
|
||||
@Test
|
||||
public void shouldMapMembers() {
|
||||
GroupDto dto = new GroupDto();
|
||||
|
||||
MemberDto member1 = new MemberDto();
|
||||
member1.getAttributes().put("name", new TextNode("member1"));
|
||||
MemberDto member2 = new MemberDto();
|
||||
member2.getAttributes().put("name", new TextNode("member2"));
|
||||
|
||||
dto.withMembers(asList(member1, member2));
|
||||
|
||||
dto.setMembers(Arrays.asList("member1", "member2"));
|
||||
Group group = Mappers.getMapper(GroupDtoToGroupMapper.class).map(dto);
|
||||
|
||||
assertEquals(2, group.getMembers().size());
|
||||
|
||||
Reference in New Issue
Block a user