-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
* feat: Room Entity가 필요한 정보 추가 * feat: 초기 데이터 구현 * feat: 사이트에 접속한 유저를 파악하기 위한 ArgumentResolver 구현 * feat: 모집중인 방 리스트를 조회하는 기능 구현 * refactor: 페이지 사이즈 수정 * test: 테스트 필드에 private 접근 제어자 추가
- Loading branch information
1 parent
ebfd426
commit 4040333
Showing
18 changed files
with
470 additions
and
63 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,125 @@ | ||
package corea; | ||
|
||
import corea.matching.domain.Participation; | ||
import corea.matching.repository.ParticipationRepository; | ||
import corea.member.domain.Member; | ||
import corea.member.repository.MemberRepository; | ||
import corea.room.domain.Classification; | ||
import corea.room.domain.Room; | ||
import corea.room.domain.RoomStatus; | ||
import corea.room.repository.RoomRepository; | ||
import lombok.RequiredArgsConstructor; | ||
import org.springframework.boot.ApplicationArguments; | ||
import org.springframework.boot.ApplicationRunner; | ||
import org.springframework.context.annotation.Profile; | ||
import org.springframework.stereotype.Component; | ||
import org.springframework.transaction.annotation.Transactional; | ||
|
||
import java.time.LocalDateTime; | ||
|
||
@Profile("test") | ||
@Component | ||
@Transactional | ||
@RequiredArgsConstructor | ||
public class DataInitializer implements ApplicationRunner { | ||
|
||
private final MemberRepository memberRepository; | ||
private final RoomRepository roomRepository; | ||
private final ParticipationRepository participationRepository; | ||
|
||
@Override | ||
public void run(ApplicationArguments args) { | ||
Member member1 = memberRepository.save( | ||
new Member("jcoding-play", null, "조경찬", | ||
"[email protected]", true, 5f)); | ||
Member member2 = memberRepository.save( | ||
new Member("ashsty", null, "박민아", | ||
null, false, 1.5f)); | ||
Member member3 = memberRepository.save( | ||
new Member("youngsu5582", null, "이영수", | ||
null, false, 4f)); | ||
Member member4 = memberRepository.save( | ||
new Member("hjk0761", null, "김현중", | ||
null, true, 3f)); | ||
Member member5 = memberRepository.save( | ||
new Member("chlwlstlf", null, "최진실", | ||
null, true, 2f)); | ||
Member member6 = memberRepository.save( | ||
new Member("00kang", null, "강다빈", | ||
null, true, 1f)); | ||
Member member7 = memberRepository.save( | ||
new Member("pp449", null, "이상엽", | ||
"[email protected]", true, 4.8f)); | ||
|
||
Room room1 = roomRepository.save( | ||
new Room("방 제목 1", "방 설명 1", 3, | ||
null, null, "TDD", | ||
1, 20, member1, | ||
LocalDateTime.of(2024, 12, 25, 12, 0), | ||
LocalDateTime.of(2024, 12, 30, 12, 0), | ||
Classification.BACKEND, RoomStatus.OPENED)); | ||
Room room2 = roomRepository.save( | ||
new Room("방 제목 2", "방 설명 2", 3, | ||
null, null, "TDD", | ||
1, 20, member2, | ||
LocalDateTime.of(2024, 12, 25, 12, 0), | ||
LocalDateTime.of(2024, 12, 30, 12, 0), | ||
Classification.BACKEND, RoomStatus.OPENED)); | ||
Room room3 = roomRepository.save( | ||
new Room("방 제목 3", "방 설명 3", 3, | ||
null, null, "TDD", | ||
1, 20, member3, | ||
LocalDateTime.of(2024, 12, 25, 12, 0), | ||
LocalDateTime.of(2024, 12, 30, 12, 0), | ||
Classification.ANDROID, RoomStatus.OPENED)); | ||
Room room4 = roomRepository.save( | ||
new Room("방 제목 4", "방 설명 4", 3, | ||
null, null, "TDD", | ||
1, 20, member4, | ||
LocalDateTime.of(2024, 12, 25, 12, 0), | ||
LocalDateTime.of(2024, 12, 30, 12, 0), | ||
Classification.ANDROID, RoomStatus.OPENED)); | ||
Room room5 = roomRepository.save( | ||
new Room("방 제목 5", "방 설명 5", 3, | ||
null, null, "TDD", | ||
1, 20, member5, | ||
LocalDateTime.of(2024, 12, 25, 12, 0), | ||
LocalDateTime.of(2024, 12, 30, 12, 0), | ||
Classification.FRONTEND, RoomStatus.OPENED)); | ||
Room room6 = roomRepository.save( | ||
new Room("방 제목 6", "방 설명 6", 3, | ||
null, null, "TDD", | ||
1, 20, member6, | ||
LocalDateTime.of(2024, 12, 25, 12, 0), | ||
LocalDateTime.of(2024, 12, 30, 12, 0), | ||
Classification.FRONTEND, RoomStatus.OPENED)); | ||
Room room7 = roomRepository.save( | ||
new Room("방 제목 7", "방 설명 7", 3, | ||
null, null, "TDD", | ||
1, 20, member7, | ||
LocalDateTime.of(2024, 12, 25, 12, 0), | ||
LocalDateTime.of(2024, 12, 30, 12, 0), | ||
Classification.FRONTEND, RoomStatus.OPENED)); | ||
|
||
participationRepository.save(new Participation(room1.getId(), member2.getId())); | ||
participationRepository.save(new Participation(room1.getId(), member3.getId())); | ||
|
||
participationRepository.save(new Participation(room2.getId(), member3.getId())); | ||
participationRepository.save(new Participation(room2.getId(), member4.getId())); | ||
|
||
participationRepository.save(new Participation(room3.getId(), member4.getId())); | ||
participationRepository.save(new Participation(room3.getId(), member5.getId())); | ||
|
||
participationRepository.save(new Participation(room4.getId(), member5.getId())); | ||
participationRepository.save(new Participation(room4.getId(), member6.getId())); | ||
|
||
participationRepository.save(new Participation(room5.getId(), member6.getId())); | ||
participationRepository.save(new Participation(room5.getId(), member7.getId())); | ||
|
||
participationRepository.save(new Participation(room6.getId(), member1.getId())); | ||
participationRepository.save(new Participation(room6.getId(), member7.getId())); | ||
|
||
participationRepository.save(new Participation(room7.getId(), member1.getId())); | ||
participationRepository.save(new Participation(room7.getId(), member2.getId())); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
14 changes: 14 additions & 0 deletions
14
backend/src/main/java/corea/auth/annotation/AccessedMember.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
package corea.auth.annotation; | ||
|
||
import io.swagger.v3.oas.annotations.Hidden; | ||
|
||
import java.lang.annotation.ElementType; | ||
import java.lang.annotation.Retention; | ||
import java.lang.annotation.RetentionPolicy; | ||
import java.lang.annotation.Target; | ||
|
||
@Target(ElementType.PARAMETER) | ||
@Retention(RetentionPolicy.RUNTIME) | ||
@Hidden() | ||
public @interface AccessedMember { | ||
} |
36 changes: 36 additions & 0 deletions
36
backend/src/main/java/corea/auth/resolver/AccessedMemberArgumentResolver.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
package corea.auth.resolver; | ||
|
||
import corea.auth.RequestHandler; | ||
import corea.auth.annotation.AccessedMember; | ||
import corea.member.domain.Member; | ||
import corea.member.repository.MemberRepository; | ||
import jakarta.servlet.http.HttpServletRequest; | ||
import lombok.RequiredArgsConstructor; | ||
import org.springframework.core.MethodParameter; | ||
import org.springframework.stereotype.Component; | ||
import org.springframework.web.bind.support.WebDataBinderFactory; | ||
import org.springframework.web.context.request.NativeWebRequest; | ||
import org.springframework.web.method.support.HandlerMethodArgumentResolver; | ||
import org.springframework.web.method.support.ModelAndViewContainer; | ||
|
||
@Component | ||
@RequiredArgsConstructor | ||
public class AccessedMemberArgumentResolver implements HandlerMethodArgumentResolver { | ||
|
||
private final RequestHandler requestHandler; | ||
private final MemberRepository memberRepository; | ||
|
||
@Override | ||
public boolean supportsParameter(MethodParameter parameter) { | ||
return parameter.hasParameterAnnotation(AccessedMember.class); | ||
} | ||
|
||
@Override | ||
public Member resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, | ||
NativeWebRequest webRequest, WebDataBinderFactory binderFactory) { | ||
HttpServletRequest request = (HttpServletRequest) webRequest.getNativeRequest(); | ||
|
||
return memberRepository.findByEmail(requestHandler.extract(request)) | ||
.orElse(null); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
38 changes: 38 additions & 0 deletions
38
backend/src/main/java/corea/room/domain/Classification.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
package corea.room.domain; | ||
|
||
import corea.exception.CoreaException; | ||
import corea.exception.ExceptionType; | ||
|
||
import java.util.Arrays; | ||
import java.util.Map; | ||
import java.util.function.Function; | ||
|
||
import static java.util.stream.Collectors.toMap; | ||
|
||
public enum Classification { | ||
|
||
ALL("all"), | ||
ANDROID("an"), | ||
BACKEND("be"), | ||
FRONTEND("fe"); | ||
|
||
private static final Map<String, Classification> CACHED_CLASSIFICATIONS = Arrays.stream(values()) | ||
.collect(toMap(classification -> classification.expression, Function.identity())); | ||
|
||
private final String expression; | ||
|
||
Classification(String expression) { | ||
this.expression = expression; | ||
} | ||
|
||
public static Classification from(String expression) { | ||
if (CACHED_CLASSIFICATIONS.containsKey(expression)) { | ||
return CACHED_CLASSIFICATIONS.get(expression); | ||
} | ||
throw new CoreaException(ExceptionType.NOT_FOUND_ERROR); | ||
} | ||
|
||
public boolean isAll() { | ||
return this == ALL; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
package corea.room.domain; | ||
|
||
public enum RoomStatus { | ||
|
||
OPENED, CLOSED | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.