diff --git a/src/main/java/com/ceos/bankids/mapper/FamilyMapper.java b/src/main/java/com/ceos/bankids/mapper/FamilyMapper.java index 09ac55ca..cdbe58d5 100644 --- a/src/main/java/com/ceos/bankids/mapper/FamilyMapper.java +++ b/src/main/java/com/ceos/bankids/mapper/FamilyMapper.java @@ -20,6 +20,7 @@ import com.ceos.bankids.service.FamilyUserServiceImpl; import com.ceos.bankids.service.KidServiceImpl; import com.ceos.bankids.service.ParentServiceImpl; +import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; @@ -76,16 +77,21 @@ public List readFamilyKidList(User user) { throw new ForbiddenException(ErrorCode.KID_FORBIDDEN.getErrorCode()); } - FamilyUser familyUser = familyUserService.findByUser(user); - List familyUserList = familyUserService.getFamilyUserList( - familyUser.getFamily(), user); + Optional familyUser = familyUserService.findByUserNullable(user); - List kidListDTOList = familyUserList.stream().map(FamilyUser::getUser) - .filter(User::getIsKid).map(KidListDTO::new).collect( - Collectors.toList()); - Collections.sort(kidListDTOList, new KidListDTOComparator()); + if (familyUser.isEmpty()) { + return new ArrayList<>(); + } else { + List familyUserList = familyUserService.getFamilyUserList( + familyUser.get().getFamily(), user); - return kidListDTOList; + List kidListDTOList = familyUserList.stream().map(FamilyUser::getUser) + .filter(User::getIsKid).map(KidListDTO::new).collect( + Collectors.toList()); + Collections.sort(kidListDTOList, new KidListDTOComparator()); + + return kidListDTOList; + } } @Transactional diff --git a/src/main/java/com/ceos/bankids/service/FamilyUserService.java b/src/main/java/com/ceos/bankids/service/FamilyUserService.java index 2cc488a6..e000a378 100644 --- a/src/main/java/com/ceos/bankids/service/FamilyUserService.java +++ b/src/main/java/com/ceos/bankids/service/FamilyUserService.java @@ -18,8 +18,6 @@ public interface FamilyUserService { public Optional findByUserNullable(User user); - public FamilyUser findByUser(User user); - public FamilyUser findByUserAndCheckCode(User user, String code); public List getFamilyUserList(Family family, User user); diff --git a/src/main/java/com/ceos/bankids/service/FamilyUserServiceImpl.java b/src/main/java/com/ceos/bankids/service/FamilyUserServiceImpl.java index ddf721b4..439aced6 100644 --- a/src/main/java/com/ceos/bankids/service/FamilyUserServiceImpl.java +++ b/src/main/java/com/ceos/bankids/service/FamilyUserServiceImpl.java @@ -53,14 +53,6 @@ public Optional findByUserNullable(User user) { return familyUserRepository.findByUser(user); } - @Override - @Transactional(readOnly = true) - public FamilyUser findByUser(User user) { - return familyUserRepository.findByUser(user) - .orElseThrow( - () -> new BadRequestException(ErrorCode.USER_NOT_IN_ANY_FAMILY.getErrorCode())); - } - @Override @Transactional(readOnly = true) public FamilyUser findByUserAndCheckCode(User user, String code) { diff --git a/src/test/java/com/ceos/bankids/unit/controller/FamilyControllerTest.java b/src/test/java/com/ceos/bankids/unit/controller/FamilyControllerTest.java index 2e76b015..498bea8a 100644 --- a/src/test/java/com/ceos/bankids/unit/controller/FamilyControllerTest.java +++ b/src/test/java/com/ceos/bankids/unit/controller/FamilyControllerTest.java @@ -632,8 +632,8 @@ public void testIfFamilyExistButNotKidThenReturnEmptyList() { } @Test - @DisplayName("아이 조회 시 가족 없을 때, 에러 처리 하는지 확인") - public void testIfFamilyNotExistThenThrowBadRequestException() { + @DisplayName("아이 조회 시 가족 없을 때, 빈 리스트 결과 반환 하는지 확인") + public void testIfFamilyNotExistThenReturnEmptyListResult() { // given User user1 = User.builder() .id(1L) @@ -674,10 +674,10 @@ public void testIfFamilyNotExistThenThrowBadRequestException() { ); FamilyController familyController = new FamilyController(familyMapper); + CommonResponse> result = familyController.getFamilyKidList(user1); + // then - Assertions.assertThrows(BadRequestException.class, () -> { - familyController.getFamilyKidList(user1); - }); + Assertions.assertEquals(CommonResponse.onSuccess(new ArrayList()), result); } @Test