Skip to content

Commit

Permalink
모든 도메인 객체 exception Notnull method 제거 (woowacourse-teams#184)
Browse files Browse the repository at this point in the history
* refactor: domain exception을 server exception을 상속받도록 수정

* refactor: 사용하지 않는 MemberException 제거

* refactor: 모든 도메인 객체 exception Notnull method 제거

* refactor: stream 컨벤션에 맞도록 수정

* refactor: conflict 해결

* test: 에러메세지 수정

* refactor: TagException 상세히 분할(RunnerPostTag, SupporterTechnicalTag)

* refactor: TagException 상세히 분할(RunnerPostTag, SupporterTechnicalTag)에 따른 테스트 수정

* refactor: stream 점 위치 수정
  • Loading branch information
eunbii0213 committed Aug 14, 2023
1 parent 5ffa7aa commit 496c8c9
Show file tree
Hide file tree
Showing 28 changed files with 146 additions and 169 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
import touch.baton.domain.common.vo.Introduction;
import touch.baton.domain.common.vo.TotalRating;
import touch.baton.domain.member.Member;
import touch.baton.domain.runner.exception.OldRunnerException;
import touch.baton.domain.runner.exception.RunnerDomainException;

import java.util.Objects;

Expand Down Expand Up @@ -74,15 +74,15 @@ private Runner(final Long id,

private void validateNotNull(final TotalRating totalRating, final Grade grade, final Member member) {
if (Objects.isNull(totalRating)) {
throw new OldRunnerException.NotNull("totalRating 은 null 일 수 없습니다.");
throw new RunnerDomainException("Runner 의 totalRating 은 null 일 수 없습니다.");
}

if (Objects.isNull(grade)) {
throw new OldRunnerException.NotNull("grade 는 null 일 수 없습니다.");
throw new RunnerDomainException("Runner 의 grade 는 null 일 수 없습니다.");
}

if (Objects.isNull(member)) {
throw new OldRunnerException.NotNull("member 는 null 일 수 없습니다.");
throw new RunnerDomainException("Runner 의 member 는 null 일 수 없습니다.");
}
}

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,5 @@ public class RunnerDomainException extends DomainException {

public RunnerDomainException(final String message) {
super(message);

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import touch.baton.domain.runner.Runner;
import touch.baton.domain.runner.exception.OldRunnerException;
import touch.baton.domain.runner.exception.RunnerDomainException;
import touch.baton.domain.runner.repository.RunnerRepository;

@RequiredArgsConstructor
Expand All @@ -16,6 +16,6 @@ public class RunnerService {

public Runner readRunnerWithMember(final Long runnerId) {
return runnerRepository.joinMemberByRunnerId(runnerId)
.orElseThrow(() -> new OldRunnerException.NotFound("해당하는 식별자의 Runner 를 찾을 수 없습니다."));
.orElseThrow(() -> new RunnerDomainException("해당하는 식별자의 Runner 를 찾을 수 없습니다. 식별자를 다시 확인해주세요."));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
import touch.baton.domain.common.vo.Title;
import touch.baton.domain.common.vo.WatchedCount;
import touch.baton.domain.runner.Runner;
import touch.baton.domain.runnerpost.exception.OldRunnerPostException;
import touch.baton.domain.runnerpost.exception.RunnerPostDomainException;
import touch.baton.domain.runnerpost.vo.Deadline;
import touch.baton.domain.runnerpost.vo.PullRequestUrl;
import touch.baton.domain.runnerpost.vo.ReviewStatus;
Expand Down Expand Up @@ -130,39 +130,39 @@ private void validateNotNull(final Title title,
final RunnerPostTags runnerPostTags
) {
if (Objects.isNull(title)) {
throw new OldRunnerPostException.NotNull("title null 일 수 없습니다.");
throw new RunnerPostDomainException("RunnerPost 의 title null 일 수 없습니다.");
}

if (Objects.isNull(contents)) {
throw new OldRunnerPostException.NotNull("contents 는 null 일 수 없습니다.");
throw new RunnerPostDomainException("RunnerPost 의 contents 는 null 일 수 없습니다.");
}

if (Objects.isNull(pullRequestUrl)) {
throw new OldRunnerPostException.NotNull("pullRequestUrl null 일 수 없습니다.");
throw new RunnerPostDomainException("RunnerPost 의 pullRequestUrl null 일 수 없습니다.");
}

if (Objects.isNull(deadline)) {
throw new OldRunnerPostException.NotNull("deadline null 일 수 없습니다.");
throw new RunnerPostDomainException("RunnerPost 의 deadline null 일 수 없습니다.");
}

if (Objects.isNull(watchedCount)) {
throw new OldRunnerPostException.NotNull("watchedCount 는 null 일 수 없습니다.");
throw new RunnerPostDomainException("RunnerPost 의 watchedCount 는 null 일 수 없습니다.");
}

if (Objects.isNull(chattingCount)) {
throw new OldRunnerPostException.NotNull("chattingCount 는 null 일 수 없습니다.");
throw new RunnerPostDomainException("RunnerPost 의 chattingCount 는 null 일 수 없습니다.");
}

if (Objects.isNull(reviewStatus)) {
throw new OldRunnerPostException.NotNull("reviewStatus 는 null 일 수 없습니다.");
throw new RunnerPostDomainException("RunnerPost 의 reviewStatus 는 null 일 수 없습니다.");
}

if (Objects.isNull(runner)) {
throw new OldRunnerPostException.NotNull("runner 는 null 일 수 없습니다.");
throw new RunnerPostDomainException("RunnerPost 의 runner 는 null 일 수 없습니다.");
}

if (Objects.isNull(runnerPostTags)) {
throw new OldRunnerPostException.NotNull("runnerPostTags 는 null 일 수 없습니다.");
throw new RunnerPostDomainException("RunnerPost 의 runnerPostTags 는 null 일 수 없습니다.");
}
}

Expand Down

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,14 @@
import touch.baton.domain.common.vo.Title;
import touch.baton.domain.runner.Runner;
import touch.baton.domain.runnerpost.RunnerPost;
import touch.baton.domain.runnerpost.exception.OldRunnerPostBusinessException;
import touch.baton.domain.runnerpost.exception.RunnerPostBusinessException;
import touch.baton.domain.runnerpost.repository.RunnerPostRepository;
import touch.baton.domain.runnerpost.service.dto.RunnerPostCreateRequest;
import touch.baton.domain.runnerpost.service.dto.RunnerPostCreateTestRequest;
import touch.baton.domain.runnerpost.service.dto.RunnerPostUpdateRequest;
import touch.baton.domain.runnerpost.vo.Deadline;
import touch.baton.domain.runnerpost.vo.PullRequestUrl;
import touch.baton.domain.supporter.Supporter;
import touch.baton.domain.supporter.exception.OldSupporterException;
import touch.baton.domain.supporter.repository.SupporterRepository;
import touch.baton.domain.tag.RunnerPostTag;
import touch.baton.domain.tag.Tag;
Expand Down Expand Up @@ -61,8 +60,7 @@ public Long createRunnerPost(final Runner runner, final RunnerPostCreateRequest
final List<RunnerPostTag> postTags = toSaveTags.stream()
.map(tag -> RunnerPostTag.builder()
.tag(tag)
.runnerPost(runnerPost)
.build())
.runnerPost(runnerPost).build())
.toList();

runnerPost.addAllRunnerPostTags(postTags);
Expand All @@ -87,7 +85,7 @@ public Long createRunnerPostTest(final Runner runner, final RunnerPostCreateTest

if (Objects.nonNull(request.supporterId())) {
final Supporter supporter = supporterRepository.findById(request.supporterId())
.orElseThrow(() -> new OldSupporterException.NotNull("서포터가 존재하지 않습니다."));
.orElseThrow(() -> new RunnerPostBusinessException("RunnerPost 의 서포터가 존재하지 않습니다."));
runnerPost.assignSupporter(supporter);
}

Expand Down Expand Up @@ -121,8 +119,7 @@ public Long createRunnerPostTest(final Runner runner, final RunnerPostCreateTest

public RunnerPost readByRunnerPostId(final Long runnerPostId) {
runnerPostTagRepository.joinTagByRunnerPostId(runnerPostId);
final RunnerPost findRunnerPost = runnerPostRepository.joinMemberByRunnerPostId(runnerPostId)
.orElseThrow(() -> new OldRunnerPostBusinessException.NotFound("러너 게시글 식별자값으로 러너 게시글을 조회할 수 없습니다."));
final RunnerPost findRunnerPost = runnerPostRepository.joinMemberByRunnerPostId(runnerPostId).orElseThrow(() -> new RunnerPostBusinessException("RunnerPost 의 식별자값으로 러너 게시글을 조회할 수 없습니다."));

findRunnerPost.increaseWatchedCount();

Expand All @@ -133,7 +130,7 @@ public RunnerPost readByRunnerPostId(final Long runnerPostId) {
public void deleteByRunnerPostId(final Long runnerPostId) {
final Optional<RunnerPost> maybeRunnerPost = runnerPostRepository.findById(runnerPostId);
if (maybeRunnerPost.isEmpty()) {
throw new OldRunnerPostBusinessException.NotFound("러너 게시글 식별자값으로 삭제할 러너 게시글이 존재하지 않습니다.");
throw new RunnerPostBusinessException("RunnerPost 의 식별자값으로 삭제할 러너 게시글이 존재하지 않습니다.");
}

runnerPostTagRepository.joinTagByRunnerPostId(runnerPostId)
Expand All @@ -148,14 +145,13 @@ public void deleteByRunnerPostId(final Long runnerPostId) {
public Long updateRunnerPost(final Long runnerPostId, final RunnerPostUpdateRequest request) {
// TODO: 메소드 분리
final RunnerPost runnerPost = runnerPostRepository.findById(runnerPostId)
.orElseThrow(() -> new IllegalArgumentException("잘못된 runnerPostId 입니다."));
.orElseThrow(() -> new IllegalArgumentException("해당 runnerPostId 로 러너 게시글을 찾을 수 없습니다. runnerPostId를 다시 확인해주세요"));
runnerPost.updateTitle(new Title(request.title()));
runnerPost.updateContents(new Contents(request.contents()));
runnerPost.updatePullRequestUrl(new PullRequestUrl(request.pullRequestUrl()));
runnerPost.updateDeadLine(new Deadline(request.deadline()));

final List<RunnerPostTag> presentRunnerPostTags =
runnerPostTagRepository.joinTagByRunnerPostId(runnerPost.getId());
final List<RunnerPostTag> presentRunnerPostTags = runnerPostTagRepository.joinTagByRunnerPostId(runnerPost.getId());
// TODO: tag 개수 차감 메소드 분리
final List<touch.baton.domain.tag.Tag> presentTags = presentRunnerPostTags.stream()
.map(RunnerPostTag::getTag)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
import touch.baton.domain.common.vo.Introduction;
import touch.baton.domain.common.vo.TotalRating;
import touch.baton.domain.member.Member;
import touch.baton.domain.supporter.exception.OldSupporterException;
import touch.baton.domain.supporter.exception.SupporterDomainException;
import touch.baton.domain.supporter.vo.ReviewCount;
import touch.baton.domain.supporter.vo.StarCount;
import touch.baton.domain.technicaltag.SupporterTechnicalTag;
Expand Down Expand Up @@ -103,27 +103,27 @@ private void validateNotNull(final ReviewCount reviewCount,
final SupporterTechnicalTags supporterTechnicalTags
) {
if (Objects.isNull(reviewCount)) {
throw new OldSupporterException.NotNull("reviewCount 는 null 일 수 없습니다.");
throw new SupporterDomainException("Supporter 의 reviewCount 는 null 일 수 없습니다.");
}

if (Objects.isNull(starCount)) {
throw new OldSupporterException.NotNull("starCount 는 null 일 수 없습니다.");
throw new SupporterDomainException("Supporter 의 starCount 는 null 일 수 없습니다.");
}

if (Objects.isNull(totalRating)) {
throw new OldSupporterException.NotNull("totalRating 은 null 일 수 없습니다.");
throw new SupporterDomainException("Supporter 의 totalRating 은 null 일 수 없습니다.");
}

if (Objects.isNull(grade)) {
throw new OldSupporterException.NotNull("grade 는 null 일 수 없습니다.");
throw new SupporterDomainException("Supporter 의 grade 는 null 일 수 없습니다.");
}

if (Objects.isNull(member)) {
throw new OldSupporterException.NotNull("member 는 null 일 수 없습니다.");
throw new SupporterDomainException("Supporter 의 member 는 null 일 수 없습니다.");
}

if (Objects.isNull(supporterTechnicalTags)) {
throw new OldSupporterException.NotNull("supporterTechnicalTags 는 null 일 수 없습니다.");
throw new SupporterDomainException("Supporter 의 supporterTechnicalTags 는 null 일 수 없습니다.");
}
}

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import lombok.Getter;
import lombok.NoArgsConstructor;
import touch.baton.domain.runnerpost.RunnerPost;
import touch.baton.domain.tag.exception.OldTagException;
import touch.baton.domain.tag.exception.RunnerPostTagDomainException;

import java.util.Objects;

Expand Down Expand Up @@ -51,11 +51,11 @@ private RunnerPostTag(final Long id, final RunnerPost runnerPost, final Tag tag)

private void validateNotNull(final RunnerPost runnerPost, final Tag tag) {
if (Objects.isNull(runnerPost)) {
throw new OldTagException.NotNull("runnerPost null 일 수 없습니다.");
throw new RunnerPostTagDomainException("RunnerPostTag 의 runnerPost null 일 수 없습니다.");
}

if (Objects.isNull(tag)) {
throw new OldTagException.NotNull("tag null 일 수 없습니다.");
throw new RunnerPostTagDomainException("RunnerPostTag 의 tag null 일 수 없습니다.");
}
}

Expand Down
6 changes: 3 additions & 3 deletions backend/baton/src/main/java/touch/baton/domain/tag/Tag.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import lombok.Getter;
import lombok.NoArgsConstructor;
import touch.baton.domain.common.vo.TagName;
import touch.baton.domain.tag.exception.OldTagException;
import touch.baton.domain.tag.exception.TagDomainException;
import touch.baton.domain.tag.vo.TagCount;

import java.util.Objects;
Expand Down Expand Up @@ -45,11 +45,11 @@ private Tag(final Long id, final TagName tagName, final TagCount tagCount) {

private void validateNotNull(final TagName tagName, final TagCount tagCount) {
if (Objects.isNull(tagName)) {
throw new OldTagException.NotNull("tagName 은 null 일 수 없습니다.");
throw new TagDomainException("Tag 의 tagName 은 null 일 수 없습니다.");
}

if (Objects.isNull(tagCount)) {
throw new OldTagException.NotNull("tagCount null 일 수 없습니다.");
throw new TagDomainException("Tag 의 tagCount null 일 수 없습니다.");
}
}

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package touch.baton.domain.tag.exception;

import touch.baton.domain.common.exception.DomainException;

public class RunnerPostTagDomainException extends DomainException {

public RunnerPostTagDomainException(final String message) {
super(message);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package touch.baton.domain.tag.exception;

import touch.baton.domain.common.exception.DomainException;

public class SupporterTechnicalTagDomainException extends DomainException {

public SupporterTechnicalTagDomainException(final String message) {
super(message);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package touch.baton.domain.tag.exception;

import touch.baton.domain.common.exception.DomainException;

public class TechnicalTagDomainException extends DomainException {

public TechnicalTagDomainException(final String message) {
super(message);
}
}
Loading

0 comments on commit 496c8c9

Please sign in to comment.