SWM-99-degree / jariBean

SWM 14th JariBean Project
0 stars 1 forks source link

[REFACT] post FCM token 로직 변경 #159

Open psy-choi opened 1 year ago

psy-choi commented 1 year ago

✏️ Description

User와 Cafe의 경우 내부적으로 처리하는 로직이 다르다. 다만 /api/fcm/token 에 해당하는 API 로직의 경우 카페와 유저 모두 사용하기 때문에 두 사용처를 구분해주어야 한다.

🛠 Features

psy-choi commented 1 year ago

완료

public ResponseEntity storingFCMTokenInRedis(@AuthenticationPrincipal UserDetails loginUser,
                                                 @RequestBody FCMTokenReqDto fcmTokenReqDto, HttpServletRequest httpServletRequest) {
        String role = JWT.decode(httpServletRequest.getHeader("ACCESS_AUTHORIZATION")).getClaim("userRole").toString();
        if (role.equals("\"MANAGER\"")) {
            LoginCafe cafe = (LoginCafe) loginUser;
            fcmService.updateFirebaseToken(cafe.getCafeManager().getId(), fcmTokenReqDto);
        } else {
            LoginUser user = (LoginUser) loginUser;
            fcmService.updateFirebaseToken(user.getUser().getId(), fcmTokenReqDto);
        }
        return new ResponseEntity<>(new ResponseDto<>(1, "FCM 토큰 정보 갱신에 성공하였습니다.", null), CREATED);
    }
  1. 인터페이스 형태로 AuthenticationPrincipal를 구현한다.
  2. Header에서 가져온 토큰으로 userRole을 알아낸다.
  3. userRole에 따라서 다른 로직으로 실행한다.