diff --git a/src/main/java/com/somemore/domains/center/repository/mapper/CenterOverviewInfo.java b/src/main/java/com/somemore/center/repository/record/CenterOverviewInfo.java similarity index 71% rename from src/main/java/com/somemore/domains/center/repository/mapper/CenterOverviewInfo.java rename to src/main/java/com/somemore/center/repository/record/CenterOverviewInfo.java index e876366d4..fde17150d 100644 --- a/src/main/java/com/somemore/domains/center/repository/mapper/CenterOverviewInfo.java +++ b/src/main/java/com/somemore/center/repository/record/CenterOverviewInfo.java @@ -1,4 +1,4 @@ -package com.somemore.domains.center.repository.mapper; +package com.somemore.center.repository.record; import java.util.UUID; diff --git a/src/main/java/com/somemore/domains/center/repository/center/CenterRepository.java b/src/main/java/com/somemore/domains/center/repository/center/CenterRepository.java index 0858ea507..9e330930f 100644 --- a/src/main/java/com/somemore/domains/center/repository/center/CenterRepository.java +++ b/src/main/java/com/somemore/domains/center/repository/center/CenterRepository.java @@ -1,13 +1,13 @@ package com.somemore.domains.center.repository.center; +import com.somemore.center.repository.record.CenterOverviewInfo; import com.somemore.domains.center.domain.Center; -import com.somemore.domains.center.repository.mapper.CenterOverviewInfo; - import java.util.List; import java.util.Optional; import java.util.UUID; public interface CenterRepository { + Center save(Center center); boolean existsById(UUID id); diff --git a/src/main/java/com/somemore/domains/center/repository/center/CenterRepositoryImpl.java b/src/main/java/com/somemore/domains/center/repository/center/CenterRepositoryImpl.java index 9e6f9a7d3..8ac7d3897 100644 --- a/src/main/java/com/somemore/domains/center/repository/center/CenterRepositoryImpl.java +++ b/src/main/java/com/somemore/domains/center/repository/center/CenterRepositoryImpl.java @@ -4,15 +4,14 @@ import com.querydsl.core.types.Projections; import com.querydsl.core.types.dsl.BooleanExpression; import com.querydsl.jpa.impl.JPAQueryFactory; +import com.somemore.center.repository.record.CenterOverviewInfo; import com.somemore.domains.center.domain.Center; import com.somemore.domains.center.domain.QCenter; -import com.somemore.domains.center.repository.mapper.CenterOverviewInfo; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Repository; - import java.util.List; import java.util.Optional; import java.util.UUID; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Repository; @RequiredArgsConstructor @Repository("centerRepository") diff --git a/src/main/java/com/somemore/domains/center/service/query/CenterQueryService.java b/src/main/java/com/somemore/domains/center/service/query/CenterQueryService.java index 357d83c7b..d1aee504d 100644 --- a/src/main/java/com/somemore/domains/center/service/query/CenterQueryService.java +++ b/src/main/java/com/somemore/domains/center/service/query/CenterQueryService.java @@ -1,44 +1,23 @@ package com.somemore.domains.center.service.query; +import static com.somemore.global.exception.ExceptionMessage.NOT_EXISTS_CENTER; + import com.somemore.domains.center.domain.Center; -import com.somemore.domains.center.dto.response.CenterProfileResponseDto; -import com.somemore.domains.center.dto.response.PreferItemResponseDto; import com.somemore.domains.center.repository.center.CenterRepository; -import com.somemore.domains.center.repository.mapper.CenterOverviewInfo; import com.somemore.domains.center.usecase.query.CenterQueryUseCase; -import com.somemore.domains.center.usecase.query.PreferItemQueryUseCase; import com.somemore.global.exception.BadRequestException; +import java.util.UUID; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.List; -import java.util.UUID; - -import static com.somemore.global.exception.ExceptionMessage.NOT_EXISTS_CENTER; - @RequiredArgsConstructor @Transactional(readOnly = true) @Service public class CenterQueryService implements CenterQueryUseCase { - private final PreferItemQueryUseCase preferItemQueryUseCase; private final CenterRepository centerRepository; - @Override - public CenterProfileResponseDto getCenterProfileByCenterId(UUID centerId) { - - Center center = getCenterById(centerId); - List preferItemDtos = preferItemQueryUseCase.getPreferItemDtosByCenterId(centerId); - - return CenterProfileResponseDto.of(center, preferItemDtos); - } - - @Override - public List getCenterOverviewsByIds(List centerIds) { - return centerRepository.findCenterOverviewsByIds(centerIds); - } - @Override public void validateCenterExists(UUID id) { if (centerRepository.doesNotExistById(id)) { diff --git a/src/main/java/com/somemore/domains/center/usecase/query/CenterQueryUseCase.java b/src/main/java/com/somemore/domains/center/usecase/query/CenterQueryUseCase.java index 0b19eeb84..35847eaaa 100644 --- a/src/main/java/com/somemore/domains/center/usecase/query/CenterQueryUseCase.java +++ b/src/main/java/com/somemore/domains/center/usecase/query/CenterQueryUseCase.java @@ -1,16 +1,10 @@ package com.somemore.domains.center.usecase.query; -import com.somemore.domains.center.dto.response.CenterProfileResponseDto; -import com.somemore.domains.center.repository.mapper.CenterOverviewInfo; - -import java.util.List; import java.util.UUID; public interface CenterQueryUseCase { - CenterProfileResponseDto getCenterProfileByCenterId(UUID centerId); - - List getCenterOverviewsByIds(List centerIds); void validateCenterExists(UUID centerId); + String getNameById(UUID id); } diff --git a/src/test/java/com/somemore/domains/center/service/query/CenterQueryServiceTest.java b/src/test/java/com/somemore/domains/center/service/query/CenterQueryServiceTest.java index 06de9ade7..857103c2a 100644 --- a/src/test/java/com/somemore/domains/center/service/query/CenterQueryServiceTest.java +++ b/src/test/java/com/somemore/domains/center/service/query/CenterQueryServiceTest.java @@ -1,26 +1,21 @@ package com.somemore.domains.center.service.query; +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatCode; +import static org.assertj.core.api.Assertions.assertThatExceptionOfType; + import com.somemore.domains.center.domain.Center; -import com.somemore.domains.center.domain.PreferItem; -import com.somemore.domains.center.dto.response.CenterProfileResponseDto; -import com.somemore.domains.center.repository.center.CenterJpaRepository; import com.somemore.domains.center.repository.center.CenterRepository; -import com.somemore.domains.center.repository.mapper.CenterOverviewInfo; -import com.somemore.domains.center.repository.preferitem.PreferItemJpaRepository; import com.somemore.global.exception.BadRequestException; import com.somemore.global.exception.ExceptionMessage; import com.somemore.support.IntegrationTestSupport; import jakarta.transaction.Transactional; +import java.util.UUID; import org.assertj.core.api.ThrowableAssert; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; -import java.util.List; -import java.util.UUID; - -import static org.assertj.core.api.Assertions.*; - @Transactional class CenterQueryServiceTest extends IntegrationTestSupport { @@ -30,76 +25,6 @@ class CenterQueryServiceTest extends IntegrationTestSupport { @Autowired private CenterRepository centerRepository; - @Autowired - private CenterJpaRepository centerJpaRepository; - - @Autowired - private PreferItemJpaRepository preferItemRepository; - - @DisplayName("기관 Id로 기관 프로필을 조회할 수 있다. (service)") - @Test - void getCenterProfileById() { - // given - Center center = createCenter(); - Center foundCenter = centerRepository.save(center); - - PreferItem preferItem = PreferItem.create(foundCenter.getId(), "어린이 동화책"); - PreferItem preferItem1 = PreferItem.create(foundCenter.getId(), "간식"); - preferItemRepository.saveAll(List.of(preferItem, preferItem1)); - - // when - CenterProfileResponseDto responseDto = centerQueryService.getCenterProfileByCenterId(foundCenter.getId()); - - // then - assertThat(responseDto) - .extracting( - "centerId", - "name", - "contactNumber", - "imgUrl", - "introduce", - "homepageLink" - ) - .containsExactly( - foundCenter.getId(), - "기본 기관 이름", - "010-1234-5678", - "http://example.com/image.jpg", - "기관 소개 내용", - "http://example.com" - ); - - assertThat(responseDto.preferItems()) - .hasSize(2) - .extracting("itemName") - .containsExactly("어린이 동화책", "간식"); - } - - @DisplayName("기관 Id들로 기관의 오버뷰 정보를 조회할 수 있다.") - @Test - void getCenterOverviewsByIds() { - //given - Center center = createCenter(); - Center center1 = createCenter(); - Center center2 = createCenter(); - centerJpaRepository.saveAll(List.of(center, center1, center2)); - List ids = List.of(center.getId(),center1.getId(), center2.getId()); - - //when - List responseDtos = centerQueryService.getCenterOverviewsByIds(ids); - - //then - assertThat(responseDtos) - .isNotNull() - .hasSize(3) - .extracting("centerId", "centerName", "imgUrl") - .containsExactlyInAnyOrder( - tuple(center.getId(), center.getName(), center.getImgUrl()), - tuple(center1.getId(), center1.getName(), center1.getImgUrl()), - tuple(center2.getId(), center2.getName(), center2.getImgUrl()) - ); - } - @DisplayName("존재하지 않는 기관 ID를 검증할 수 있다.") @Test void validateNonExistentCenter() { @@ -130,7 +55,8 @@ void validateExistingCenter() { Center savedCenter = centerRepository.save(center); // when - ThrowableAssert.ThrowingCallable callable = () -> centerQueryService.validateCenterExists(savedCenter.getId()); + ThrowableAssert.ThrowingCallable callable = () -> centerQueryService.validateCenterExists( + savedCenter.getId()); // then assertThatCode(callable).doesNotThrowAnyException(); @@ -155,7 +81,8 @@ void getNameById() { void getNameByNonExistentId() { // given // when - ThrowableAssert.ThrowingCallable callable = () -> centerQueryService.getNameById(UUID.randomUUID()); + ThrowableAssert.ThrowingCallable callable = () -> centerQueryService.getNameById( + UUID.randomUUID()); // then assertThatExceptionOfType(BadRequestException.class)