Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BE] RoomSortStrategy 정렬 반환 방식 변경(#787) #790

Merged
merged 1 commit into from
Nov 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions backend/src/main/java/corea/room/domain/RoomSortStrategy.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,13 @@ public enum RoomSortStrategy {
private final String property;
private final Sort.Direction direction;

public static RoomSortStrategy from(RoomStatus status) {
if (status.isClosed()) {
return RoomSortStrategy.REVIEW_DEADLINE_DESC;
}
return RoomSortStrategy.RECRUITMENT_DEADLINE_DESC;
}

public Sort toSort() {
return Sort.by(direction, property);
}
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,10 @@ public class RoomInquiryService {
private final RoomRepository roomRepository;
private final ParticipationRepository participationRepository;
private final RoomMatchReader roomMatchReader;
private final RoomSortStrategyFactory roomSortStrategyFactory;

public RoomSearchResponses search(long memberId, RoomStatus status, RoomClassification classification, String keywordTitle) {
Specification<Room> spec = getSearchSpecification(status, classification, keywordTitle);
RoomSortStrategy roomSortStrategy = roomSortStrategyFactory.getRoomSortStrategy(status);
RoomSortStrategy roomSortStrategy = RoomSortStrategy.from(status);
List<Room> rooms = roomReader.findAll(spec, roomSortStrategy);

List<RoomResponse> roomResponses = getRoomResponses(rooms, memberId);
Expand All @@ -60,7 +59,7 @@ public RoomResponses findRoomsWithRoomStatus(long memberId, int pageNumber, Stri

private Page<Room> getPaginatedRooms(int pageNumber, String expression, RoomStatus status) {
RoomClassification classification = RoomClassification.from(expression);
RoomSortStrategy roomSortStrategy = roomSortStrategyFactory.getRoomSortStrategy(status);
RoomSortStrategy roomSortStrategy = RoomSortStrategy.from(status);
PageRequest pageRequest = PageRequest.of(pageNumber, PAGE_DISPLAY_SIZE, roomSortStrategy.toSort());

if (classification.isAll()) {
Expand All @@ -78,7 +77,7 @@ private List<RoomResponse> getRoomResponses(List<Room> rooms, long memberId) {
private RoomResponse getRoomResponse(Room room, long memberId) {
boolean isPublic = roomMatchReader.isPublicRoom(room);
return participationRepository.findByRoomIdAndMemberId(room.getId(), memberId)
.map(participation -> RoomResponse.of(room, participation,isPublic))
.orElseGet(() -> RoomResponse.of(room, MemberRole.NONE, ParticipationStatus.NOT_PARTICIPATED,isPublic));
.map(participation -> RoomResponse.of(room, participation, isPublic))
.orElseGet(() -> RoomResponse.of(room, MemberRole.NONE, ParticipationStatus.NOT_PARTICIPATED, isPublic));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,13 @@

import static org.assertj.core.api.Assertions.assertThat;

class RoomSortStrategyFactoryTest {
class RoomSortStrategyTest {

@ParameterizedTest
@CsvSource(value = {"OPEN, RECRUITMENT_DEADLINE_DESC", "CLOSE, REVIEW_DEADLINE_DESC"})
@DisplayName("방 상태에 따라 방 정렬 방식을 얻을 수 있다.")
void getRoomSortStrategy(RoomStatus status, RoomSortStrategy expected) {
RoomSortStrategyFactory roomSortStrategyFactory = new RoomSortStrategyFactory();

RoomSortStrategy actual = roomSortStrategyFactory.getRoomSortStrategy(status);
void from(RoomStatus status, RoomSortStrategy expected) {
RoomSortStrategy actual = RoomSortStrategy.from(status);

assertThat(actual).isEqualTo(expected);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,11 @@ class AutomaticMatchingSchedulerTest {
@Autowired
private AutomaticMatchingExecutor automaticMatchingExecutor;

private Map<Long, ScheduledFuture<?>> scheduledTasks;
@Autowired
private AutomaticMatchingScheduler automaticMatchingScheduler;

private Map<Long, ScheduledFuture<?>> scheduledTasks;

@BeforeEach
void setup() {
this.scheduledTasks = new HashMap<>();
Expand Down