Skip to content

Commit 7689b6c

Browse files
committed
feat(user): 유저 기본 정보 입력 상태 확인 API 추가
- `/check/basic-info` 엔드포인트 추가 - UUID 기반으로 유저의 필수 입력 정보 완료 여부 확인
1 parent 0a224d7 commit 7689b6c

File tree

2 files changed

+17
-15
lines changed

2 files changed

+17
-15
lines changed

src/main/java/com/somemore/user/controller/UserQueryController.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package com.somemore.user.controller;
22

3+
import com.somemore.global.auth.annotation.UserId;
34
import com.somemore.global.common.response.ApiResponse;
45
import com.somemore.user.usecase.UserQueryUseCase;
6+
import com.somemore.user.usecase.ValidateBasicInfoUseCase;
57
import io.swagger.v3.oas.annotations.Operation;
68
import io.swagger.v3.oas.annotations.tags.Tag;
79
import lombok.RequiredArgsConstructor;
@@ -11,6 +13,8 @@
1113
import org.springframework.web.bind.annotation.RequestParam;
1214
import org.springframework.web.bind.annotation.RestController;
1315

16+
import java.util.UUID;
17+
1418
@Tag(name = "User Query API", description = "유저 조회 관련 API")
1519
@RestController
1620
@Slf4j
@@ -19,13 +23,24 @@
1923
public class UserQueryController {
2024

2125
private final UserQueryUseCase userQueryUseCase;
26+
private final ValidateBasicInfoUseCase validateBasicInfoUseCase;
2227

23-
@GetMapping("/exists/")
28+
@GetMapping("/exists")
2429
@Operation(summary = "아이디 중복 확인", description = "입력한 아이디가 중복되었는지 확인합니다.")
2530
public ApiResponse<Boolean> checkUserExists(
2631
@RequestParam String accountId
2732
) {
2833
boolean isAccountIdDuplicate = userQueryUseCase.isDuplicateAccountId(accountId);
2934
return ApiResponse.ok(isAccountIdDuplicate, "중복 조회 완료");
3035
}
36+
37+
@GetMapping("/check/basic-info")
38+
@Operation(summary = "유저 기본 정보 입력 상태 확인", description = "현재 유저의 필수 입력 정보가 모두 완료되었는지 확인합니다."
39+
)
40+
public ApiResponse<Boolean> checkUserExists(
41+
@UserId UUID userId
42+
) {
43+
boolean isBasicInfoComplete = validateBasicInfoUseCase.isBasicInfoComplete(userId);
44+
return ApiResponse.ok(isBasicInfoComplete, "필수 입력 정보 설정 조회 완료");
45+
}
3146
}
Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.somemore.user.service;
22

3-
import com.somemore.user.domain.UserCommonAttribute;
43
import com.somemore.user.usecase.UserQueryUseCase;
54
import com.somemore.user.usecase.ValidateBasicInfoUseCase;
65
import lombok.RequiredArgsConstructor;
@@ -20,18 +19,6 @@ public class ValidateBasicInfoService implements ValidateBasicInfoUseCase {
2019

2120
@Override
2221
public boolean isBasicInfoComplete(UUID userId) {
23-
// 객체지향적: UserCommonAttribute 객체를 활용하여 데이터를 관리
24-
// 최신 데이터와는 조금 멀어질 수 있음
25-
UserCommonAttribute userCommonAttribute = userQueryUseCase.getCommonAttributeByUserId(userId);
26-
boolean isCustomized1 = userCommonAttribute.isCustomized();
27-
28-
// 비용 절감: 특정 필드만 조회하여 데이터베이스 접근을 최소화
29-
// 최신 데이터에 더 가까움
30-
boolean isCustomized2 = userQueryUseCase.getIsCustomizedByUserId(userId);
31-
32-
// TODO:
33-
// - 두 접근 방식 중 하나를 선택.
34-
35-
return isCustomized1 && isCustomized2;
22+
return userQueryUseCase.getIsCustomizedByUserId(userId);
3623
}
3724
}

0 commit comments

Comments
 (0)