diff --git a/backend/src/main/java/com/twtw/backend/domain/group/mapper/GroupMapper.java b/backend/src/main/java/com/twtw/backend/domain/group/mapper/GroupMapper.java index b8cba684..08b5b827 100644 --- a/backend/src/main/java/com/twtw/backend/domain/group/mapper/GroupMapper.java +++ b/backend/src/main/java/com/twtw/backend/domain/group/mapper/GroupMapper.java @@ -7,10 +7,9 @@ import com.twtw.backend.domain.group.entity.GroupMember; import com.twtw.backend.domain.member.entity.Member; -import org.mapstruct.Mapper; -import org.mapstruct.Mapping; -import org.mapstruct.MappingConstants; +import org.mapstruct.*; +import java.util.List; import java.util.UUID; @Mapper(componentModel = MappingConstants.ComponentModel.SPRING) @@ -33,4 +32,13 @@ public interface GroupMapper { @Mapping(target = "memberId", source = "member.id") ShareInfoResponse toShareInfo(GroupMember groupMember); + @Named("groupMemberToGroupInfoResponse") + @Mapping(target = "groupId", source = "groupMember.group.id") + @Mapping(target = "leaderId", source = "groupMember.group.leaderId") + @Mapping(target = "name", source = "groupMember.group.name") + @Mapping(target = "groupImage", source = "groupMember.group.groupImage") + GroupInfoResponse toGroupInfoResponse(GroupMember groupMember); + + @IterableMapping(qualifiedByName = "groupMemberToGroupInfoResponse") + List toMyGroupsInfo(List groupMembers); } diff --git a/backend/src/main/java/com/twtw/backend/domain/group/service/GroupService.java b/backend/src/main/java/com/twtw/backend/domain/group/service/GroupService.java index cd99f382..2d051d2c 100644 --- a/backend/src/main/java/com/twtw/backend/domain/group/service/GroupService.java +++ b/backend/src/main/java/com/twtw/backend/domain/group/service/GroupService.java @@ -114,16 +114,8 @@ public GroupInfoResponse getGroupInfoResponse(Group group) { return groupMapper.toGroupInfo(group); } - @Transactional + @Transactional(readOnly = true) public List getMyGroups(){ - List responses = new ArrayList<>(); - - Member loginMember = authService.getMemberByJwt(); - - for(GroupMember groupMember : loginMember.getGroupMembers()){ - responses.add(groupMapper.toGroupInfo(groupMember.getGroup())); - } - - return responses; + return groupMapper.toMyGroupsInfo(authService.getMemberByJwt().getGroupMembers()); } }