From cce415f62ec45e54517bc5cc86a7435d052f063c Mon Sep 17 00:00:00 2001 From: DongHoon Lee Date: Thu, 22 Aug 2024 01:07:42 +0900 Subject: [PATCH] =?UTF-8?q?[#177]=20refactor(PerformanceUpdateService):=20?= =?UTF-8?q?=ED=95=B4=EB=8B=B9=20=EA=B3=B5=EC=97=B0=EC=9D=98=20=EB=A9=94?= =?UTF-8?q?=EC=9D=B4=EC=BB=A4=EB=A7=8C=20=EA=B3=B5=EC=97=B0=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=EC=9D=B4=20=EA=B0=80=EB=8A=A5=ED=95=98=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EA=B2=80=EC=A6=9D=ED=95=98=EB=8A=94=20=EB=A9=94?= =?UTF-8?q?=EC=84=9C=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/PerformanceUpdateService.java | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/beat/domain/performance/application/PerformanceUpdateService.java b/src/main/java/com/beat/domain/performance/application/PerformanceUpdateService.java index 9e3b3749..0832f634 100644 --- a/src/main/java/com/beat/domain/performance/application/PerformanceUpdateService.java +++ b/src/main/java/com/beat/domain/performance/application/PerformanceUpdateService.java @@ -4,6 +4,7 @@ import com.beat.domain.cast.domain.Cast; import com.beat.domain.cast.exception.CastErrorCode; import com.beat.domain.member.dao.MemberRepository; +import com.beat.domain.member.domain.Member; import com.beat.domain.member.exception.MemberErrorCode; import com.beat.domain.performance.application.dto.update.*; import com.beat.domain.performance.application.dto.update.cast.CastAddRequest; @@ -34,6 +35,7 @@ import com.beat.domain.staff.domain.Staff; import com.beat.domain.staff.exception.StaffErrorCode; import com.beat.global.common.exception.BadRequestException; +import com.beat.global.common.exception.ForbiddenException; import com.beat.global.common.exception.NotFoundException; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -61,10 +63,13 @@ public class PerformanceUpdateService { public PerformanceUpdateResponse updatePerformance(Long memberId, PerformanceUpdateRequest request) { log.info("Starting updatePerformance for memberId: {}, performanceId: {}", memberId, request.performanceId()); - validateMember(memberId); + Member member = validateMember(memberId); + Long userId = member.getUser().getId(); Performance performance = findPerformance(request.performanceId()); + validateOwnership(userId, performance); + updatePerformanceDetails(performance, request); List deletedSchedules = deleteSchedules(request.scheduleDeleteRequests()); @@ -87,9 +92,9 @@ public PerformanceUpdateResponse updatePerformance(Long memberId, PerformanceUpd return response; } - private void validateMember(Long memberId) { + private Member validateMember(Long memberId) { log.debug("Validating memberId: {}", memberId); - memberRepository.findById(memberId) + return memberRepository.findById(memberId) .orElseThrow(() -> { log.error("Member not found: memberId: {}", memberId); return new NotFoundException(MemberErrorCode.MEMBER_NOT_FOUND); @@ -105,6 +110,13 @@ private Performance findPerformance(Long performanceId) { }); } + private void validateOwnership(Long userId, Performance performance) { + if (!performance.getUsers().getId().equals(userId)) { + log.error("User ID {} does not own performance ID {}", userId, performance.getId()); + throw new ForbiddenException(PerformanceErrorCode.NOT_PERFORMANCE_OWNER); + } + } + private void updatePerformanceDetails(Performance performance, PerformanceUpdateRequest request) { log.debug("Updating performance details for performanceId: {}", performance.getId()); performance.update(