Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
import com.web.baebaeBE.global.authorization.annotation.AuthorizationMember;
import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
Expand Down Expand Up @@ -80,13 +82,13 @@ public ResponseEntity<Void> deleteMember(
return ResponseEntity.ok().build();
}

@GetMapping("/search/{memberId}")
@AuthorizationMember
public List<MemberResponse.MemberSearchInformationResponse> searchMembers(
@PathVariable Long memberId,
@GetMapping("/search/{nickname}")
public Page<MemberResponse.MemberSearchInformationResponse> searchMembers(
@PathVariable String nickname,
Pageable page,
HttpServletRequest httpServletRequest) {

return memberService.searchMembers(memberId);
return memberService.searchMembers(nickname, page);
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
Expand Down Expand Up @@ -211,7 +213,7 @@ ResponseEntity<Void> deleteMember(@PathVariable Long memberId,

@Operation(
summary = "회원 검색",
description = "본인을 제외한 모든 회원을 검색합니다.",
description = "모든 회원을 닉네임을 기반으로 검색합니다.",
security = @SecurityRequirement(name = "bearerAuth")
)
@Parameter(
Expand All @@ -225,17 +227,11 @@ ResponseEntity<Void> deleteMember(@PathVariable Long memberId,
content = @Content(mediaType = "application/json",
examples = @ExampleObject(value = "{\n" +
" \"errorCode\": \"MM-002\",\n" +
" \"message\": \"회원정보와 토큰정보가 일치하지 않습니다.\"\n" +
" \"message\": \"토큰정보가 일치하지 않습니다.\"\n" +
"}"))
),
@ApiResponse(responseCode = "404", description = "존재하지 않는 회원",
content = @Content(mediaType = "application/json",
examples = @ExampleObject(value = "{\n" +
" \"errorCode\": \"M-002\",\n" +
" \"message\": \"존재하지 않는 회원입니다.\"\n" +
"}"))
)
})
List<MemberResponse.MemberSearchInformationResponse> searchMembers(@PathVariable Long memberId,
Page<MemberResponse.MemberSearchInformationResponse> searchMembers(@PathVariable String nickname,
Pageable page,
HttpServletRequest httpServletRequest);
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@

import java.util.List;
import java.util.Optional;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

Expand All @@ -18,7 +21,9 @@ public interface MemberRepository extends JpaRepository<Member, Long> {
boolean existsByNickname(String nickname);

Optional<Member> findByRefreshToken(String refreshToken);
List<Member> findAllByIdNot(Long memberId);

// 닉네임이 포함된 회원 목록 조회 (대소문자 구분 없이 검색)
Page<Member> findByNicknameContainingIgnoreCase(String nickname, Pageable pageable);

}

Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
Expand Down Expand Up @@ -96,12 +98,10 @@ public MemberResponse.MemberIdResponse getMemberIdByNickname(String nickname) {



// 본인 제외하고 모든 회원을 조회하는 메서드
public List<MemberResponse.MemberSearchInformationResponse> searchMembers(Long memberId) {
List<Member> members = memberRepository.findAllByIdNot(memberId);
return members.stream()
.map(member -> MemberResponse.MemberSearchInformationResponse.of(
member.getId(), member.getNickname(), member.getProfileImage()))
.collect(Collectors.toList());
// 모든 회원을 조회하는 메서드
public Page<MemberResponse.MemberSearchInformationResponse> searchMembers(String nickname, Pageable page) {
return memberRepository.findByNicknameContainingIgnoreCase(nickname, page)
.map(member -> MemberResponse.MemberSearchInformationResponse.of(member.getId(), member.getNickname(), member.getProfileImage()));

}
}