mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-12 16:35:45 +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;
|
package sonia.scm.api.v2.resources;
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
|
||||||
import org.mapstruct.AfterMapping;
|
|
||||||
import org.mapstruct.Mapper;
|
import org.mapstruct.Mapper;
|
||||||
import org.mapstruct.Mapping;
|
import org.mapstruct.Mapping;
|
||||||
import org.mapstruct.MappingTarget;
|
|
||||||
import sonia.scm.group.Group;
|
import sonia.scm.group.Group;
|
||||||
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
@Mapper
|
@Mapper
|
||||||
public abstract class GroupDtoToGroupMapper {
|
public abstract class GroupDtoToGroupMapper {
|
||||||
@@ -16,15 +12,4 @@ public abstract class GroupDtoToGroupMapper {
|
|||||||
@Mapping(target = "lastModified", ignore = true)
|
@Mapping(target = "lastModified", ignore = true)
|
||||||
public abstract Group map(GroupDto groupDto);
|
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 org.mapstruct.factory.Mappers;
|
||||||
import sonia.scm.group.Group;
|
import sonia.scm.group.Group;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
import static java.util.Arrays.asList;
|
import static java.util.Arrays.asList;
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
@@ -21,14 +23,7 @@ public class GroupDtoToGroupMapperTest {
|
|||||||
@Test
|
@Test
|
||||||
public void shouldMapMembers() {
|
public void shouldMapMembers() {
|
||||||
GroupDto dto = new GroupDto();
|
GroupDto dto = new GroupDto();
|
||||||
|
dto.setMembers(Arrays.asList("member1", "member2"));
|
||||||
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));
|
|
||||||
|
|
||||||
Group group = Mappers.getMapper(GroupDtoToGroupMapper.class).map(dto);
|
Group group = Mappers.getMapper(GroupDtoToGroupMapper.class).map(dto);
|
||||||
|
|
||||||
assertEquals(2, group.getMembers().size());
|
assertEquals(2, group.getMembers().size());
|
||||||
|
|||||||
Reference in New Issue
Block a user