[#24] feat: front용 에러 응답 포멧 적용(미완성)
- error response 규격화 때 개발 계획 - front용 임시 에러응답 적용
This commit is contained in:
@@ -22,7 +22,7 @@ class UserDetailsServiceImpl(
|
||||
return memberRepository.findByEmail(email)?.let {
|
||||
logger.info { "[LOAD MEMBER] email: ${it.email}, role: ${it.roleType}, activated: ${it.activated}" }
|
||||
createSecurityUser(it)
|
||||
} ?: throw UsernameNotFoundException(email)
|
||||
} ?: throw UsernameNotFoundException("${email} is not found")
|
||||
}
|
||||
|
||||
private fun createSecurityUser(member: Member): SecurityUser {
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
package io.beaniejoy.dongnecafe.error.handler
|
||||
|
||||
import io.beaniejoy.dongnecafe.error.ErrorResponse
|
||||
import mu.KLogging
|
||||
import org.springframework.http.HttpStatus
|
||||
import org.springframework.http.ResponseEntity
|
||||
import org.springframework.security.core.AuthenticationException
|
||||
import org.springframework.web.bind.annotation.ExceptionHandler
|
||||
import org.springframework.web.bind.annotation.RestControllerAdvice
|
||||
|
||||
// TODO 통합된 에러 핸들링 필요(ErrorResponse 규격화)
|
||||
@RestControllerAdvice
|
||||
class CommonControllerAdvice {
|
||||
|
||||
companion object : KLogging()
|
||||
|
||||
@ExceptionHandler(AuthenticationException::class)
|
||||
fun handleAuthenticationException(e: AuthenticationException): ResponseEntity<ErrorResponse> {
|
||||
logger.error { "AuthenticationException: ${e.message}" }
|
||||
return ResponseEntity.ok().body(
|
||||
ErrorResponse(
|
||||
code = HttpStatus.BAD_REQUEST.value(),
|
||||
message = "계정 혹은 비밀번호가 일치하지 않습니다."
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
package io.beaniejoy.dongnecafe.error
|
||||
|
||||
data class ErrorResponse(
|
||||
val code: Int,
|
||||
val message: String?
|
||||
)
|
||||
@@ -1,7 +1,7 @@
|
||||
package io.beaniejoy.dongnecafe.domain.cafe.service
|
||||
|
||||
import io.beaniejoy.dongnecafe.domain.cafe.model.response.CafeMenuDetailedInfo
|
||||
import io.beaniejoy.dongnecafe.common.error.exception.CafeMenuNotFoundException
|
||||
import io.beaniejoy.dongnecafe.error.exception.CafeMenuNotFoundException
|
||||
import io.beaniejoy.dongnecafe.domain.cafe.model.request.CafeMenuUpdateRequest
|
||||
import io.beaniejoy.dongnecafe.domain.cafe.repository.CafeMenuRepository
|
||||
import org.springframework.data.repository.findByIdOrNull
|
||||
|
||||
@@ -4,8 +4,8 @@ import io.beaniejoy.dongnecafe.domain.cafe.model.response.CafeDetailedInfo
|
||||
import io.beaniejoy.dongnecafe.domain.cafe.model.response.CafeSearchInfo
|
||||
import io.beaniejoy.dongnecafe.domain.cafe.model.request.CafeMenuRegisterRequest
|
||||
import io.beaniejoy.dongnecafe.domain.cafe.entity.Cafe
|
||||
import io.beaniejoy.dongnecafe.common.error.exception.CafeExistedException
|
||||
import io.beaniejoy.dongnecafe.common.error.exception.CafeNotFoundException
|
||||
import io.beaniejoy.dongnecafe.error.exception.CafeExistedException
|
||||
import io.beaniejoy.dongnecafe.error.exception.CafeNotFoundException
|
||||
import io.beaniejoy.dongnecafe.domain.cafe.repository.CafeRepository
|
||||
import mu.KLogging
|
||||
import org.springframework.data.domain.Page
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package io.beaniejoy.dongnecafe.domain.cafe.service
|
||||
|
||||
import io.beaniejoy.dongnecafe.common.error.exception.MenuOptionNotFoundException
|
||||
import io.beaniejoy.dongnecafe.error.exception.MenuOptionNotFoundException
|
||||
import io.beaniejoy.dongnecafe.domain.cafe.model.request.MenuOptionUpdateRequest
|
||||
import io.beaniejoy.dongnecafe.domain.cafe.repository.MenuOptionRepository
|
||||
import org.springframework.data.repository.findByIdOrNull
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package io.beaniejoy.dongnecafe.domain.cafe.service
|
||||
|
||||
import io.beaniejoy.dongnecafe.common.error.exception.OptionDetailNotFoundException
|
||||
import io.beaniejoy.dongnecafe.error.exception.OptionDetailNotFoundException
|
||||
import io.beaniejoy.dongnecafe.domain.cafe.model.request.OptionDetailUpdateRequest
|
||||
import io.beaniejoy.dongnecafe.domain.cafe.repository.OptionDetailRepository
|
||||
import org.springframework.data.repository.findByIdOrNull
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package io.beaniejoy.dongnecafe.common.error
|
||||
package io.beaniejoy.dongnecafe.error
|
||||
|
||||
import io.beaniejoy.dongnecafe.common.error.exception.CafeNotFoundException
|
||||
import io.beaniejoy.dongnecafe.error.exception.CafeNotFoundException
|
||||
import org.springframework.http.ResponseEntity
|
||||
import org.springframework.web.bind.annotation.ExceptionHandler
|
||||
import org.springframework.web.bind.annotation.RestControllerAdvice
|
||||
@@ -1,3 +1,3 @@
|
||||
package io.beaniejoy.dongnecafe.common.error.exception
|
||||
package io.beaniejoy.dongnecafe.error.exception
|
||||
|
||||
class CafeExistedException(name: String) : RuntimeException("Cafe[$name] is already existed")
|
||||
@@ -1,4 +1,4 @@
|
||||
package io.beaniejoy.dongnecafe.common.error.exception
|
||||
package io.beaniejoy.dongnecafe.error.exception
|
||||
|
||||
class CafeMenuNotFoundException(menuId: Long, cafeId: Long) :
|
||||
RuntimeException("Cafe[${cafeId}]의 Menu[${menuId}]는 존재하지 않는 메뉴입니다.")
|
||||
@@ -1,3 +1,3 @@
|
||||
package io.beaniejoy.dongnecafe.common.error.exception
|
||||
package io.beaniejoy.dongnecafe.error.exception
|
||||
|
||||
class CafeNotFoundException(cafeId: Long) : RuntimeException("Cafe[$cafeId] is not found")
|
||||
@@ -1,3 +1,3 @@
|
||||
package io.beaniejoy.dongnecafe.common.error.exception
|
||||
package io.beaniejoy.dongnecafe.error.exception
|
||||
|
||||
class MenuOptionNotFoundException(menuOptionId: Long) : RuntimeException("MenuOption[$menuOptionId] is not found")
|
||||
@@ -1,3 +1,3 @@
|
||||
package io.beaniejoy.dongnecafe.common.error.exception
|
||||
package io.beaniejoy.dongnecafe.error.exception
|
||||
|
||||
class OptionDetailNotFoundException(optionDetailId: Long) : RuntimeException("OptionDetail[$optionDetailId] is not found")
|
||||
@@ -1,7 +1,7 @@
|
||||
package io.beaniejoy.dongnecafe.domain.cafe.service
|
||||
|
||||
import io.beaniejoy.dongnecafe.domain.cafe.entity.CafeMenu
|
||||
import io.beaniejoy.dongnecafe.common.error.exception.CafeMenuNotFoundException
|
||||
import io.beaniejoy.dongnecafe.error.exception.CafeMenuNotFoundException
|
||||
import io.beaniejoy.dongnecafe.domain.cafe.repository.CafeMenuRepository
|
||||
import io.beaniejoy.dongnecafe.domain.cafe.repository.MenuOptionRepository
|
||||
import io.beaniejoy.dongnecafe.domain.cafe.repository.OptionDetailRepository
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package io.beaniejoy.dongnecafe.domain.cafe.service
|
||||
|
||||
import io.beaniejoy.dongnecafe.domain.cafe.entity.Cafe
|
||||
import io.beaniejoy.dongnecafe.common.error.exception.CafeExistedException
|
||||
import io.beaniejoy.dongnecafe.common.error.exception.CafeNotFoundException
|
||||
import io.beaniejoy.dongnecafe.error.exception.CafeExistedException
|
||||
import io.beaniejoy.dongnecafe.error.exception.CafeNotFoundException
|
||||
import io.beaniejoy.dongnecafe.domain.cafe.repository.CafeRepository
|
||||
import io.beaniejoy.dongnecafe.domain.cafe.utils.CafeTestUtils
|
||||
import org.junit.jupiter.api.*
|
||||
|
||||
Reference in New Issue
Block a user