diff --git a/api/src/main/java/com/pinback/api/user/controller/UserControllerV3.java b/api/src/main/java/com/pinback/api/user/controller/UserControllerV3.java index a8692fd..b38f4c1 100644 --- a/api/src/main/java/com/pinback/api/user/controller/UserControllerV3.java +++ b/api/src/main/java/com/pinback/api/user/controller/UserControllerV3.java @@ -9,6 +9,7 @@ import com.pinback.api.user.dto.request.UpdateUserJobRequest; import com.pinback.application.user.dto.response.UserHasJobInfoResponse; import com.pinback.application.user.dto.response.UserJobInfoResponse; +import com.pinback.application.user.dto.response.UserPropertyResponse; import com.pinback.application.user.port.in.UserManagementPort; import com.pinback.domain.user.entity.User; import com.pinback.shared.annotation.CurrentUser; @@ -42,4 +43,12 @@ public ResponseDto getUserJob( UserHasJobInfoResponse response = userManagementPort.getUserJobInfo(user); return ResponseDto.ok(response); } + + @GetMapping("/properties") + public ResponseDto getUserProperty( + @Parameter(hidden = true) @CurrentUser User user + ) { + UserPropertyResponse response = userManagementPort.getUserProperty(user); + return ResponseDto.ok(response); + } } diff --git a/application/src/main/java/com/pinback/application/auth/usecase/AuthUsecase.java b/application/src/main/java/com/pinback/application/auth/usecase/AuthUsecase.java index bd7a778..6724a14 100644 --- a/application/src/main/java/com/pinback/application/auth/usecase/AuthUsecase.java +++ b/application/src/main/java/com/pinback/application/auth/usecase/AuthUsecase.java @@ -167,8 +167,10 @@ public Mono getInfoAndTokenV3(String email, String pictur saveRefreshTokenToRedis(updatedUser.getId(), refreshToken); + String jobRole = updatedUser.hasJob() ? updatedUser.getJob().getValue() : null; + return Mono.just(GoogleLoginResponseV3.loggedIn( - updatedUser.hasJob(), updatedUser.getId(), updatedUser.getEmail(), accessToken, + updatedUser.hasJob(), jobRole, updatedUser.getId(), updatedUser.getEmail(), accessToken, refreshToken )); } else { diff --git a/application/src/main/java/com/pinback/application/google/dto/response/GoogleLoginResponseV3.java b/application/src/main/java/com/pinback/application/google/dto/response/GoogleLoginResponseV3.java index 59780c9..c556a4e 100644 --- a/application/src/main/java/com/pinback/application/google/dto/response/GoogleLoginResponseV3.java +++ b/application/src/main/java/com/pinback/application/google/dto/response/GoogleLoginResponseV3.java @@ -5,17 +5,19 @@ public record GoogleLoginResponseV3( boolean isUser, boolean hasJob, + String jobRole, UUID userId, String email, String accessToken, String refreshToken ) { - public static GoogleLoginResponseV3 loggedIn(boolean hasJob, UUID userId, String email, String accessToken, + public static GoogleLoginResponseV3 loggedIn(boolean hasJob, String jobRole, UUID userId, String email, + String accessToken, String refreshToken) { - return new GoogleLoginResponseV3(true, hasJob, userId, email, accessToken, refreshToken); + return new GoogleLoginResponseV3(true, hasJob, jobRole, userId, email, accessToken, refreshToken); } public static GoogleLoginResponseV3 tempLogin(UUID userId, String email) { - return new GoogleLoginResponseV3(false, false, userId, email, null, null); + return new GoogleLoginResponseV3(false, false, null, userId, email, null, null); } } diff --git a/application/src/main/java/com/pinback/application/user/dto/response/UserPropertyResponse.java b/application/src/main/java/com/pinback/application/user/dto/response/UserPropertyResponse.java new file mode 100644 index 0000000..2dc5051 --- /dev/null +++ b/application/src/main/java/com/pinback/application/user/dto/response/UserPropertyResponse.java @@ -0,0 +1,12 @@ +package com.pinback.application.user.dto.response; + +import java.util.UUID; + +public record UserPropertyResponse( + UUID userId, + String jobRole +) { + public static UserPropertyResponse of(UUID id, String jobRole) { + return new UserPropertyResponse(id, jobRole); + } +} diff --git a/application/src/main/java/com/pinback/application/user/port/in/UserManagementPort.java b/application/src/main/java/com/pinback/application/user/port/in/UserManagementPort.java index 73f3ab2..3d4c16f 100644 --- a/application/src/main/java/com/pinback/application/user/port/in/UserManagementPort.java +++ b/application/src/main/java/com/pinback/application/user/port/in/UserManagementPort.java @@ -8,6 +8,7 @@ import com.pinback.application.user.dto.response.UserInfoResponse; import com.pinback.application.user.dto.response.UserJobInfoResponse; import com.pinback.application.user.dto.response.UserProfileInfoResponse; +import com.pinback.application.user.dto.response.UserPropertyResponse; import com.pinback.application.user.dto.response.UserRemindInfoResponse; import com.pinback.domain.user.entity.User; @@ -24,4 +25,6 @@ public interface UserManagementPort { UserJobInfoResponse updateUserJobInfo(User user, UpdateUserJobCommand command); UserHasJobInfoResponse getUserJobInfo(User user); + + UserPropertyResponse getUserProperty(User user); } diff --git a/application/src/main/java/com/pinback/application/user/usecase/UserManagementUsecase.java b/application/src/main/java/com/pinback/application/user/usecase/UserManagementUsecase.java index f83011a..c30b9c2 100644 --- a/application/src/main/java/com/pinback/application/user/usecase/UserManagementUsecase.java +++ b/application/src/main/java/com/pinback/application/user/usecase/UserManagementUsecase.java @@ -16,6 +16,7 @@ import com.pinback.application.user.dto.response.UserInfoResponse; import com.pinback.application.user.dto.response.UserJobInfoResponse; import com.pinback.application.user.dto.response.UserProfileInfoResponse; +import com.pinback.application.user.dto.response.UserPropertyResponse; import com.pinback.application.user.dto.response.UserRemindInfoResponse; import com.pinback.application.user.port.in.UserManagementPort; import com.pinback.application.user.port.out.AcornServicePort; @@ -96,6 +97,14 @@ public UserHasJobInfoResponse getUserJobInfo(User user) { } + @Override + @Transactional(readOnly = true) + public UserPropertyResponse getUserProperty(User user) { + User getUser = userGetServicePort.findById(user.getId()); + + return UserPropertyResponse.of(getUser.getId(), getUser.getJob().getValue()); + } + private LocalDateTime getRemindDateTime(LocalDateTime now, LocalTime remindDefault) { LocalDateTime remindDate = now.plusDays(1L);