Skip to content

Commit 687f085

Browse files
Merge pull request #89 from prgrms-web-devcourse-final-project/feat/userStatus/2
[fix] LoginId 로 Status 확인하도록 코드 변경
2 parents 5bbcae8 + 5d9ab75 commit 687f085

File tree

2 files changed

+19
-5
lines changed

2 files changed

+19
-5
lines changed

src/main/java/org/dfbf/soundlink/domain/user/controller/UserStatusController.java

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44
import lombok.RequiredArgsConstructor;
55
import org.dfbf.soundlink.domain.user.dto.response.UserStatusDto;
66
import org.dfbf.soundlink.domain.user.dto.response.UserStatusResponseDto;
7+
import org.dfbf.soundlink.domain.user.entity.User;
8+
import org.dfbf.soundlink.domain.user.exception.NoUserDataException;
9+
import org.dfbf.soundlink.domain.user.repository.UserRepository;
710
import org.dfbf.soundlink.domain.user.service.UserStatusService;
811
import org.dfbf.soundlink.domain.user.service.UserStatusSseService;
912
import org.dfbf.soundlink.global.exception.ErrorCode;
@@ -18,22 +21,33 @@
1821
public class UserStatusController {
1922
private final UserStatusService userStatusService;
2023
private final UserStatusSseService userStatusSseService;
24+
private final UserRepository userRepository;
2125

2226
@GetMapping("/subscribe")
23-
public SseEmitter subscribe(@RequestParam Long userId) {
27+
public SseEmitter subscribe(@RequestParam String loginId) {
28+
29+
User user = userRepository.findByLoginId(loginId)
30+
.orElseThrow(NoUserDataException::new);
31+
Long userId = user.getUserId();
32+
2433
return userStatusSseService.subscribe(userId);
2534
}
2635

27-
@GetMapping("/{userId}")
28-
public ResponseResult getUserStatus(@PathVariable Long userId) {
36+
@GetMapping("/{loginId}")
37+
public ResponseResult getUserStatus(@PathVariable String loginId) {
38+
39+
User user = userRepository.findByLoginId(loginId)
40+
.orElseThrow(NoUserDataException::new);
41+
Long userId = user.getUserId();
42+
2943
UserStatusDto status = userStatusService.getUserStatus(userId);
3044

3145
boolean isOnline = status.isOnline();
3246
boolean isChatting = status.isChatting();
3347
long minutesAgo = userStatusService.getMinutesSinceLastActive(userId);
3448

3549
UserStatusResponseDto dto = new UserStatusResponseDto(
36-
userId,
50+
loginId,
3751
isOnline ? "ONLINE" : "OFFLINE",
3852
isChatting ? "CHATTING" : "NOT_CHATTING",
3953
isOnline

src/main/java/org/dfbf/soundlink/domain/user/dto/response/UserStatusResponseDto.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package org.dfbf.soundlink.domain.user.dto.response;
22

33
public record UserStatusResponseDto(
4-
Long userId,
4+
String loginId,
55
String onlineStatus,
66
String chatStatus,
77
String lastActiveStr

0 commit comments

Comments
 (0)