diff --git a/src/main/java/hanium/modic/backend/domain/user/service/UserService.java b/src/main/java/hanium/modic/backend/domain/user/service/UserService.java index ccbffde5..c0994082 100644 --- a/src/main/java/hanium/modic/backend/domain/user/service/UserService.java +++ b/src/main/java/hanium/modic/backend/domain/user/service/UserService.java @@ -21,7 +21,6 @@ import hanium.modic.backend.domain.user.entity.UserUpdateToken; import hanium.modic.backend.domain.user.repository.UserEntityRepository; import hanium.modic.backend.domain.user.repository.UserUpdateTokenRepository; -import hanium.modic.backend.web.user.dto.response.SearchUsersResponse; import hanium.modic.backend.web.user.dto.response.UserCreateResponse; import hanium.modic.backend.web.user.dto.response.UserInfoResponse; import lombok.RequiredArgsConstructor; @@ -94,7 +93,7 @@ public UserInfoResponse getUserInfo(UserEntity user) { // 이름으로 회원 목록 조회 @Transactional(readOnly = true) - public Page searchUsersByName(final String keyword, final int page, final int size) { + public Page searchUsersByName(final String keyword, final int page, final int size) { Pageable pageable = PageRequest.of(page, size, Sort.by(Sort.Direction.ASC, "name")); // 1. 이름으로 유저 목록 조회 @@ -107,10 +106,9 @@ public Page searchUsersByName(final String keyword, final i // 3. 각 유저의 이미지 URL 조회 및 응답 변환 return users.map(user -> { - final boolean hasUserImage = imageGetUrlMap.containsKey(user.getId()); - final String resolvedImageUrl = imageGetUrlMap.getOrDefault(user.getId(), null); + final String userImageUrl = imageGetUrlMap.getOrDefault(user.getId(), null); - return SearchUsersResponse.of(user, hasUserImage, resolvedImageUrl); + return UserInfoResponse.of(user, userImageUrl); }); } diff --git a/src/main/java/hanium/modic/backend/web/user/controller/UserController.java b/src/main/java/hanium/modic/backend/web/user/controller/UserController.java index 3df1f263..ab8a8bbf 100644 --- a/src/main/java/hanium/modic/backend/web/user/controller/UserController.java +++ b/src/main/java/hanium/modic/backend/web/user/controller/UserController.java @@ -35,7 +35,6 @@ import hanium.modic.backend.web.user.dto.request.UserCreateRequest; import hanium.modic.backend.web.user.dto.response.GetCoinBalanceResponse; import hanium.modic.backend.web.user.dto.response.GetUserUpdateTokenResponse; -import hanium.modic.backend.web.user.dto.response.SearchUsersResponse; import hanium.modic.backend.web.user.dto.response.UserCreateResponse; import hanium.modic.backend.web.user.dto.response.UserInfoResponse; import io.swagger.v3.oas.annotations.Operation; @@ -109,12 +108,12 @@ public ResponseEntity> getUserInfo(@CurrentUser Us description = "검색어를 기반으로 사용자 목록을 페이지 단위로 조회합니다. page는 0부터 시작합니다." ) @ApiErrorMapping({USER_INPUT_EXCEPTION}) - public ResponseEntity>> searchUsersByName( + public ResponseEntity>> searchUsersByName( @RequestParam @NotBlank(message = "검색어는 필수입니다.") String keyword, @RequestParam(required = false, defaultValue = "0") @Min(value = 0, message = "페이지 번호는 0 이상이어야 합니다") Integer page, @RequestParam(required = false, defaultValue = "10") @Min(value = 10, message = "페이지 크기는 10 이상이어야 합니다.") @Max(value = 20, message = "페이지 크기는 20 이하여야 합니다.") Integer size ) { - Page result = userService.searchUsersByName( + Page result = userService.searchUsersByName( keyword.strip(), page, size ); return ResponseEntity.ok(AppResponse.ok(PageResponse.of(result))); diff --git a/src/main/java/hanium/modic/backend/web/user/dto/response/SearchUsersResponse.java b/src/main/java/hanium/modic/backend/web/user/dto/response/SearchUsersResponse.java deleted file mode 100644 index 4bef49b7..00000000 --- a/src/main/java/hanium/modic/backend/web/user/dto/response/SearchUsersResponse.java +++ /dev/null @@ -1,15 +0,0 @@ -package hanium.modic.backend.web.user.dto.response; - -import hanium.modic.backend.domain.user.entity.UserEntity; - -public record SearchUsersResponse( - Long userId, - String userName, - boolean hasUserImage, - String userImageUrl -) { - - public static SearchUsersResponse of(UserEntity user, boolean hasUserImage, String resolvedImageUrl) { - return new SearchUsersResponse(user.getId(), user.getName(), hasUserImage, resolvedImageUrl); - } -} diff --git a/src/test/java/hanium/modic/backend/domain/user/service/UserServiceTest.java b/src/test/java/hanium/modic/backend/domain/user/service/UserServiceTest.java index 599255b6..5154bd0a 100644 --- a/src/test/java/hanium/modic/backend/domain/user/service/UserServiceTest.java +++ b/src/test/java/hanium/modic/backend/domain/user/service/UserServiceTest.java @@ -29,7 +29,6 @@ import hanium.modic.backend.domain.user.repository.UserEntityRepository; import hanium.modic.backend.domain.user.repository.UserImageEntityRepository; import hanium.modic.backend.domain.user.repository.UserUpdateTokenRepository; -import hanium.modic.backend.web.user.dto.response.SearchUsersResponse; import hanium.modic.backend.web.user.dto.response.UserCreateResponse; import hanium.modic.backend.web.user.dto.response.UserInfoResponse; @@ -153,7 +152,7 @@ void searchUsersByName_success() { when(userEntityRepository.findByNameContainingIgnoreCase(eq("user"), any(Pageable.class))).thenReturn(users); when(userImageService.createImageGetUrlMap(List.of(1L, 2L))).thenReturn(Map.of()); - Page result = userService.searchUsersByName(keyword, page, size); + Page result = userService.searchUsersByName(keyword, page, size); assertThat(result.getContent()).hasSize(2); assertThat(result.getContent().get(0).userImageUrl()).isEqualTo(null); @@ -182,7 +181,7 @@ void searchUsersByName_emptyResult() { when(userEntityRepository.findByNameContainingIgnoreCase(eq("absent"), any(Pageable.class))) .thenReturn(emptyPage); - Page result = userService.searchUsersByName(keyword, page, size); + Page result = userService.searchUsersByName(keyword, page, size); assertThat(result.getContent()).isEmpty(); assertThat(result.getTotalElements()).isZero(); diff --git a/src/test/java/hanium/modic/backend/web/user/controller/UserControllerTest.java b/src/test/java/hanium/modic/backend/web/user/controller/UserControllerTest.java index b1f1e4d3..636b81f2 100644 --- a/src/test/java/hanium/modic/backend/web/user/controller/UserControllerTest.java +++ b/src/test/java/hanium/modic/backend/web/user/controller/UserControllerTest.java @@ -15,8 +15,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; -import org.springframework.data.domain.PageImpl; -import org.springframework.data.domain.PageRequest; import org.springframework.http.MediaType; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.Authentication; @@ -38,7 +36,6 @@ import hanium.modic.backend.web.user.dto.request.UserCreateRequest; import hanium.modic.backend.web.user.dto.request.GetUserUpdateTokenRequest; import hanium.modic.backend.web.user.dto.request.UpdateUserEmailRequest; -import hanium.modic.backend.web.user.dto.response.SearchUsersResponse; import hanium.modic.backend.web.user.dto.response.UserInfoResponse; @WebMvcTest(controllers = UserController.class)