Skip to content

Commit

Permalink
refactor(center): 사용하지 않는 기존 Center 기능 제거
Browse files Browse the repository at this point in the history
  • Loading branch information
leebs0521 committed Feb 5, 2025
1 parent 70d2609 commit 7470e1f
Show file tree
Hide file tree
Showing 6 changed files with 19 additions and 120 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.somemore.domains.center.repository.mapper;
package com.somemore.center.repository.record;


import java.util.UUID;
Expand Down
Original file line number Diff line number Diff line change
@@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand Down
Original file line number Diff line number Diff line change
@@ -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<PreferItemResponseDto> preferItemDtos = preferItemQueryUseCase.getPreferItemDtosByCenterId(centerId);

return CenterProfileResponseDto.of(center, preferItemDtos);
}

@Override
public List<CenterOverviewInfo> getCenterOverviewsByIds(List<UUID> centerIds) {
return centerRepository.findCenterOverviewsByIds(centerIds);
}

@Override
public void validateCenterExists(UUID id) {
if (centerRepository.doesNotExistById(id)) {
Expand Down
Original file line number Diff line number Diff line change
@@ -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<CenterOverviewInfo> getCenterOverviewsByIds(List<UUID> centerIds);

void validateCenterExists(UUID centerId);

String getNameById(UUID id);
}
Original file line number Diff line number Diff line change
@@ -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 {

Expand All @@ -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<UUID> ids = List.of(center.getId(),center1.getId(), center2.getId());

//when
List<CenterOverviewInfo> 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() {
Expand Down Expand Up @@ -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();
Expand All @@ -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)
Expand Down

0 comments on commit 7470e1f

Please sign in to comment.