diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberController.kt b/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberController.kt index 425add6..30cfcb9 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberController.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberController.kt @@ -62,4 +62,14 @@ class MemberController(private val service: MemberService) { ) ) } + + @GetMapping("/mypage") + fun getMyPage( + @RequestParam container: String, + @AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member? + ) = run { + if (member == null) throw SodaException("로그인 정보를 확인해주세요.") + + ApiResponse.ok(service.getMyPage(member, container)) + } } diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberService.kt index 59e3eb0..d6e32a9 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberService.kt @@ -9,6 +9,7 @@ import kr.co.vividnext.sodalive.jwt.TokenProvider import kr.co.vividnext.sodalive.member.info.GetMemberInfoResponse import kr.co.vividnext.sodalive.member.login.LoginRequest import kr.co.vividnext.sodalive.member.login.LoginResponse +import kr.co.vividnext.sodalive.member.myPage.MyPageResponse import kr.co.vividnext.sodalive.member.notification.MemberNotificationService import kr.co.vividnext.sodalive.member.notification.UpdateNotificationSettingRequest import kr.co.vividnext.sodalive.member.signUp.SignUpRequest @@ -50,7 +51,10 @@ class MemberService( private val objectMapper: ObjectMapper, @Value("\${cloud.aws.s3.bucket}") - private val s3Bucket: String + private val s3Bucket: String, + + @Value("\${cloud.aws.cloud-front.host}") + private val cloudFrontHost: String ) : UserDetailsService { @Transactional fun signUp( @@ -121,6 +125,25 @@ class MemberService( member.container = container } + fun getMyPage(member: Member, container: String): MyPageResponse { + return MyPageResponse( + nickname = member.nickname, + profileUrl = if (member.profileImage != null) { + "$cloudFrontHost/${member.profileImage}" + } else { + "$cloudFrontHost/profile/default-profile.png" + }, + chargeCan = member.getChargeCan(container = container), + rewardCan = member.getRewardCan(container = container), + youtubeUrl = member.youtubeUrl, + instagramUrl = member.instagramUrl, + websiteUrl = member.websiteUrl, + blogUrl = member.blogUrl, + liveReservationCount = 0, + isAuth = false + ) + } + private fun login( email: String, password: String, diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/member/myPage/MyPageResponse.kt b/src/main/kotlin/kr/co/vividnext/sodalive/member/myPage/MyPageResponse.kt new file mode 100644 index 0000000..d357f34 --- /dev/null +++ b/src/main/kotlin/kr/co/vividnext/sodalive/member/myPage/MyPageResponse.kt @@ -0,0 +1,14 @@ +package kr.co.vividnext.sodalive.member.myPage + +data class MyPageResponse( + val nickname: String, + val profileUrl: String, + val chargeCan: Int, + val rewardCan: Int, + val youtubeUrl: String?, + val instagramUrl: String?, + val websiteUrl: String? = null, + val blogUrl: String? = null, + val liveReservationCount: Int, + val isAuth: Boolean +)