diff --git a/src/main/java/com/uspray/uspray/domain/history/repository/HistoryRepository.java b/src/main/java/com/uspray/uspray/domain/history/repository/HistoryRepository.java index cf758868..20b8d3ef 100644 --- a/src/main/java/com/uspray/uspray/domain/history/repository/HistoryRepository.java +++ b/src/main/java/com/uspray/uspray/domain/history/repository/HistoryRepository.java @@ -18,18 +18,7 @@ public interface HistoryRepository extends JpaRepository, History Page findByMemberAndOriginPrayIdIsNotNull(Member member, Pageable pageable); - Optional findByIdAndMember(Long historyId, Member member); - default History getHistoryByIdAndMember(Long historyId, Member member) { - return findByIdAndMember(historyId, member) - .orElseThrow(() -> new NotFoundException(ErrorStatus.HISTORY_NOT_FOUND_EXCEPTION)); - } - - default History getHistoryById(Long historyId) { - return findById(historyId) - .orElseThrow(() -> new NotFoundException( - ErrorStatus.HISTORY_NOT_FOUND_EXCEPTION - )); - } + Optional findById(Long historyId); } diff --git a/src/main/java/com/uspray/uspray/domain/history/service/HistoryFacade.java b/src/main/java/com/uspray/uspray/domain/history/service/HistoryFacade.java index af33fa7a..e7327f9a 100644 --- a/src/main/java/com/uspray/uspray/domain/history/service/HistoryFacade.java +++ b/src/main/java/com/uspray/uspray/domain/history/service/HistoryFacade.java @@ -1,12 +1,11 @@ package com.uspray.uspray.domain.history.service; +import com.uspray.uspray.domain.member.service.MemberService; import com.uspray.uspray.domain.pray.dto.pray.request.PrayRequestDto; import com.uspray.uspray.domain.pray.dto.pray.response.PrayResponseDto; import com.uspray.uspray.domain.history.model.History; import com.uspray.uspray.domain.member.model.Member; import com.uspray.uspray.domain.pray.service.PrayFacade; -import com.uspray.uspray.domain.history.repository.HistoryRepository; -import com.uspray.uspray.domain.member.repository.MemberRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -16,15 +15,15 @@ public class HistoryFacade { private final PrayFacade prayFacade; - private final MemberRepository memberRepository; - private final HistoryRepository historyRepository; + private final MemberService memberService; + private final HistoryService historyService; @Transactional public PrayResponseDto historyToPray(PrayRequestDto prayRequestDto, String username, Long historyId) { - Member member = memberRepository.getMemberByUserId(username); - History history = historyRepository.getHistoryByIdAndMember(historyId, member); + Member member = memberService.findMemberByUserId(username); + History history = historyService.getHistoryByIdAndMember(historyId, member); - historyRepository.delete(history); + historyService.deleteHistory(history); return prayFacade.createPray(prayRequestDto, username, history.getStartDate()); diff --git a/src/main/java/com/uspray/uspray/domain/history/service/HistoryService.java b/src/main/java/com/uspray/uspray/domain/history/service/HistoryService.java index d92c92d9..3c34d672 100644 --- a/src/main/java/com/uspray/uspray/domain/history/service/HistoryService.java +++ b/src/main/java/com/uspray/uspray/domain/history/service/HistoryService.java @@ -68,20 +68,42 @@ public HistoryListResponseDto searchHistoryList(String username, return new HistoryListResponseDto(historyList.getContent(), historyList.getTotalPages()); } - @Transactional(readOnly = true) - public HistoryDetailResponseDto getHistoryDetail(String username, Long historyId) { - Member member = memberRepository.getMemberByUserId(username); - History history = historyRepository.getHistoryById(historyId); - if (!history.getMember().getId().equals(member.getId())) { - throw new NotFoundException(ErrorStatus.HISTORY_NOT_FOUND_EXCEPTION); - } - - if (history.getCategoryType() == CategoryType.SHARED) { - Pray originPray = prayRepository.getPrayById(history.getOriginPrayId()); - return HistoryDetailResponseDto.shared(history, originPray); - } - return HistoryDetailResponseDto.of(history); - } + @Transactional(readOnly = true) + public HistoryDetailResponseDto getHistoryDetail(String username, Long historyId) { + Member member = memberRepository.getMemberByUserId(username); + History history = getHistoryById(historyId); + if (history.getCategoryType() == CategoryType.SHARED) { + Pray originPray = prayRepository.getPrayById(history.getOriginPrayId()); + return HistoryDetailResponseDto.shared(history, originPray); + } + return HistoryDetailResponseDto.of(history); + } + + @Transactional + public void saveHistory(History history) { + historyRepository.save(history); + } + + @Transactional + public void deleteHistory(History history) { + historyRepository.delete(history); + } + + @Transactional(readOnly = true) + public History getHistoryByIdAndMember(Long historyId, Member member) { + return historyRepository.findByIdAndMember(historyId, member) + .orElseThrow(() -> new NotFoundException( + ErrorStatus.HISTORY_NOT_FOUND_EXCEPTION + )); + } + + @Transactional(readOnly = true) + public History getHistoryById(Long historyId) { + return historyRepository.findById(historyId) + .orElseThrow(() -> new NotFoundException( + ErrorStatus.HISTORY_NOT_FOUND_EXCEPTION + )); + } @Transactional public void createHistory(Pray pray, Integer totalCountOrNull) { @@ -91,4 +113,5 @@ public void createHistory(Pray pray, Integer totalCountOrNull) { .build(); historyRepository.save(history); } + }