diff --git a/puzzlingServer/src/main/java/com/puzzling/puzzlingServer/api/project/dto/response/ProjectMyPuzzleObjectDto.java b/puzzlingServer/src/main/java/com/puzzling/puzzlingServer/api/project/dto/response/ProjectMyPuzzleObjectDto.java index 8c749a9..fc6ff9e 100644 --- a/puzzlingServer/src/main/java/com/puzzling/puzzlingServer/api/project/dto/response/ProjectMyPuzzleObjectDto.java +++ b/puzzlingServer/src/main/java/com/puzzling/puzzlingServer/api/project/dto/response/ProjectMyPuzzleObjectDto.java @@ -1,6 +1,5 @@ package com.puzzling.puzzlingServer.api.project.dto.response; -import com.puzzling.puzzlingServer.api.project.domain.Project; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; diff --git a/puzzlingServer/src/main/java/com/puzzling/puzzlingServer/api/project/repository/UserProjectRepository.java b/puzzlingServer/src/main/java/com/puzzling/puzzlingServer/api/project/repository/UserProjectRepository.java index 0340d81..07ef02c 100644 --- a/puzzlingServer/src/main/java/com/puzzling/puzzlingServer/api/project/repository/UserProjectRepository.java +++ b/puzzlingServer/src/main/java/com/puzzling/puzzlingServer/api/project/repository/UserProjectRepository.java @@ -4,6 +4,7 @@ import org.springframework.data.jpa.repository.JpaRepository; import java.util.List; +import java.util.Optional; public interface UserProjectRepository extends JpaRepository { @@ -13,6 +14,6 @@ public interface UserProjectRepository extends JpaRepository List findAllByProjectId(Long projectId); - UserProject findByMemberIdAndProjectId(Long memberId, Long projectId); + Optional findByMemberIdAndProjectId(Long memberId, Long projectId); } diff --git a/puzzlingServer/src/main/java/com/puzzling/puzzlingServer/api/project/service/ProjectService.java b/puzzlingServer/src/main/java/com/puzzling/puzzlingServer/api/project/service/ProjectService.java index f02a9bc..f356d85 100644 --- a/puzzlingServer/src/main/java/com/puzzling/puzzlingServer/api/project/service/ProjectService.java +++ b/puzzlingServer/src/main/java/com/puzzling/puzzlingServer/api/project/service/ProjectService.java @@ -1,6 +1,5 @@ package com.puzzling.puzzlingServer.api.project.service; -import com.puzzling.puzzlingServer.api.project.domain.Project; import com.puzzling.puzzlingServer.api.project.dto.response.ProjectOwnPuzzleResponseDto; import com.puzzling.puzzlingServer.api.project.dto.response.ProjectResponseDto; import com.puzzling.puzzlingServer.api.project.dto.response.ProjectTeamPuzzleResponseDto; diff --git a/puzzlingServer/src/main/java/com/puzzling/puzzlingServer/api/review/controller/ReviewController.java b/puzzlingServer/src/main/java/com/puzzling/puzzlingServer/api/review/controller/ReviewController.java index 3f4a8eb..af77ec9 100644 --- a/puzzlingServer/src/main/java/com/puzzling/puzzlingServer/api/review/controller/ReviewController.java +++ b/puzzlingServer/src/main/java/com/puzzling/puzzlingServer/api/review/controller/ReviewController.java @@ -1,6 +1,7 @@ package com.puzzling.puzzlingServer.api.review.controller; import com.puzzling.puzzlingServer.api.review.dto.request.Review5FRequestDto; +import com.puzzling.puzzlingServer.api.review.dto.response.ReviewPreviousTemplateResponseDto; import com.puzzling.puzzlingServer.api.review.dto.response.ReviewTemplateGetResponseDto; import com.puzzling.puzzlingServer.api.review.dto.request.ReviewTILRequestDto; import com.puzzling.puzzlingServer.api.review.service.ReviewService; @@ -35,4 +36,9 @@ public ApiResponse createReview5F(@PathVariable("memberId") Long memberId,@PathV reviewService.createReview5F(memberId, projectId, review5FRequestDto); return ApiResponse.success(SuccessStatus.POST_REVIEW_SUCCESS.getStatusCode(), SuccessStatus.POST_REVIEW_SUCCESS.getMessage()); } + + @GetMapping("member/{memberId}/project/{projectId}/review/previous-template") + public ApiResponse getPreviousReviewTemplate(@PathVariable Long memberId, @PathVariable Long projectId) { + return ApiResponse.success(SuccessStatus.GET_REVIEW_PREVIOUS_TEMPLATE, reviewService.getPreviousReviewTemplate(memberId, projectId)); + } } diff --git a/puzzlingServer/src/main/java/com/puzzling/puzzlingServer/api/review/dto/response/ReviewPreviousTemplateResponseDto.java b/puzzlingServer/src/main/java/com/puzzling/puzzlingServer/api/review/dto/response/ReviewPreviousTemplateResponseDto.java new file mode 100644 index 0000000..847bc32 --- /dev/null +++ b/puzzlingServer/src/main/java/com/puzzling/puzzlingServer/api/review/dto/response/ReviewPreviousTemplateResponseDto.java @@ -0,0 +1,18 @@ +package com.puzzling.puzzlingServer.api.review.dto.response; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; + +import static lombok.AccessLevel.PRIVATE; + +@Getter +@NoArgsConstructor(access = PRIVATE) +@AllArgsConstructor +public class ReviewPreviousTemplateResponseDto { + private Long previousTemplateId; + + public static ReviewPreviousTemplateResponseDto of (Long previousTemplateId) { + return new ReviewPreviousTemplateResponseDto(previousTemplateId); + } +} diff --git a/puzzlingServer/src/main/java/com/puzzling/puzzlingServer/api/review/service/Impl/ReviewServiceImpl.java b/puzzlingServer/src/main/java/com/puzzling/puzzlingServer/api/review/service/Impl/ReviewServiceImpl.java index 3db25c8..177b156 100644 --- a/puzzlingServer/src/main/java/com/puzzling/puzzlingServer/api/review/service/Impl/ReviewServiceImpl.java +++ b/puzzlingServer/src/main/java/com/puzzling/puzzlingServer/api/review/service/Impl/ReviewServiceImpl.java @@ -4,6 +4,7 @@ import com.puzzling.puzzlingServer.api.project.repository.UserProjectRepository; import com.puzzling.puzzlingServer.api.review.domain.Review; import com.puzzling.puzzlingServer.api.review.dto.request.Review5FRequestDto; +import com.puzzling.puzzlingServer.api.review.dto.response.ReviewPreviousTemplateResponseDto; import com.puzzling.puzzlingServer.api.review.dto.response.ReviewTemplateGetResponseDto; import com.puzzling.puzzlingServer.api.review.dto.request.ReviewTILRequestDto; import com.puzzling.puzzlingServer.api.review.repository.ReviewRepository; @@ -45,7 +46,7 @@ public List getReviewTemplateAll() { @Override @Transactional public void createReviewTIL(Long memberId, Long projectId, ReviewTILRequestDto reviewTILRequestDto) { - UserProject userProject = userProjectRepository.findByMemberIdAndProjectId(memberId,projectId); + UserProject userProject = findUserProjectByMemberIdAndProjectId(memberId, projectId); if ( reviewTILRequestDto.getReviewTemplateId() == null ) { throw new BadRequestException("공백일 수 없습니다. (reviewTemplateId)"); @@ -75,7 +76,7 @@ public void createReviewTIL(Long memberId, Long projectId, ReviewTILRequestDto r @Override @Transactional public void createReview5F(Long memberId, Long projectId, Review5FRequestDto review5FRequestDto) { - UserProject userProject = userProjectRepository.findByMemberIdAndProjectId(memberId,projectId); + UserProject userProject = findUserProjectByMemberIdAndProjectId(memberId, projectId); if ( review5FRequestDto.getReviewTemplateId() == null ) { throw new BadRequestException("공백일 수 없습니다. (reviewTemplateId)"); @@ -104,9 +105,21 @@ public void createReview5F(Long memberId, Long projectId, Review5FRequestDto rev review5FRepository.save(review5F); } + @Override + @Transactional + public ReviewPreviousTemplateResponseDto getPreviousReviewTemplate(Long memberId, Long projectId) { + UserProject findUserProject = findUserProjectByMemberIdAndProjectId(memberId, projectId); + return ReviewPreviousTemplateResponseDto.of(findUserProject.getReviewTemplateId()); + } + private ReviewTemplate findReviewTemplateById (Long reviewTemplateId) { return reviewTemplateRepository.findById(reviewTemplateId) - .orElseThrow(() -> new NotFoundException("해당하는 회고 팀플릿이 없습니다")); + .orElseThrow(() -> new NotFoundException("해당하는 회고 팀플릿이 없습니다.")); + } + + private UserProject findUserProjectByMemberIdAndProjectId (Long memberId, Long projectId) { + return userProjectRepository.findByMemberIdAndProjectId(memberId,projectId) + .orElseThrow(() -> new NotFoundException("해당하는 멤버가 참여하는 프로젝트가 아닙니다.")); } } diff --git a/puzzlingServer/src/main/java/com/puzzling/puzzlingServer/api/review/service/ReviewService.java b/puzzlingServer/src/main/java/com/puzzling/puzzlingServer/api/review/service/ReviewService.java index ec6536e..89023a3 100644 --- a/puzzlingServer/src/main/java/com/puzzling/puzzlingServer/api/review/service/ReviewService.java +++ b/puzzlingServer/src/main/java/com/puzzling/puzzlingServer/api/review/service/ReviewService.java @@ -1,6 +1,7 @@ package com.puzzling.puzzlingServer.api.review.service; import com.puzzling.puzzlingServer.api.review.dto.request.Review5FRequestDto; +import com.puzzling.puzzlingServer.api.review.dto.response.ReviewPreviousTemplateResponseDto; import com.puzzling.puzzlingServer.api.review.dto.response.ReviewTemplateGetResponseDto; import com.puzzling.puzzlingServer.api.review.dto.request.ReviewTILRequestDto; @@ -13,4 +14,6 @@ public interface ReviewService { void createReviewTIL(Long memberId, Long projectId, ReviewTILRequestDto reviewTILRequestDto); void createReview5F(Long memberId, Long projectId, Review5FRequestDto review5FRequestDto); + + ReviewPreviousTemplateResponseDto getPreviousReviewTemplate(Long memberId, Long projectId); } diff --git a/puzzlingServer/src/main/java/com/puzzling/puzzlingServer/common/response/SuccessStatus.java b/puzzlingServer/src/main/java/com/puzzling/puzzlingServer/common/response/SuccessStatus.java index 82abef2..fcb62be 100644 --- a/puzzlingServer/src/main/java/com/puzzling/puzzlingServer/common/response/SuccessStatus.java +++ b/puzzlingServer/src/main/java/com/puzzling/puzzlingServer/common/response/SuccessStatus.java @@ -28,7 +28,8 @@ public enum SuccessStatus { * review */ GET_REVIEW_TEMPLATE_SUCCESS(HttpStatus.OK,"회고 템플릿 목록 조회 성공"), - POST_REVIEW_SUCCESS(HttpStatus.OK,"회고 글 작성 성공") + POST_REVIEW_SUCCESS(HttpStatus.CREATED,"회고 글 작성 성공"), + GET_REVIEW_PREVIOUS_TEMPLATE(HttpStatus.OK, "이전 회고 템플릿 조회 성공") ; private final HttpStatus httpStatus;