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 @@ -109,7 +109,7 @@ public ApiResponse<String> deleteScrapContents(@PathVariable Long contentId, @Lo
@Operation(
summary = "스크랩한 컨텐츠 조회 API",
description = """
사용자가 스크랩한 컨텐츠를 조회합니다.
사용자의 현재 직무 기준 사용자가 스크랩한 컨텐츠를 조회합니다.
Query Parameters:
- 'page': 페이지 번호 (기본값: 1)
- 'size': 페이지 크기 (기본값: 10)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,9 @@ public interface ContentScrapRepository extends JpaRepository<ContentScrap, Long
@Query("SELECT cs FROM ContentScrap cs WHERE cs.member = :member")
List<ContentScrap> findByMember(@Param("member") Member member);

//회원이 스크랩한 컨텐츠를 현재 직무 기준 같은 것 조회
@Query("SELECT cs FROM ContentScrap cs JOIN FETCH cs.content c WHERE cs.member = :member AND c.job.id = :jobId")
@Query("SELECT cs FROM ContentScrap cs " +
"JOIN FETCH cs.content c " +
"WHERE cs.member = :member AND c.job.id = :jobId")
Page<ContentScrap> findByMemberAndJobId(@Param("member") Member member, @Param("jobId") Long jobId, Pageable pageable);

}
Original file line number Diff line number Diff line change
Expand Up @@ -53,25 +53,24 @@ public void deleteScrapContents(Long contentId, Member member) {
@Transactional(readOnly = true)
public PageResponseDTO<List<ContentScrapResponseDTO>> getScrapContents(Member member, int page, int size) {

// 로그인한 사용자의 직무 ID 확인
Long jobId = member.getJob().getId();
if (jobId == null) {
// null 체크 -> jobid가 아니라 job으로 수정
if (member.getJob() == null) {
throw new GeneralException(CommonErrorCode.NOT_FOUND_BY_JOB_ID);
}
Long jobId = member.getJob().getId();

PageRequest pageRequest = PageRequest.of(page - 1, size);

// 로그인한 사용자가 스크랩한 콘텐츠 중 현재 직무 ID와 일치하는 것만 필터링
Page<ContentScrap> scraps = contentScrapRepository.findByMemberAndJobId(member, jobId, pageRequest);

List<ContentScrapResponseDTO> contentList = scraps.stream()
.map(ContentScrapConverter::toContentScrapResponseDTO)
.toList();

return PageResponseDTO.<List<ContentScrapResponseDTO>>builder()
.page(page)
.hasNext(scraps.hasNext())
.result(contentList)
.build();
.page(page)
.hasNext(scraps.hasNext())
.result(contentList)
.build();
}
}