Skip to content

Commit

Permalink
Merge pull request #26 from Team-Puzzling/feat/#23-review-AAR-post-api
Browse files Browse the repository at this point in the history
#23 [FEAT] ARR템플릿 회고 작성 API개발 완료
  • Loading branch information
yeseul106 authored Jul 16, 2023
2 parents 7abc910 + 12dd440 commit b540624
Show file tree
Hide file tree
Showing 5 changed files with 84 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package com.puzzling.puzzlingServer.api.review.controller;

import com.puzzling.puzzlingServer.api.review.dto.request.Review5FRequestDto;
import com.puzzling.puzzlingServer.api.review.dto.request.ReviewAARRequestDto;
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;
Expand Down Expand Up @@ -37,8 +39,15 @@ public ApiResponse createReview5F(@PathVariable("memberId") Long memberId,@PathV
return ApiResponse.success(SuccessStatus.POST_REVIEW_SUCCESS.getStatusCode(), SuccessStatus.POST_REVIEW_SUCCESS.getMessage());
}

@PostMapping("member/{memberId}/project/{projectId}/review/AAR")
public ApiResponse createReviewAAR(@PathVariable("memberId") Long memberId,@PathVariable("projectId") Long projectId, @Valid @RequestBody ReviewAARRequestDto reviewAARRequestDto){
reviewService.createReviewAAR(memberId, projectId, reviewAARRequestDto);
return ApiResponse.success(SuccessStatus.POST_REVIEW_SUCCESS.getStatusCode(), SuccessStatus.POST_REVIEW_SUCCESS.getMessage());
}

@GetMapping("member/{memberId}/project/{projectId}/review/previous-template")
public ApiResponse<ReviewPreviousTemplateResponseDto> getPreviousReviewTemplate(@PathVariable Long memberId, @PathVariable Long projectId) {
return ApiResponse.success(SuccessStatus.GET_REVIEW_PREVIOUS_TEMPLATE, reviewService.getPreviousReviewTemplate(memberId, projectId));

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package com.puzzling.puzzlingServer.api.review.dto.request;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotBlank;

import static lombok.AccessLevel.PROTECTED;

@Getter
@NoArgsConstructor(access = PROTECTED)
@AllArgsConstructor
public class ReviewAARRequestDto {

private Long reviewTemplateId;
@NotBlank
private String initialGoal;
@NotBlank
private String result;
@NotBlank
private String difference;
@NotBlank
private String persistence;
@NotBlank
private String actionPlan;

}
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,19 @@
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.request.ReviewAARRequestDto;

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;
import com.puzzling.puzzlingServer.api.review.service.ReviewService;
import com.puzzling.puzzlingServer.api.template.Repository.Review5FRepository;
import com.puzzling.puzzlingServer.api.template.Repository.ReviewARRRepository;
import com.puzzling.puzzlingServer.api.template.Repository.ReviewTILRepository;
import com.puzzling.puzzlingServer.api.template.Repository.ReviewTemplateRepository;
import com.puzzling.puzzlingServer.api.template.domain.Review5F;
import com.puzzling.puzzlingServer.api.template.domain.ReviewAAR;
import com.puzzling.puzzlingServer.api.template.domain.ReviewTIL;
import com.puzzling.puzzlingServer.api.template.domain.ReviewTemplate;
import com.puzzling.puzzlingServer.common.exception.BadRequestException;
Expand All @@ -31,6 +35,7 @@ public class ReviewServiceImpl implements ReviewService {
private final ReviewTemplateRepository reviewTemplateRepository;
private final UserProjectRepository userProjectRepository;
private final ReviewTILRepository reviewTILRepository;
private final ReviewARRRepository reviewARRRepository;
private final Review5FRepository review5FRepository;
private final ReviewRepository reviewRepository;
@Override
Expand Down Expand Up @@ -107,6 +112,36 @@ public void createReview5F(Long memberId, Long projectId, Review5FRequestDto rev

@Override
@Transactional
public void createReviewAAR(Long memberId, Long projectId, ReviewAARRequestDto reviewAARRequestDto) {
UserProject userProject = findUserProjectByMemberIdAndProjectId(memberId, projectId);

if ( reviewAARRequestDto.getReviewTemplateId() == null ) {
throw new BadRequestException("공백일 수 없습니다. (reviewTemplateId)");
}
ReviewTemplate reviewTemplate = findReviewTemplateById(reviewAARRequestDto.getReviewTemplateId());

userProject.updatePreviousTemplateId(reviewAARRequestDto.getReviewTemplateId());

Review review = Review.builder()
.userProject(userProject)
.reviewTemplate(reviewTemplate)
.reviewDate("123")
.memberId(memberId)
.projectId(projectId)
.build();
Review savedReview = reviewRepository.save(review);

ReviewAAR reviewAAR = ReviewAAR.builder()
.review(savedReview)
.initialGoal(reviewAARRequestDto.getInitialGoal())
.result(reviewAARRequestDto.getResult())
.difference(reviewAARRequestDto.getDifference())
.persistence(reviewAARRequestDto.getPersistence())
.actionPlan(reviewAARRequestDto.getActionPlan())
.build();
reviewARRRepository.save(reviewAAR);
}

public ReviewPreviousTemplateResponseDto getPreviousReviewTemplate(Long memberId, Long projectId) {
UserProject findUserProject = findUserProjectByMemberIdAndProjectId(memberId, projectId);
return ReviewPreviousTemplateResponseDto.of(findUserProject.getReviewTemplateId());
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package com.puzzling.puzzlingServer.api.review.service;

import com.puzzling.puzzlingServer.api.review.dto.request.Review5FRequestDto;
import com.puzzling.puzzlingServer.api.review.dto.request.ReviewAARRequestDto;
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;

Expand All @@ -13,7 +15,9 @@ public interface ReviewService {

void createReviewTIL(Long memberId, Long projectId, ReviewTILRequestDto reviewTILRequestDto);

void createReview5F(Long memberId, Long projectId, Review5FRequestDto review5FRequestDto);

void createReviewAAR(Long memberId, Long projectId, ReviewAARRequestDto reviewARRRequestDto);

ReviewPreviousTemplateResponseDto getPreviousReviewTemplate(Long memberId, Long projectId);

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.puzzling.puzzlingServer.api.template.Repository;

import com.puzzling.puzzlingServer.api.template.domain.ReviewAAR;
import org.springframework.data.jpa.repository.JpaRepository;

public interface ReviewARRRepository extends JpaRepository<ReviewAAR, Long> {
}

0 comments on commit b540624

Please sign in to comment.