Skip to content

Commit

Permalink
Merge pull request #311 from Team-Sopetit/feature/#308-get-daily-rout…
Browse files Browse the repository at this point in the history
…ines-2

[FIX] Daily Routine 조회 기능 구현 (2)
  • Loading branch information
thguss authored Jul 24, 2024
2 parents 9c2fd1f + 33d3454 commit d4880a9
Show file tree
Hide file tree
Showing 7 changed files with 45 additions and 42 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public List<Routine> findChallengeRoutinesByTheme(Long themeId) {
return routineRepository.findByTypeAndThemeId(RoutineType.CHALLENGE, themeId);
}

public List<RoutineVO> findAllByTypeAndThemeId(RoutineType type, Long themeId) {
return routineRepository.findByTypeAndThemeId(type, themeId).stream().map(RoutineVO::from).toList();
public List<Routine> findAllByTypeAndThemeId(RoutineType type, Long themeId) {
return routineRepository.findByTypeAndThemeId(type, themeId);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import java.util.List;
import java.util.Objects;

import com.soptie.server.routine.service.vo.RoutineVO;
import com.soptie.server.routine.entity.Routine;

import lombok.AccessLevel;
import lombok.Builder;
Expand All @@ -14,7 +14,7 @@ public record HappinessRoutineListAcquireResponse(
List<HappinessRoutineResponse> routines
) {

public static HappinessRoutineListAcquireResponse from(List<RoutineVO> routines) {
public static HappinessRoutineListAcquireResponse from(List<Routine> routines) {
return HappinessRoutineListAcquireResponse.builder()
.routines(routines.stream().map(HappinessRoutineResponse::from).toList())
.build();
Expand All @@ -29,13 +29,13 @@ private record HappinessRoutineResponse(
@NonNull String iconImageUrl
) {

private static HappinessRoutineResponse from(RoutineVO routine) {
private static HappinessRoutineResponse from(Routine routine) {
return HappinessRoutineResponse.builder()
.routineId(routine.routineId())
.name(Objects.nonNull(routine.theme()) ? routine.theme().name() : "알 수 없는 테마")
.nameColor(Objects.nonNull(routine.theme()) ? routine.theme().color() : "#FFFFFF")
.title(routine.content())
.iconImageUrl(Objects.nonNull(routine.theme()) ? routine.theme().imageLinks().iconImageUrl() : "")
.routineId(routine.getId())
.name(Objects.nonNull(routine.getTheme()) ? routine.getTheme().getName() : "알 수 없는 테마")
.nameColor(Objects.nonNull(routine.getTheme()) ? routine.getTheme().getColor() : "#FFFFFF")
.title(routine.getContent())
.iconImageUrl(routine.getTheme() != null ? routine.getTheme().getImageLinks().getIconImageUrl() : "")
.build();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import java.util.List;
import java.util.Map;

import com.soptie.server.routine.service.vo.RoutineVO;
import com.soptie.server.routine.entity.Routine;

import jakarta.validation.constraints.NotNull;
import lombok.AccessLevel;
Expand All @@ -14,7 +14,7 @@ public record DailyRoutineListAcquireResponseV2(
List<ThemeResponse> themes
) {

public static DailyRoutineListAcquireResponseV2 from(Map<Long, List<RoutineVO>> routinesMap) {
public static DailyRoutineListAcquireResponseV2 from(Map<Long, List<Routine>> routinesMap) {
return DailyRoutineListAcquireResponseV2.builder()
.themes(routinesMap.keySet().stream().map(key -> ThemeResponse.from(key, routinesMap.get(key))).toList())
.build();
Expand All @@ -26,7 +26,7 @@ private record ThemeResponse(
List<RoutineResponse> routines
) {

private static ThemeResponse from(long themeId, List<RoutineVO> routines) {
private static ThemeResponse from(long themeId, List<Routine> routines) {
return ThemeResponse.builder()
.themeId(themeId)
.routines(routines.stream().map(RoutineResponse::from).toList())
Expand All @@ -40,10 +40,10 @@ private record RoutineResponse(
@NotNull String content
) {

private static RoutineResponse from(RoutineVO routine) {
private static RoutineResponse from(Routine routine) {
return RoutineResponse.builder()
.routineId(routine.routineId())
.content(routine.content())
.routineId(routine.getId())
.content(routine.getContent())
.build();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import java.util.List;
import java.util.Map;

import com.soptie.server.routine.service.vo.RoutineVO;
import com.soptie.server.routine.entity.Routine;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
Expand All @@ -19,7 +19,7 @@ public record DailyRoutinesAcquireResponseV2(
List<DailyRoutineResponse> routines
) {

public static DailyRoutinesAcquireResponseV2 from(Map<Boolean, List<RoutineVO>> routineToMember) {
public static DailyRoutinesAcquireResponseV2 from(Map<Boolean, List<Routine>> routineToMember) {
val routines = new ArrayList<DailyRoutineResponse>();
for (val key : routineToMember.keySet()) {
routines.addAll(routineToMember.get(key).stream()
Expand All @@ -42,10 +42,10 @@ private record DailyRoutineResponse(
boolean existedInMember
) {

private static DailyRoutineResponse of(RoutineVO routine, boolean existedInMember) {
private static DailyRoutineResponse of(Routine routine, boolean existedInMember) {
return DailyRoutineResponse.builder()
.id(routine.routineId())
.content(routine.content())
.id(routine.getId())
.content(routine.getContent())
.existedInMember(existedInMember)
.build();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import com.soptie.server.memberroutine.repository.dto.MemberChallengeResponse;
import com.soptie.server.routine.adapter.ChallengeFinder;
import com.soptie.server.routine.adapter.RoutineFinder;
import com.soptie.server.routine.entity.Routine;
import com.soptie.server.routine.entity.RoutineType;
import com.soptie.server.routine.service.dto.request.HappinessSubRoutineListGetServiceRequest;
import com.soptie.server.routine.service.dto.response.ChallengeRoutineListAcquireServiceResponse;
Expand Down Expand Up @@ -48,7 +49,7 @@ public List<RoutineVO> acquireAllInDailyNotInMemberByThemeId(long memberId, long
return routineFinder.findAllNotInMemberByTypeAndThemeId(memberId, RoutineType.DAILY, themeId);
}

public List<RoutineVO> acquireAllInHappinessByThemeId(Long themeId) {
public List<Routine> acquireAllInHappinessByThemeId(Long themeId) {
return routineFinder.findAllByTypeAndThemeId(RoutineType.CHALLENGE, themeId);
}

Expand All @@ -60,8 +61,8 @@ public HappinessSubRoutineListGetServiceResponse getHappinessSubRoutines(
return HappinessSubRoutineListGetServiceResponse.of(routine, subRoutines);
}

public Map<Long, List<RoutineVO>> acquireAllInDailyWithThemeId(Set<Long> themeIds) {
val themeToRoutine = new LinkedHashMap<Long, List<RoutineVO>>();
public Map<Long, List<Routine>> acquireAllInDailyWithThemeId(Set<Long> themeIds) {
val themeToRoutine = new LinkedHashMap<Long, List<Routine>>();
for (val themeId : themeIds) {
val routines = routineFinder.findAllByTypeAndThemeId(RoutineType.DAILY, themeId);
themeToRoutine.put(themeId, routines);
Expand All @@ -86,7 +87,7 @@ public Map<String, ChallengeRoutineListAcquireServiceResponse> acquireAllInChall
return themeToChallenge;
}

public Map<Boolean, List<RoutineVO>> acquireAllInDailyByThemeAndMember(long memberId, long themeId) {
public Map<Boolean, List<Routine>> acquireAllInDailyByThemeAndMember(long memberId, long themeId) {
val routines = routineFinder.findAllByTypeAndThemeId(RoutineType.DAILY, themeId);
val member = memberFinder.findById(memberId);
val memberRoutineIds = memberRoutineFinder.findAllByMemberAndType(member, RoutineType.DAILY).stream()
Expand All @@ -95,11 +96,13 @@ public Map<Boolean, List<RoutineVO>> acquireAllInDailyByThemeAndMember(long memb
return getRoutineToMember(routines, memberRoutineIds);
}

private Map<Boolean, List<RoutineVO>> getRoutineToMember(List<RoutineVO> routines, List<Long> memberRoutineIds) {
val routineToMember = new HashMap<Boolean, List<RoutineVO>>();
private Map<Boolean, List<Routine>> getRoutineToMember(List<Routine> routines, List<Long> memberRoutineIds) {
val routineToMember = new HashMap<Boolean, List<Routine>>();
routineToMember.put(true, new ArrayList<>());
routineToMember.put(false, new ArrayList<>());
for (val routine : routines) {
val isMemberRoutine = memberRoutineIds.contains(routine.routineId());
routineToMember.computeIfAbsent(isMemberRoutine, k -> new ArrayList<>()).add(routine);
val isMemberRoutine = memberRoutineIds.contains(routine.getId());
routineToMember.get(isMemberRoutine).add(routine);
}
return routineToMember;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@
import com.soptie.server.memberroutine.adapter.MemberRoutineFinder;
import com.soptie.server.memberroutine.entity.MemberRoutine;
import com.soptie.server.routine.adapter.RoutineFinder;
import com.soptie.server.routine.entity.Routine;
import com.soptie.server.routine.entity.RoutineType;
import com.soptie.server.routine.service.vo.RoutineVO;
import com.soptie.server.support.fixture.MemberFixture;
import com.soptie.server.support.fixture.MemberRoutineFixture;
import com.soptie.server.support.fixture.RoutineFixture;
Expand All @@ -46,12 +46,12 @@ void acquireRoutineToMember() {
long themeId = 0L;
long memberId = 0L;
Member member = MemberFixture.member().build();
List<RoutineVO> routines = List.of(
RoutineVO.from(RoutineFixture.routine().id(1L).build()),
RoutineVO.from(RoutineFixture.routine().id(2L).build()),
RoutineVO.from(RoutineFixture.routine().id(3L).build()),
RoutineVO.from(RoutineFixture.routine().id(4L).build()),
RoutineVO.from(RoutineFixture.routine().id(5L).build())
List<Routine> routines = List.of(
RoutineFixture.routine().id(1L).build(),
RoutineFixture.routine().id(2L).build(),
RoutineFixture.routine().id(3L).build(),
RoutineFixture.routine().id(4L).build(),
RoutineFixture.routine().id(5L).build()
);
List<MemberRoutine> memberRoutines = List.of(
MemberRoutineFixture.memberRoutine().routineId(1L).build(),
Expand All @@ -64,7 +64,7 @@ void acquireRoutineToMember() {
doReturn(memberRoutines).when(memberRoutineFinder).findAllByMemberAndType(member, RoutineType.DAILY);

// when
Map<Boolean, List<RoutineVO>> result = routineService.acquireAllInDailyByThemeAndMember(memberId, themeId);
Map<Boolean, List<Routine>> result = routineService.acquireAllInDailyByThemeAndMember(memberId, themeId);

// then
assertThat(result.get(true)).hasSize(3);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -114,15 +114,15 @@ void acquireAllWithThemeIds() {
themeIds.add(theme1.getId());

// when
final Map<Long, List<RoutineVO>> actual = routineService.acquireAllInDailyWithThemeId(themeIds);
final Map<Long, List<Routine>> actual = routineService.acquireAllInDailyWithThemeId(themeIds);

// then
Assertions.assertThat(actual.keySet()).containsExactly(theme2.getId(), theme1.getId());

List<Long> routineIdsForTheme1 = actual.get(theme1.getId()).stream().map(RoutineVO::routineId).toList();
List<Long> routineIdsForTheme1 = actual.get(theme1.getId()).stream().map(Routine::getId).toList();
Assertions.assertThat(routineIdsForTheme1).containsExactlyInAnyOrder(routineOfTheme1.getId());

List<Long> routineIdsForTheme2 = actual.get(theme2.getId()).stream().map(RoutineVO::routineId).toList();
List<Long> routineIdsForTheme2 = actual.get(theme2.getId()).stream().map(Routine::getId).toList();
Assertions.assertThat(routineIdsForTheme2).containsExactlyInAnyOrder(routineOfTheme2.getId());
}

Expand Down Expand Up @@ -178,11 +178,11 @@ void setUp() {
@DisplayName("[성공] 테마에 포함된 행복 루틴 목록을 조회한다.")
void getHappinessRoutinesByTheme() {
// when
final List<RoutineVO> actual = routineService.acquireAllInHappinessByThemeId(theme1.getId());
final List<Routine> actual = routineService.acquireAllInHappinessByThemeId(theme1.getId());

// then
Assertions.assertThat(actual).hasSize(2);
List<Long> routineIds = actual.stream().map(RoutineVO::routineId).toList();
List<Long> routineIds = actual.stream().map(Routine::getId).toList();
Assertions.assertThat(routineIds).containsExactlyInAnyOrder(routine1.getId(), routine2.getId());
}
}
Expand Down

0 comments on commit d4880a9

Please sign in to comment.