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

[BE] refactor: 서비스 리팩터링 #540

Merged
merged 45 commits into from
Sep 7, 2024
Merged
Changes from 1 commit
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
1e6204b
feat: 리뷰를 검증하는 서비스 구현
Kimprodp Aug 28, 2024
d62a842
refactor: 리뷰 등록 서비스가 리뷰를 생성하고 검증 서비스를 통해서 검증하도록 변경
Kimprodp Aug 28, 2024
de03539
refactor: 답변 검증 서비스가 요청이 아닌 객체를 검증하도록 변경
Kimprodp Aug 28, 2024
2fc94e1
feat: 리뷰에서 제공하는 기능 추가
Kimprodp Aug 28, 2024
7561c72
refactor: dto명 변경 및 사용하지 않는 메서드 삭제
Kimprodp Aug 28, 2024
d3842d2
refactor: 예외명 및 메세지 변경
Kimprodp Aug 28, 2024
3cfe514
refactor: 리뷰 목록 조회 서비스명 변경 및 응답 객체 mapper를 활용하도록 변경
Kimprodp Aug 28, 2024
daecbdc
feat: 리뷰 목록 응답 객체 매핑 서비스 추가
Kimprodp Aug 28, 2024
9cc53a9
refactor: dto명 변경으로 인한 수정
Kimprodp Aug 28, 2024
b60807f
refactor: ReviewMapper를 통해 리뷰를 생성하도록 변경
Kimprodp Aug 28, 2024
ebc281c
refactor: 리뷰 상세 응답 mapper를 활용하도록 변경 및 일부 로직 리팩터링
Kimprodp Aug 28, 2024
e42293c
refactor: 템플릿을 찾는 로직을 mapper에서 하도록 변경
Kimprodp Aug 28, 2024
357e9ef
refactor: 리팩터링에 따른 컨트롤러 변경사항
Kimprodp Aug 28, 2024
bb153e5
Merge remote-tracking branch 'refs/remotes/origin/develop' into be/re…
Kimprodp Aug 28, 2024
646d8b7
test: 변경사항 반영
Kimprodp Aug 28, 2024
20d6ffc
refactor: 질문이 없는 섹션은 응답 생성하지 않도록 변경
Kimprodp Aug 29, 2024
bd4b455
refactor: 답변이 null인 경우에 대한 예외 추가
Kimprodp Aug 29, 2024
fd2f730
refactor: CheckBoxAnswerValidator null 검증 제외 및 질문 유효 검증 추가
Kimprodp Aug 29, 2024
14e1819
refactor: TextAnswerValidator 질문 유효 검증 추가
Kimprodp Aug 29, 2024
76a01c7
test: Validator 테스트 작성
Kimprodp Aug 29, 2024
08e5707
test: Mapper 테스트 작성
Kimprodp Aug 29, 2024
7e15fa3
test: ReviewValidator 테스트 작성
Kimprodp Aug 29, 2024
8726e0c
test: ReviewRegisterService 테스트 간소화
Kimprodp Aug 29, 2024
cfe4fd9
test: 리팩터링 사항 반영
Kimprodp Aug 29, 2024
c351eb2
test: Review 테스트 작성
Kimprodp Aug 29, 2024
4ff1bb4
chore: secret 변경사항 반영
Kimprodp Aug 29, 2024
f494164
refactor: 답변 생성 시, null 이 들어올 수 없도록 변경
Kimprodp Sep 4, 2024
b0e20bc
refactor: ReviewMapper 에서 답변에 대한 검증 없이 엔티티 매핑만 하도록 변경
Kimprodp Sep 4, 2024
0d63f18
refactor: ReviewValidator 에서 답변에 대한 검증도 진행하도록 변경
Kimprodp Sep 4, 2024
d93f943
refactor: 메서드명 변경 (getAllQuestionIdsFromAnswers -> getAnsweredQuestio…
Kimprodp Sep 4, 2024
6363b82
refactor: @Transactional 어노테이션을 클래스 범위에만 적용하도록 변경
Kimprodp Sep 4, 2024
0062fb4
refactor: 메서드 분리 변경
Kimprodp Sep 4, 2024
1359b10
refactor: 메서드 시그니쳐 변경
Kimprodp Sep 4, 2024
8caa2b0
style : 개행 수정
Kimprodp Sep 4, 2024
b90aa47
refactor: 존재하는 메서드 활용하도록 변경
Kimprodp Sep 4, 2024
1f18e77
refactor: 리뷰에 특적 질문에 대한 답변이 있는지 확인하는 기능 추가
Kimprodp Sep 4, 2024
0071013
style: 개행 수정
Kimprodp Sep 4, 2024
7022bcb
refactor: 객체 메서드를 활용하도록 변경
Kimprodp Sep 5, 2024
c280809
test: AnswerMapperTest 작성
Kimprodp Sep 5, 2024
d9b4519
refactor: 답변 검증 시, 답변이 빈 경우에 대한 검증도 객체 생성자에서 진행 및 QuestionNotAnswered…
Kimprodp Sep 7, 2024
caa0716
refactor: 메서드명 변경 (hasQuestions -> hasAnsweredQuestion)
Kimprodp Sep 7, 2024
eca9491
style: 개행 변경
Kimprodp Sep 7, 2024
591f8cb
refactor: ReviewValidator 파라미터를 나눠보 보낼 수 있는 부분 적용
Kimprodp Sep 7, 2024
d3a615c
Merge remote-tracking branch 'refs/remotes/origin/develop' into be/re…
Kimprodp Sep 7, 2024
610b785
test: develop 브랜치 머치 후, 미변경 사항 적용
Kimprodp Sep 7, 2024
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,24 +1,29 @@
package reviewme.review.service.module;

import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import reviewme.question.repository.QuestionRepository;
import reviewme.review.domain.TextAnswer;
import reviewme.review.domain.exception.InvalidTextAnswerLengthException;
import reviewme.review.service.exception.QuestionNotAnsweredException;
import reviewme.review.service.exception.SubmittedQuestionNotFoundException;

@Component
@RequiredArgsConstructor
public class TextAnswerValidator {

private static final int MIN_LENGTH = 20;
private static final int MAX_LENGTH = 1_000;

private final QuestionRepository questionRepository;

public void validate(TextAnswer textAnswer) {
validateAnswerExist(textAnswer);
validateExistQuestion(textAnswer);
validateLength(textAnswer);
}

private static void validateAnswerExist(TextAnswer textAnswer) {
if (textAnswer.getContent() == null) {
throw new QuestionNotAnsweredException(textAnswer.getId());
private void validateExistQuestion(TextAnswer textAnswer) {
if (!questionRepository.existsById(textAnswer.getQuestionId())) {
throw new SubmittedQuestionNotFoundException(textAnswer.getQuestionId());
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

여기도 어렵네요,, 각 서술형 답변마다 다시 DB를 찌르게 될 듯해요. 😨

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

위에 말씀드린 DB 접근 최소화 리팩토링에 함께 진행하겠습니다~

}

Expand Down