Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

#23 [FEAT] ARR템플릿 회고 작성 API개발 완료 #26

Merged
merged 2 commits into from
Jul 16, 2023
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
@@ -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> {
}
Loading