generated from pricelees/issue-pr-template
refactor: 회원 API 로깅 추가
This commit is contained in:
parent
ce4520fdd9
commit
e6c08100ee
@ -1,5 +1,6 @@
|
|||||||
package roomescape.member.business
|
package roomescape.member.business
|
||||||
|
|
||||||
|
import io.github.oshai.kotlinlogging.KotlinLogging
|
||||||
import org.springframework.data.repository.findByIdOrNull
|
import org.springframework.data.repository.findByIdOrNull
|
||||||
import org.springframework.stereotype.Service
|
import org.springframework.stereotype.Service
|
||||||
import org.springframework.transaction.annotation.Transactional
|
import org.springframework.transaction.annotation.Transactional
|
||||||
@ -10,26 +11,37 @@ import roomescape.member.infrastructure.persistence.MemberRepository
|
|||||||
import roomescape.member.infrastructure.persistence.Role
|
import roomescape.member.infrastructure.persistence.Role
|
||||||
import roomescape.member.web.*
|
import roomescape.member.web.*
|
||||||
|
|
||||||
|
private val log = KotlinLogging.logger {}
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@Transactional(readOnly = true)
|
@Transactional(readOnly = true)
|
||||||
class MemberService(
|
class MemberService(
|
||||||
private val memberRepository: MemberRepository
|
private val memberRepository: MemberRepository,
|
||||||
) {
|
) {
|
||||||
fun findMembers(): MemberRetrieveListResponse = MemberRetrieveListResponse(
|
fun findMembers(): MemberRetrieveListResponse {
|
||||||
members = memberRepository.findAll().map { it.toRetrieveResponse() }
|
log.debug { "[MemberService.findMembers] 회원 조회 시작" }
|
||||||
)
|
|
||||||
|
|
||||||
fun findById(memberId: Long): MemberEntity = fetchOrThrow {
|
return memberRepository.findAll()
|
||||||
memberRepository.findByIdOrNull(memberId)
|
.also { log.info { "[MemberService.findMembers] 회원 ${it.size}명 조회 완료" } }
|
||||||
|
.toRetrieveListResponse()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun findByEmailAndPassword(email: String, password: String): MemberEntity = fetchOrThrow {
|
fun findById(memberId: Long): MemberEntity {
|
||||||
memberRepository.findByEmailAndPassword(email, password)
|
return fetchOrThrow("findById", "memberId=$memberId") {
|
||||||
|
memberRepository.findByIdOrNull(memberId)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun findByEmailAndPassword(email: String, password: String): MemberEntity {
|
||||||
|
return fetchOrThrow("findByEmailAndPassword", "email=$email, password=$password") {
|
||||||
|
memberRepository.findByEmailAndPassword(email, password)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
fun create(request: SignupRequest): SignupResponse {
|
fun createMember(request: SignupRequest): SignupResponse {
|
||||||
memberRepository.findByEmail(request.email)?.let {
|
memberRepository.findByEmail(request.email)?.let {
|
||||||
|
log.info { "[MemberService.createMember] 회원가입 실패(이메일 중복): email=${request.email}" }
|
||||||
throw MemberException(MemberErrorCode.DUPLICATE_EMAIL)
|
throw MemberException(MemberErrorCode.DUPLICATE_EMAIL)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -39,10 +51,18 @@ class MemberService(
|
|||||||
password = request.password,
|
password = request.password,
|
||||||
role = Role.MEMBER
|
role = Role.MEMBER
|
||||||
)
|
)
|
||||||
|
|
||||||
return memberRepository.save(member).toSignupResponse()
|
return memberRepository.save(member).toSignupResponse()
|
||||||
|
.also { log.info { "[MemberService.create] 회원가입 완료: email=${request.email} memberId=${it.id}" } }
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun fetchOrThrow(block: () -> MemberEntity?): MemberEntity {
|
private fun fetchOrThrow(calledBy: String, params: String, block: () -> MemberEntity?): MemberEntity {
|
||||||
return block() ?: throw MemberException(MemberErrorCode.MEMBER_NOT_FOUND)
|
log.debug { "[MemberService.$calledBy] 회원 조회 시작: params=$params" }
|
||||||
|
return block()
|
||||||
|
?.also { log.info { "[MemberService.$calledBy] 회원 조회 완료: memberId=${it.id}" } }
|
||||||
|
?: run {
|
||||||
|
log.info { "[MemberService.$calledBy] 회원 조회 실패: $params" }
|
||||||
|
throw MemberException(MemberErrorCode.MEMBER_NOT_FOUND)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,6 +16,10 @@ data class MemberRetrieveResponse(
|
|||||||
val name: String
|
val name: String
|
||||||
)
|
)
|
||||||
|
|
||||||
|
fun List<MemberEntity>.toRetrieveListResponse(): MemberRetrieveListResponse = MemberRetrieveListResponse(
|
||||||
|
members = this.map { it.toRetrieveResponse() }
|
||||||
|
)
|
||||||
|
|
||||||
data class MemberRetrieveListResponse(
|
data class MemberRetrieveListResponse(
|
||||||
val members: List<MemberRetrieveResponse>
|
val members: List<MemberRetrieveResponse>
|
||||||
)
|
)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user