마이페이지 메인 - 마이페이지 조회 API 추가

This commit is contained in:
Klaus 2023-07-28 14:38:53 +09:00
parent 6174ec3523
commit ab116bb45b
3 changed files with 48 additions and 1 deletions

View File

@ -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))
}
}

View File

@ -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,

View File

@ -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
)