From 885d974661542a14afa94dcf337ed6ad6243babb Mon Sep 17 00:00:00 2001 From: gunkim Date: Tue, 18 Feb 2025 00:48:47 +0900 Subject: [PATCH] Refactor article-related classes into `model` and `repository` --- .../gunkim/realworld/domain/article/ArticleFindable.kt | 3 +++ .../gunkim/realworld/domain/article/ArticleRepository.kt | 5 ----- .../domain/article/exception/ArticleNotFoundException.kt | 2 +- .../realworld/domain/article/{ => model}/Article.kt | 2 +- .../domain/article/{ => model}/ArticleCountProjection.kt | 2 +- .../gunkim/realworld/domain/article/{ => model}/Slug.kt | 2 +- .../article/{ => repository}/ArticleReadRepository.kt | 5 ++++- .../domain/article/repository/ArticleRepository.kt | 7 +++++++ .../domain/article/service/CreateArticleService.kt | 8 ++++---- .../domain/article/service/FavoriteArticleService.kt | 4 ++-- .../realworld/domain/article/service/GetArticleService.kt | 6 +++--- .../domain/article/service/UpdateArticleService.kt | 6 +++--- .../infrastructure/jdbc/article/dao/ArticleDao.kt | 2 +- .../infrastructure/jdbc/article/model/ArticleJpaEntity.kt | 6 +++--- .../jdbc/article/model/ArticleTagJpaEntity.kt | 2 +- .../infrastructure/jdbc/article/model/CommentJpaEntity.kt | 2 +- .../jdbc/article/repository/ArticleReadRepositoryImpl.kt | 8 ++++---- .../jdbc/article/repository/ArticleRepositoryImpl.kt | 6 +++--- .../realworld/web/api/article/ArticleResponseAssembler.kt | 2 +- .../realworld/web/api/article/ArticlesController.kt | 2 +- .../web/api/article/model/response/ArticleResponse.kt | 2 +- .../web/api/ArticlesControllerIntegrationTest.kt | 2 +- 22 files changed, 47 insertions(+), 39 deletions(-) delete mode 100644 src/main/kotlin/io/github/gunkim/realworld/domain/article/ArticleRepository.kt rename src/main/kotlin/io/github/gunkim/realworld/domain/article/{ => model}/Article.kt (98%) rename src/main/kotlin/io/github/gunkim/realworld/domain/article/{ => model}/ArticleCountProjection.kt (66%) rename src/main/kotlin/io/github/gunkim/realworld/domain/article/{ => model}/Slug.kt (94%) rename src/main/kotlin/io/github/gunkim/realworld/domain/article/{ => repository}/ArticleReadRepository.kt (58%) create mode 100644 src/main/kotlin/io/github/gunkim/realworld/domain/article/repository/ArticleRepository.kt diff --git a/src/main/kotlin/io/github/gunkim/realworld/domain/article/ArticleFindable.kt b/src/main/kotlin/io/github/gunkim/realworld/domain/article/ArticleFindable.kt index 46b54af..796bf7c 100644 --- a/src/main/kotlin/io/github/gunkim/realworld/domain/article/ArticleFindable.kt +++ b/src/main/kotlin/io/github/gunkim/realworld/domain/article/ArticleFindable.kt @@ -1,6 +1,9 @@ package io.github.gunkim.realworld.domain.article import io.github.gunkim.realworld.domain.article.exception.ArticleNotFoundException +import io.github.gunkim.realworld.domain.article.model.Article +import io.github.gunkim.realworld.domain.article.model.Slug +import io.github.gunkim.realworld.domain.article.repository.ArticleRepository interface ArticleFindable { val articleRepository: ArticleRepository diff --git a/src/main/kotlin/io/github/gunkim/realworld/domain/article/ArticleRepository.kt b/src/main/kotlin/io/github/gunkim/realworld/domain/article/ArticleRepository.kt deleted file mode 100644 index 85a6a41..0000000 --- a/src/main/kotlin/io/github/gunkim/realworld/domain/article/ArticleRepository.kt +++ /dev/null @@ -1,5 +0,0 @@ -package io.github.gunkim.realworld.domain.article - -interface ArticleRepository: ArticleReadRepository { - fun save(article: Article): Article -} \ No newline at end of file diff --git a/src/main/kotlin/io/github/gunkim/realworld/domain/article/exception/ArticleNotFoundException.kt b/src/main/kotlin/io/github/gunkim/realworld/domain/article/exception/ArticleNotFoundException.kt index d0c1016..7dc38e6 100644 --- a/src/main/kotlin/io/github/gunkim/realworld/domain/article/exception/ArticleNotFoundException.kt +++ b/src/main/kotlin/io/github/gunkim/realworld/domain/article/exception/ArticleNotFoundException.kt @@ -1,6 +1,6 @@ package io.github.gunkim.realworld.domain.article.exception -import io.github.gunkim.realworld.domain.article.Slug +import io.github.gunkim.realworld.domain.article.model.Slug import io.github.gunkim.realworld.share.DomainException class ArticleNotFoundException( diff --git a/src/main/kotlin/io/github/gunkim/realworld/domain/article/Article.kt b/src/main/kotlin/io/github/gunkim/realworld/domain/article/model/Article.kt similarity index 98% rename from src/main/kotlin/io/github/gunkim/realworld/domain/article/Article.kt rename to src/main/kotlin/io/github/gunkim/realworld/domain/article/model/Article.kt index d8b9d8a..63e371d 100644 --- a/src/main/kotlin/io/github/gunkim/realworld/domain/article/Article.kt +++ b/src/main/kotlin/io/github/gunkim/realworld/domain/article/model/Article.kt @@ -1,4 +1,4 @@ -package io.github.gunkim.realworld.domain.article +package io.github.gunkim.realworld.domain.article.model import io.github.gunkim.realworld.domain.DateAuditable import io.github.gunkim.realworld.domain.Editable diff --git a/src/main/kotlin/io/github/gunkim/realworld/domain/article/ArticleCountProjection.kt b/src/main/kotlin/io/github/gunkim/realworld/domain/article/model/ArticleCountProjection.kt similarity index 66% rename from src/main/kotlin/io/github/gunkim/realworld/domain/article/ArticleCountProjection.kt rename to src/main/kotlin/io/github/gunkim/realworld/domain/article/model/ArticleCountProjection.kt index d9766f2..173ee9c 100644 --- a/src/main/kotlin/io/github/gunkim/realworld/domain/article/ArticleCountProjection.kt +++ b/src/main/kotlin/io/github/gunkim/realworld/domain/article/model/ArticleCountProjection.kt @@ -1,4 +1,4 @@ -package io.github.gunkim.realworld.domain.article +package io.github.gunkim.realworld.domain.article.model import java.util.UUID diff --git a/src/main/kotlin/io/github/gunkim/realworld/domain/article/Slug.kt b/src/main/kotlin/io/github/gunkim/realworld/domain/article/model/Slug.kt similarity index 94% rename from src/main/kotlin/io/github/gunkim/realworld/domain/article/Slug.kt rename to src/main/kotlin/io/github/gunkim/realworld/domain/article/model/Slug.kt index 6bdda49..c19da4a 100644 --- a/src/main/kotlin/io/github/gunkim/realworld/domain/article/Slug.kt +++ b/src/main/kotlin/io/github/gunkim/realworld/domain/article/model/Slug.kt @@ -1,4 +1,4 @@ -package io.github.gunkim.realworld.domain.article +package io.github.gunkim.realworld.domain.article.model import java.util.UUID diff --git a/src/main/kotlin/io/github/gunkim/realworld/domain/article/ArticleReadRepository.kt b/src/main/kotlin/io/github/gunkim/realworld/domain/article/repository/ArticleReadRepository.kt similarity index 58% rename from src/main/kotlin/io/github/gunkim/realworld/domain/article/ArticleReadRepository.kt rename to src/main/kotlin/io/github/gunkim/realworld/domain/article/repository/ArticleReadRepository.kt index fbeb653..b4c5276 100644 --- a/src/main/kotlin/io/github/gunkim/realworld/domain/article/ArticleReadRepository.kt +++ b/src/main/kotlin/io/github/gunkim/realworld/domain/article/repository/ArticleReadRepository.kt @@ -1,5 +1,8 @@ -package io.github.gunkim.realworld.domain.article +package io.github.gunkim.realworld.domain.article.repository +import io.github.gunkim.realworld.domain.article.model.Article +import io.github.gunkim.realworld.domain.article.model.ArticleCountProjection +import io.github.gunkim.realworld.domain.article.model.Slug import java.util.UUID interface ArticleReadRepository { diff --git a/src/main/kotlin/io/github/gunkim/realworld/domain/article/repository/ArticleRepository.kt b/src/main/kotlin/io/github/gunkim/realworld/domain/article/repository/ArticleRepository.kt new file mode 100644 index 0000000..b23c67c --- /dev/null +++ b/src/main/kotlin/io/github/gunkim/realworld/domain/article/repository/ArticleRepository.kt @@ -0,0 +1,7 @@ +package io.github.gunkim.realworld.domain.article.repository + +import io.github.gunkim.realworld.domain.article.model.Article + +interface ArticleRepository: ArticleReadRepository { + fun save(article: Article): Article +} \ No newline at end of file diff --git a/src/main/kotlin/io/github/gunkim/realworld/domain/article/service/CreateArticleService.kt b/src/main/kotlin/io/github/gunkim/realworld/domain/article/service/CreateArticleService.kt index 914d495..e075bfd 100644 --- a/src/main/kotlin/io/github/gunkim/realworld/domain/article/service/CreateArticleService.kt +++ b/src/main/kotlin/io/github/gunkim/realworld/domain/article/service/CreateArticleService.kt @@ -1,10 +1,10 @@ package io.github.gunkim.realworld.domain.article.service import io.github.gunkim.realworld.domain.UserFindable -import io.github.gunkim.realworld.domain.article.Article -import io.github.gunkim.realworld.domain.article.ArticleRepository -import io.github.gunkim.realworld.domain.article.Slug -import io.github.gunkim.realworld.domain.article.Tag +import io.github.gunkim.realworld.domain.article.model.Article +import io.github.gunkim.realworld.domain.article.model.Slug +import io.github.gunkim.realworld.domain.article.model.Tag +import io.github.gunkim.realworld.domain.article.repository.ArticleRepository import io.github.gunkim.realworld.domain.user.repository.UserRepository import java.util.UUID import org.springframework.stereotype.Service diff --git a/src/main/kotlin/io/github/gunkim/realworld/domain/article/service/FavoriteArticleService.kt b/src/main/kotlin/io/github/gunkim/realworld/domain/article/service/FavoriteArticleService.kt index 366ff3c..77ad9e2 100644 --- a/src/main/kotlin/io/github/gunkim/realworld/domain/article/service/FavoriteArticleService.kt +++ b/src/main/kotlin/io/github/gunkim/realworld/domain/article/service/FavoriteArticleService.kt @@ -1,7 +1,7 @@ package io.github.gunkim.realworld.domain.article.service -import io.github.gunkim.realworld.domain.article.ArticleCountProjection -import io.github.gunkim.realworld.domain.article.ArticleRepository +import io.github.gunkim.realworld.domain.article.model.ArticleCountProjection +import io.github.gunkim.realworld.domain.article.repository.ArticleRepository import java.util.UUID import org.springframework.stereotype.Service diff --git a/src/main/kotlin/io/github/gunkim/realworld/domain/article/service/GetArticleService.kt b/src/main/kotlin/io/github/gunkim/realworld/domain/article/service/GetArticleService.kt index 98c92b5..354839a 100644 --- a/src/main/kotlin/io/github/gunkim/realworld/domain/article/service/GetArticleService.kt +++ b/src/main/kotlin/io/github/gunkim/realworld/domain/article/service/GetArticleService.kt @@ -1,9 +1,9 @@ package io.github.gunkim.realworld.domain.article.service -import io.github.gunkim.realworld.domain.article.Article import io.github.gunkim.realworld.domain.article.ArticleFindable -import io.github.gunkim.realworld.domain.article.ArticleRepository -import io.github.gunkim.realworld.domain.article.Slug +import io.github.gunkim.realworld.domain.article.model.Article +import io.github.gunkim.realworld.domain.article.model.Slug +import io.github.gunkim.realworld.domain.article.repository.ArticleRepository import org.springframework.stereotype.Service @Service diff --git a/src/main/kotlin/io/github/gunkim/realworld/domain/article/service/UpdateArticleService.kt b/src/main/kotlin/io/github/gunkim/realworld/domain/article/service/UpdateArticleService.kt index ed6abbc..17031b4 100644 --- a/src/main/kotlin/io/github/gunkim/realworld/domain/article/service/UpdateArticleService.kt +++ b/src/main/kotlin/io/github/gunkim/realworld/domain/article/service/UpdateArticleService.kt @@ -1,9 +1,9 @@ package io.github.gunkim.realworld.domain.article.service -import io.github.gunkim.realworld.domain.article.Article import io.github.gunkim.realworld.domain.article.ArticleFindable -import io.github.gunkim.realworld.domain.article.ArticleRepository -import io.github.gunkim.realworld.domain.article.Slug +import io.github.gunkim.realworld.domain.article.model.Article +import io.github.gunkim.realworld.domain.article.model.Slug +import io.github.gunkim.realworld.domain.article.repository.ArticleRepository import org.springframework.stereotype.Service private fun Article.Editor.setTitleAndSlug( diff --git a/src/main/kotlin/io/github/gunkim/realworld/infrastructure/jdbc/article/dao/ArticleDao.kt b/src/main/kotlin/io/github/gunkim/realworld/infrastructure/jdbc/article/dao/ArticleDao.kt index 9d246b6..6b5eb3f 100644 --- a/src/main/kotlin/io/github/gunkim/realworld/infrastructure/jdbc/article/dao/ArticleDao.kt +++ b/src/main/kotlin/io/github/gunkim/realworld/infrastructure/jdbc/article/dao/ArticleDao.kt @@ -1,6 +1,6 @@ package io.github.gunkim.realworld.infrastructure.jdbc.article.dao -import io.github.gunkim.realworld.domain.article.ArticleCountProjection +import io.github.gunkim.realworld.domain.article.model.ArticleCountProjection import io.github.gunkim.realworld.infrastructure.jdbc.article.model.ArticleJpaEntity import java.util.UUID import org.springframework.data.domain.Pageable diff --git a/src/main/kotlin/io/github/gunkim/realworld/infrastructure/jdbc/article/model/ArticleJpaEntity.kt b/src/main/kotlin/io/github/gunkim/realworld/infrastructure/jdbc/article/model/ArticleJpaEntity.kt index 1014bfc..d35b1a8 100644 --- a/src/main/kotlin/io/github/gunkim/realworld/infrastructure/jdbc/article/model/ArticleJpaEntity.kt +++ b/src/main/kotlin/io/github/gunkim/realworld/infrastructure/jdbc/article/model/ArticleJpaEntity.kt @@ -1,8 +1,8 @@ package io.github.gunkim.realworld.infrastructure.jdbc.article.model -import io.github.gunkim.realworld.domain.article.Article -import io.github.gunkim.realworld.domain.article.Slug -import io.github.gunkim.realworld.domain.article.Tag +import io.github.gunkim.realworld.domain.article.model.Article +import io.github.gunkim.realworld.domain.article.model.Slug +import io.github.gunkim.realworld.domain.article.model.Tag import io.github.gunkim.realworld.infrastructure.jdbc.user.model.UserJpaEntity import jakarta.persistence.CascadeType import jakarta.persistence.Column diff --git a/src/main/kotlin/io/github/gunkim/realworld/infrastructure/jdbc/article/model/ArticleTagJpaEntity.kt b/src/main/kotlin/io/github/gunkim/realworld/infrastructure/jdbc/article/model/ArticleTagJpaEntity.kt index d252f7a..1aa18b9 100644 --- a/src/main/kotlin/io/github/gunkim/realworld/infrastructure/jdbc/article/model/ArticleTagJpaEntity.kt +++ b/src/main/kotlin/io/github/gunkim/realworld/infrastructure/jdbc/article/model/ArticleTagJpaEntity.kt @@ -1,6 +1,6 @@ package io.github.gunkim.realworld.infrastructure.jdbc.article.model -import io.github.gunkim.realworld.domain.article.Tag +import io.github.gunkim.realworld.domain.article.model.Tag import jakarta.persistence.Column import jakarta.persistence.Entity import jakarta.persistence.FetchType diff --git a/src/main/kotlin/io/github/gunkim/realworld/infrastructure/jdbc/article/model/CommentJpaEntity.kt b/src/main/kotlin/io/github/gunkim/realworld/infrastructure/jdbc/article/model/CommentJpaEntity.kt index ff2c724..6795c2b 100644 --- a/src/main/kotlin/io/github/gunkim/realworld/infrastructure/jdbc/article/model/CommentJpaEntity.kt +++ b/src/main/kotlin/io/github/gunkim/realworld/infrastructure/jdbc/article/model/CommentJpaEntity.kt @@ -1,6 +1,6 @@ package io.github.gunkim.realworld.infrastructure.jdbc.article.model -import io.github.gunkim.realworld.domain.article.Comment +import io.github.gunkim.realworld.domain.article.model.Comment import io.github.gunkim.realworld.infrastructure.jdbc.user.model.UserJpaEntity import jakarta.persistence.Entity import jakarta.persistence.FetchType diff --git a/src/main/kotlin/io/github/gunkim/realworld/infrastructure/jdbc/article/repository/ArticleReadRepositoryImpl.kt b/src/main/kotlin/io/github/gunkim/realworld/infrastructure/jdbc/article/repository/ArticleReadRepositoryImpl.kt index 3c4579a..a6de9e6 100644 --- a/src/main/kotlin/io/github/gunkim/realworld/infrastructure/jdbc/article/repository/ArticleReadRepositoryImpl.kt +++ b/src/main/kotlin/io/github/gunkim/realworld/infrastructure/jdbc/article/repository/ArticleReadRepositoryImpl.kt @@ -1,9 +1,9 @@ package io.github.gunkim.realworld.infrastructure.jdbc.article.repository -import io.github.gunkim.realworld.domain.article.Article -import io.github.gunkim.realworld.domain.article.ArticleCountProjection -import io.github.gunkim.realworld.domain.article.ArticleReadRepository -import io.github.gunkim.realworld.domain.article.Slug +import io.github.gunkim.realworld.domain.article.model.Article +import io.github.gunkim.realworld.domain.article.model.ArticleCountProjection +import io.github.gunkim.realworld.domain.article.model.Slug +import io.github.gunkim.realworld.domain.article.repository.ArticleReadRepository import io.github.gunkim.realworld.infrastructure.jdbc.article.dao.ArticleDao import java.util.UUID import org.springframework.data.domain.PageRequest diff --git a/src/main/kotlin/io/github/gunkim/realworld/infrastructure/jdbc/article/repository/ArticleRepositoryImpl.kt b/src/main/kotlin/io/github/gunkim/realworld/infrastructure/jdbc/article/repository/ArticleRepositoryImpl.kt index 11bc76a..a3d8bdd 100644 --- a/src/main/kotlin/io/github/gunkim/realworld/infrastructure/jdbc/article/repository/ArticleRepositoryImpl.kt +++ b/src/main/kotlin/io/github/gunkim/realworld/infrastructure/jdbc/article/repository/ArticleRepositoryImpl.kt @@ -1,8 +1,8 @@ package io.github.gunkim.realworld.infrastructure.jdbc.article.repository -import io.github.gunkim.realworld.domain.article.Article -import io.github.gunkim.realworld.domain.article.ArticleReadRepository -import io.github.gunkim.realworld.domain.article.ArticleRepository +import io.github.gunkim.realworld.domain.article.model.Article +import io.github.gunkim.realworld.domain.article.repository.ArticleReadRepository +import io.github.gunkim.realworld.domain.article.repository.ArticleRepository import io.github.gunkim.realworld.infrastructure.jdbc.article.dao.ArticleDao import io.github.gunkim.realworld.infrastructure.jdbc.article.dao.TagDao import io.github.gunkim.realworld.infrastructure.jdbc.article.model.ArticleJpaEntity diff --git a/src/main/kotlin/io/github/gunkim/realworld/web/api/article/ArticleResponseAssembler.kt b/src/main/kotlin/io/github/gunkim/realworld/web/api/article/ArticleResponseAssembler.kt index 5a70d5d..c019518 100644 --- a/src/main/kotlin/io/github/gunkim/realworld/web/api/article/ArticleResponseAssembler.kt +++ b/src/main/kotlin/io/github/gunkim/realworld/web/api/article/ArticleResponseAssembler.kt @@ -1,6 +1,6 @@ package io.github.gunkim.realworld.web.api.article -import io.github.gunkim.realworld.domain.article.Article +import io.github.gunkim.realworld.domain.article.model.Article import io.github.gunkim.realworld.domain.article.service.FavoriteArticleService import io.github.gunkim.realworld.domain.user.service.FollowUserService import io.github.gunkim.realworld.share.AuthenticatedUser diff --git a/src/main/kotlin/io/github/gunkim/realworld/web/api/article/ArticlesController.kt b/src/main/kotlin/io/github/gunkim/realworld/web/api/article/ArticlesController.kt index 9f6c538..ca20ade 100644 --- a/src/main/kotlin/io/github/gunkim/realworld/web/api/article/ArticlesController.kt +++ b/src/main/kotlin/io/github/gunkim/realworld/web/api/article/ArticlesController.kt @@ -1,7 +1,7 @@ package io.github.gunkim.realworld.web.api.article import io.github.gunkim.realworld.config.request.JsonRequest -import io.github.gunkim.realworld.domain.article.Slug +import io.github.gunkim.realworld.domain.article.model.Slug import io.github.gunkim.realworld.domain.article.service.CreateArticleService import io.github.gunkim.realworld.domain.article.service.GetArticleService import io.github.gunkim.realworld.domain.article.service.UpdateArticleService diff --git a/src/main/kotlin/io/github/gunkim/realworld/web/api/article/model/response/ArticleResponse.kt b/src/main/kotlin/io/github/gunkim/realworld/web/api/article/model/response/ArticleResponse.kt index 5366efc..86f0822 100644 --- a/src/main/kotlin/io/github/gunkim/realworld/web/api/article/model/response/ArticleResponse.kt +++ b/src/main/kotlin/io/github/gunkim/realworld/web/api/article/model/response/ArticleResponse.kt @@ -1,7 +1,7 @@ package io.github.gunkim.realworld.web.api.article.model.response import com.fasterxml.jackson.annotation.JsonTypeInfo -import io.github.gunkim.realworld.domain.article.Article +import io.github.gunkim.realworld.domain.article.model.Article import io.github.gunkim.realworld.web.api.user.model.response.ProfileResponse import java.time.Instant diff --git a/src/test/kotlin/io/github/gunkim/realworld/web/api/ArticlesControllerIntegrationTest.kt b/src/test/kotlin/io/github/gunkim/realworld/web/api/ArticlesControllerIntegrationTest.kt index acb59ac..63da646 100644 --- a/src/test/kotlin/io/github/gunkim/realworld/web/api/ArticlesControllerIntegrationTest.kt +++ b/src/test/kotlin/io/github/gunkim/realworld/web/api/ArticlesControllerIntegrationTest.kt @@ -1,6 +1,6 @@ package io.github.gunkim.realworld.web.api -import io.github.gunkim.realworld.domain.article.Article +import io.github.gunkim.realworld.domain.article.model.Article import io.github.gunkim.realworld.domain.article.service.CreateArticleService import io.github.gunkim.realworld.domain.user.model.User import io.github.gunkim.realworld.share.IntegrationTest