hotfix/ 검색이 안되는 문제 해결

This commit is contained in:
jinia91
2022-03-28 23:44:13 +09:00
parent 84850a8eb6
commit 1a718b189b
23 changed files with 42 additions and 30 deletions

View File

@@ -67,7 +67,7 @@ public class ArticleRepositoryAdapter implements ArticleRepositoryPort {
@Override @Override
public Page<Article> findAllByKeywordOrderById(Pageable pageable, String keyword) { public Page<Article> findAllByKeywordOrderById(Pageable pageable, String keyword) {
return jpaArticleRepository.findAllByArticleTagsOrderById(pageable, keyword); return jpaArticleRepository.findAllByKeywordOrderById(pageable, keyword);
} }
@Override @Override

View File

@@ -19,10 +19,13 @@ import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Slice; import org.springframework.data.domain.Slice;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Component @Component
@Transactional(readOnly = true)
@RequiredArgsConstructor @RequiredArgsConstructor
public class ArticleQueries implements ArticleQueriesUseCase { public class ArticleQueries implements ArticleQueriesUseCase {

View File

@@ -13,7 +13,7 @@ import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Component @Component
@Transactional @Transactional(readOnly = true)
@RequiredArgsConstructor @RequiredArgsConstructor
public class TagsQueries implements TagsQueriesUseCase { public class TagsQueries implements TagsQueriesUseCase {
private final TagRepositoryPort tagRepositoryPort; private final TagRepositoryPort tagRepositoryPort;

View File

@@ -1,6 +1,6 @@
package myblog.blog.article.domain; package myblog.blog.article.domain;
import myblog.blog.shared.BasicEntity; import myblog.blog.shared.domain.BasicEntity;
import myblog.blog.category.domain.Category; import myblog.blog.category.domain.Category;
import myblog.blog.comment.domain.Comment; import myblog.blog.comment.domain.Comment;
import myblog.blog.member.doamin.Member; import myblog.blog.member.doamin.Member;

View File

@@ -1,7 +1,7 @@
package myblog.blog.article.domain; package myblog.blog.article.domain;
import lombok.Getter; import lombok.Getter;
import myblog.blog.shared.BasicEntity; import myblog.blog.shared.domain.BasicEntity;
import javax.persistence.*; import javax.persistence.*;

View File

@@ -1,7 +1,7 @@
package myblog.blog.article.domain; package myblog.blog.article.domain;
import lombok.Getter; import lombok.Getter;
import myblog.blog.shared.BasicEntity; import myblog.blog.shared.domain.BasicEntity;
import javax.persistence.*; import javax.persistence.*;
import java.util.ArrayList; import java.util.ArrayList;

View File

@@ -1,11 +1,9 @@
package myblog.blog.article.domain; package myblog.blog.article.domain;
import lombok.Getter; import lombok.Getter;
import myblog.blog.shared.BasicEntity; import myblog.blog.shared.domain.BasicEntity;
import javax.persistence.*; import javax.persistence.*;
import java.util.ArrayList;
import java.util.List;
/* /*
- 임시 아티클 저장 Entity - 임시 아티클 저장 Entity

View File

@@ -14,7 +14,7 @@ import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Service @Service
@Transactional @Transactional(readOnly = true)
@RequiredArgsConstructor @RequiredArgsConstructor
public class CategoryQueries implements CategoryQueriesUseCase { public class CategoryQueries implements CategoryQueriesUseCase {

View File

@@ -4,7 +4,7 @@ package myblog.blog.category.domain;
import lombok.Builder; import lombok.Builder;
import lombok.Getter; import lombok.Getter;
import myblog.blog.shared.BasicEntity; import myblog.blog.shared.domain.BasicEntity;
import myblog.blog.article.domain.Article; import myblog.blog.article.domain.Article;
import javax.persistence.*; import javax.persistence.*;

View File

@@ -13,7 +13,7 @@ import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Service @Service
@Transactional @Transactional(readOnly = true)
@RequiredArgsConstructor @RequiredArgsConstructor
public class CommentQueries implements CommentQueriesUseCase { public class CommentQueries implements CommentQueriesUseCase {
private final CommentRepositoryPort commentRepositoryPort; private final CommentRepositoryPort commentRepositoryPort;

View File

@@ -3,7 +3,7 @@ package myblog.blog.comment.domain;
import lombok.Builder; import lombok.Builder;
import lombok.Getter; import lombok.Getter;
import myblog.blog.article.domain.Article; import myblog.blog.article.domain.Article;
import myblog.blog.shared.BasicEntity; import myblog.blog.shared.domain.BasicEntity;
import myblog.blog.member.doamin.Member; import myblog.blog.member.doamin.Member;
import org.hibernate.annotations.OnDelete; import org.hibernate.annotations.OnDelete;
import org.hibernate.annotations.OnDeleteAction; import org.hibernate.annotations.OnDeleteAction;

View File

@@ -1,7 +1,7 @@
package myblog.blog.infra.config; package myblog.blog.infra.config;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import myblog.blog.shared.exception.LoginFailHandler; import myblog.blog.infra.exception.LoginFailHandler;
import myblog.blog.member.doamin.Role; import myblog.blog.member.doamin.Role;
import myblog.blog.member.application.Oauth2MemberService; import myblog.blog.member.application.Oauth2MemberService;
import org.springframework.boot.autoconfigure.security.servlet.PathRequest; import org.springframework.boot.autoconfigure.security.servlet.PathRequest;

View File

@@ -1,4 +1,4 @@
package myblog.blog.shared.exception; package myblog.blog.infra.exception;
import myblog.blog.comment.adapter.incomming.InvalidCommentRequestException; import myblog.blog.comment.adapter.incomming.InvalidCommentRequestException;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;

View File

@@ -1,4 +1,4 @@
package myblog.blog.shared.exception; package myblog.blog.infra.exception;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.security.authentication.AuthenticationServiceException; import org.springframework.security.authentication.AuthenticationServiceException;

View File

@@ -10,7 +10,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@Service @Service
@Transactional @Transactional(readOnly = true)
@RequiredArgsConstructor @RequiredArgsConstructor
public class MemberQueries implements MemberQueriesUseCase { public class MemberQueries implements MemberQueriesUseCase {
private final MemberRepositoryPort memberRepositoryPort; private final MemberRepositoryPort memberRepositoryPort;

View File

@@ -27,7 +27,6 @@ public class Oauth2MemberService extends DefaultOAuth2UserService {
- OAuth2 인증 로그인 - OAuth2 인증 로그인
*/ */
@Override @Override
@Transactional
public OAuth2User loadUser(OAuth2UserRequest userRequest) throws OAuth2AuthenticationException { public OAuth2User loadUser(OAuth2UserRequest userRequest) throws OAuth2AuthenticationException {
OAuth2User oAuth2User = super.loadUser(userRequest); OAuth2User oAuth2User = super.loadUser(userRequest);
Oauth2UserInfo userInfo = Oauth2UserInfo userInfo =

View File

@@ -40,9 +40,7 @@ public class UserInfoFactory {
- 팩토리 메소드 - 팩토리 메소드
*/ */
public Oauth2UserInfo makeOauth2UserInfoOf(OAuth2UserRequest oAuth2UserRequest, OAuth2User oAuth2User) { public Oauth2UserInfo makeOauth2UserInfoOf(OAuth2UserRequest oAuth2UserRequest, OAuth2User oAuth2User) {
Optional<ProviderType> providerTypeOptional = createEnumFromString(oAuth2UserRequest.getClientRegistration().getRegistrationId());
Optional<ProviderType> providerTypeOptional = fromString(oAuth2UserRequest.getClientRegistration().getRegistrationId());
return userInfoFactoryMap return userInfoFactoryMap
.get(providerTypeOptional.orElseThrow(() -> new IllegalArgumentException("지원하지 않는 소셜 로그인 API 제공자입니다."))) .get(providerTypeOptional.orElseThrow(() -> new IllegalArgumentException("지원하지 않는 소셜 로그인 API 제공자입니다.")))
.apply(oAuth2User); .apply(oAuth2User);
@@ -53,7 +51,7 @@ public class UserInfoFactory {
- String을 열거타입으로 컨버팅 로직 - String을 열거타입으로 컨버팅 로직
존재하지 않는 요청위험 고려해서 Optional처리 존재하지 않는 요청위험 고려해서 Optional처리
*/ */
private Optional<ProviderType> fromString(String provider){ private Optional<ProviderType> createEnumFromString(String provider){
return Optional.ofNullable(stringToEnum.get(provider)); return Optional.ofNullable(stringToEnum.get(provider));
} }

View File

@@ -3,9 +3,10 @@ package myblog.blog.member.doamin;
import lombok.Builder; import lombok.Builder;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import myblog.blog.article.domain.Article; import myblog.blog.article.domain.Article;
import myblog.blog.shared.BasicEntity;
import myblog.blog.comment.domain.Comment; import myblog.blog.comment.domain.Comment;
import myblog.blog.shared.domain.BasicEntity;
import javax.persistence.*; import javax.persistence.*;
import java.util.ArrayList; import java.util.ArrayList;

View File

@@ -8,11 +8,13 @@ import myblog.blog.comment.application.port.incomming.response.CommentDtoForLayo
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.ui.Model; import org.springframework.ui.Model;
import java.util.List; import java.util.List;
@Component @Component
@RequiredArgsConstructor @RequiredArgsConstructor
@Transactional(readOnly = true)
public class LayoutRenderingQueries implements LayoutRenderingUseCase { public class LayoutRenderingQueries implements LayoutRenderingUseCase {
private final CommentQueriesUseCase commentQueriesUseCase; private final CommentQueriesUseCase commentQueriesUseCase;

View File

@@ -1,4 +1,4 @@
package myblog.blog.shared; package myblog.blog.shared.domain;
import lombok.Getter; import lombok.Getter;
import org.springframework.data.annotation.CreatedDate; import org.springframework.data.annotation.CreatedDate;

View File

@@ -0,0 +1,9 @@
//package myblog.blog.member.application
//
//import org.junit.jupiter.api.Test
//
//class UserInfoFactoryTest {
//
// @Test
// fun ``
//}

View File

@@ -1,8 +1,7 @@
package myblog.blog.rss package myblog.blog.seo.application
import myblog.blog.article.domain.Article import myblog.blog.article.domain.Article
import myblog.blog.article.application.ArticleService import myblog.blog.article.application.port.incomming.ArticleUseCase
import myblog.blog.seo.application.RssService
import org.assertj.core.api.Assertions.assertThat import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.Test import org.junit.jupiter.api.Test
import org.junit.jupiter.api.extension.ExtendWith import org.junit.jupiter.api.extension.ExtendWith
@@ -18,7 +17,7 @@ import java.util.*
class RssServiceTests { class RssServiceTests {
@Mock @Mock
lateinit var articleService: ArticleService lateinit var articleService: ArticleUseCase
@InjectMocks @InjectMocks
lateinit var rssService: RssService lateinit var rssService: RssService

View File

@@ -1,10 +1,13 @@
package myblog.blog.sitemap package myblog.blog.seo.application
import myblog.blog.article.domain.Article import myblog.blog.article.domain.Article
import myblog.blog.article.application.ArticleService import myblog.blog.article.application.ArticleService
import myblog.blog.article.application.port.incomming.ArticleUseCase
import myblog.blog.seo.application.SiteMapService import myblog.blog.seo.application.SiteMapService
import myblog.blog.category.domain.Category import myblog.blog.category.domain.Category
import myblog.blog.category.appliacation.CategoryService import myblog.blog.category.appliacation.CategoryService
import myblog.blog.category.appliacation.port.incomming.CategoryUseCase
import myblog.blog.seo.application.port.incomming.SiteMapUseCase
import org.assertj.core.api.Assertions.assertThat import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.Test import org.junit.jupiter.api.Test
//import org.junit.Test //import org.junit.Test
@@ -22,9 +25,9 @@ import java.util.*
class SiteMapServiceTests { class SiteMapServiceTests {
@Mock @Mock
lateinit var articleService: ArticleService lateinit var articleService: ArticleUseCase
@Mock @Mock
lateinit var categoryService: CategoryService lateinit var categoryService: CategoryUseCase
@InjectMocks @InjectMocks
lateinit var siteMapService: SiteMapService lateinit var siteMapService: SiteMapService