Skip to content

Commit 958e939

Browse files
authored
refactor: 지원 상태 조회 API email 기반 로직으로 변경 (#361)
* refactor: checkApplyStatus 파라미터를 memberId에서 email로 변경 및 이메일 유효성 검증 추가 * refactor: checkApplyStatus 파라미터를 memberId에서 email로 변경 * test: checkApplyStatus 테스트를 memberId에서 email 기반으로 수정
1 parent 9a9b1c7 commit 958e939

5 files changed

Lines changed: 25 additions & 21 deletions

File tree

src/main/java/org/ject/support/domain/apply/controller/ApplyApiSpec.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import io.swagger.v3.oas.annotations.Operation;
44
import io.swagger.v3.oas.annotations.tags.Tag;
5+
import jakarta.validation.constraints.Email;
56
import org.ject.support.common.security.AuthPrincipal;
67
import org.ject.support.domain.apply.dto.ApplyProfileRequest;
78
import org.ject.support.domain.apply.dto.ApplyStatusResponse;
@@ -46,7 +47,7 @@ void submitApplication(@AuthPrincipal Long memberId,
4647
- SUBMITTED: 이미 지원서를 제출한 경우
4748
- JOINED: 합격하여 팀에 합류한 경우
4849
""")
49-
ApplyStatusResponse checkApplyStatus(@AuthPrincipal Long memberId);
50+
ApplyStatusResponse checkApplyStatus(@RequestParam @Email String email);
5051

5152
@Operation(
5253
summary = "프로필 작성(저장)",

src/main/java/org/ject/support/domain/apply/controller/ApplyController.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.ject.support.domain.apply.controller;
22

33
import jakarta.validation.Valid;
4+
import jakarta.validation.constraints.Email;
45
import lombok.RequiredArgsConstructor;
56
import org.ject.support.common.security.AuthPrincipal;
67
import org.ject.support.domain.apply.dto.ApplyProfileRequest;
@@ -58,9 +59,9 @@ public void submitApplication(@AuthPrincipal Long memberId,
5859

5960
@Override
6061
@GetMapping("/status")
61-
@PreAuthorize("hasRole('ROLE_APPLY')")
62-
public ApplyStatusResponse checkApplyStatus(@AuthPrincipal Long memberId) {
63-
return applyUsecase.checkApplyStatus(memberId);
62+
@PreAuthorize("permitAll()")
63+
public ApplyStatusResponse checkApplyStatus(@RequestParam @Email String email) {
64+
return applyUsecase.checkApplyStatus(email);
6465
}
6566

6667
@Override

src/main/java/org/ject/support/domain/apply/service/ApplyService.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -170,8 +170,8 @@ public void submitApplication(Long memberId,
170170

171171
@Override
172172
@PeriodAccessible(permitAllJob = true)
173-
public ApplyStatusResponse checkApplyStatus(Long memberId) {
174-
Member member = memberRepository.findById(memberId)
173+
public ApplyStatusResponse checkApplyStatus(String email) {
174+
Member member = memberRepository.findByEmail(email)
175175
.orElseThrow(() -> new MemberException(MemberErrorCode.NOT_FOUND_MEMBER));
176176

177177
if (!member.isProfileComplete()) {
@@ -180,7 +180,7 @@ public ApplyStatusResponse checkApplyStatus(Long memberId) {
180180
// 3. 지원 내역 조회
181181
// - 없으면: 임시 저장 지원 상태 반환
182182
// - 있으면: 상태 값에 따라 분기
183-
Optional<Apply> optionalApply = applyRepository.findByMemberId(memberId);
183+
Optional<Apply> optionalApply = applyRepository.findByMemberId(member.getId());
184184

185185
if (optionalApply.isEmpty()) {
186186
return ApplyStatusResponse.tempSavedApply();

src/main/java/org/ject/support/domain/apply/service/ApplyUsecase.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ void submitApplication(Long memberId,
2424
Map<String, String> answers,
2525
List<ApplyPortfolioDto> portfolios);
2626

27-
ApplyStatusResponse checkApplyStatus(Long memberId);
27+
ApplyStatusResponse checkApplyStatus(String email);
2828

2929
void saveProfile(Long memberId, ApplyProfileRequest request);
3030
}

src/test/java/org/ject/support/domain/apply/service/ApplyServiceTest.java

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -194,14 +194,14 @@ class ApplyServiceTest extends UnitTestSupport {
194194
@Test
195195
void 지원단계중_프로필작성을_하지_않았을_경우_STEP을_PROFILE로_STATUS를_TEMP_SAVED_반환() {
196196
// given
197-
Long memberId = 1L;
197+
String email = "test@example.com";
198198
Member member = Member.builder()
199199
.build();
200-
given(memberRepository.findById(memberId))
200+
given(memberRepository.findByEmail(email))
201201
.willReturn(Optional.of(member));
202202

203203
// when
204-
ApplyStatusResponse result = applyService.checkApplyStatus(1L);
204+
ApplyStatusResponse result = applyService.checkApplyStatus(email);
205205

206206
// then
207207
assertThat(result).isEqualTo(ApplyStatusResponse.tempSavedProfile());
@@ -210,23 +210,24 @@ class ApplyServiceTest extends UnitTestSupport {
210210
@Test
211211
void 작성_중인_지원서가_있는_경우_TEMP_SAVED_반환() {
212212
// given
213-
Long memberId = 1L;
213+
String email = "test@example.com";
214214
Member member = Member.builder()
215+
.id(1L)
215216
.name("지원자명")
216217
.phoneNumber("01012345678")
217218
.build();
218-
given(memberRepository.findById(memberId))
219+
given(memberRepository.findByEmail(email))
219220
.willReturn(Optional.of(member));
220-
given(applyRepository.findByMemberId(any()))
221+
given(applyRepository.findByMemberId(member.getId()))
221222
.willReturn(Optional.of(
222223
Apply.builder()
223-
.id(memberId)
224+
.id(1L)
224225
.status(TEMP_SAVED)
225226
.build()
226227
));
227228

228229
// when
229-
ApplyStatusResponse result = applyService.checkApplyStatus(1L);
230+
ApplyStatusResponse result = applyService.checkApplyStatus(email);
230231

231232
// then
232233
assertThat(result).isEqualTo(ApplyStatusResponse.tempSavedApply());
@@ -235,23 +236,24 @@ class ApplyServiceTest extends UnitTestSupport {
235236
@Test
236237
void 지원서를_제출한_지원자에_대한_제출_상태_확인_시_SUBMITTED_반환() {
237238
// given
238-
Long memberId = 1L;
239+
String email = "test@example.com";
239240
Member member = Member.builder()
241+
.id(1L)
240242
.name("지원자명")
241243
.phoneNumber("01012345678")
242244
.build();
243-
given(memberRepository.findById(memberId))
245+
given(memberRepository.findByEmail(email))
244246
.willReturn(Optional.of(member));
245-
given(applyRepository.findByMemberId(any()))
247+
given(applyRepository.findByMemberId(member.getId()))
246248
.willReturn(Optional.of(
247249
Apply.builder()
248-
.id(memberId)
250+
.id(1L)
249251
.status(SUBMITTED)
250252
.build()
251253
));
252254

253255
// when
254-
ApplyStatusResponse result = applyService.checkApplyStatus(memberId);
256+
ApplyStatusResponse result = applyService.checkApplyStatus(email);
255257

256258
// then
257259
assertThat(result).isEqualTo(ApplyStatusResponse.of(SUBMITTED));

0 commit comments

Comments
 (0)