크리에이터 관리자 메시지 다국어화
This commit is contained in:
@@ -23,7 +23,7 @@ class CreatorAdminContentController(private val service: CreatorAdminContentServ
|
||||
pageable: Pageable,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
||||
) = run {
|
||||
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
|
||||
if (member == null) throw SodaException(messageKey = "common.error.bad_credentials")
|
||||
|
||||
ApiResponse.ok(service.getAudioContentList(pageable, member))
|
||||
}
|
||||
@@ -34,7 +34,7 @@ class CreatorAdminContentController(private val service: CreatorAdminContentServ
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?,
|
||||
pageable: Pageable
|
||||
) = run {
|
||||
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
|
||||
if (member == null) throw SodaException(messageKey = "common.error.bad_credentials")
|
||||
|
||||
ApiResponse.ok(service.searchAudioContent(searchWord, member, pageable))
|
||||
}
|
||||
@@ -45,7 +45,7 @@ class CreatorAdminContentController(private val service: CreatorAdminContentServ
|
||||
@RequestPart("request") requestString: String,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
||||
) = run {
|
||||
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
|
||||
if (member == null) throw SodaException(messageKey = "common.error.bad_credentials")
|
||||
|
||||
ApiResponse.ok(service.updateAudioContent(coverImage, requestString, member))
|
||||
}
|
||||
|
||||
@@ -72,7 +72,7 @@ class CreatorAdminContentService(
|
||||
}
|
||||
|
||||
fun searchAudioContent(searchWord: String, member: Member, pageable: Pageable): GetCreatorAdminContentListResponse {
|
||||
if (searchWord.length < 2) throw SodaException("2글자 이상 입력하세요.")
|
||||
if (searchWord.length < 2) throw SodaException(messageKey = "creator.admin.content.search_word_min_length")
|
||||
val totalCount = repository.getAudioContentTotalCount(
|
||||
memberId = member.id!!,
|
||||
searchWord
|
||||
@@ -113,7 +113,7 @@ class CreatorAdminContentService(
|
||||
fun updateAudioContent(coverImage: MultipartFile?, requestString: String, member: Member) {
|
||||
val request = objectMapper.readValue(requestString, UpdateCreatorAdminContentRequest::class.java)
|
||||
val audioContent = repository.getAudioContent(memberId = member.id!!, audioContentId = request.id)
|
||||
?: throw SodaException("잘못된 콘텐츠 입니다.")
|
||||
?: throw SodaException(messageKey = "creator.admin.content.invalid_content")
|
||||
|
||||
if (coverImage != null) {
|
||||
val metadata = ObjectMetadata()
|
||||
@@ -157,7 +157,7 @@ class CreatorAdminContentService(
|
||||
}
|
||||
|
||||
if (request.price != null) {
|
||||
if (request.price < 5) throw SodaException("콘텐츠의 최소금액은 5캔 입니다.")
|
||||
if (request.price < 5) throw SodaException(messageKey = "creator.admin.content.min_price")
|
||||
|
||||
val contentPriceChangeLog = ContentPriceChangeLog(prevPrice = audioContent.price)
|
||||
contentPriceChangeLog.audioContent = audioContent
|
||||
|
||||
@@ -21,7 +21,7 @@ class CreatorAdminCategoryController(private val service: CreatorAdminCategorySe
|
||||
@RequestParam(value = "search_word") searchWord: String,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
||||
) = run {
|
||||
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
|
||||
if (member == null) throw SodaException(messageKey = "common.error.bad_credentials")
|
||||
|
||||
ApiResponse.ok(
|
||||
service.searchContentNotInCategory(
|
||||
@@ -38,7 +38,7 @@ class CreatorAdminCategoryController(private val service: CreatorAdminCategorySe
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?,
|
||||
pageable: Pageable
|
||||
) = run {
|
||||
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
|
||||
if (member == null) throw SodaException(messageKey = "common.error.bad_credentials")
|
||||
|
||||
ApiResponse.ok(
|
||||
service.getContentInCategory(
|
||||
|
||||
@@ -24,7 +24,7 @@ class CreatorAdminMemberController(private val service: CreatorAdminMemberServic
|
||||
@RequestHeader("Authorization") token: String,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
||||
) = run {
|
||||
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
|
||||
if (member == null) throw SodaException(messageKey = "common.error.bad_credentials")
|
||||
|
||||
ApiResponse.ok(service.logout(token.removePrefix("Bearer "), member.id!!))
|
||||
}
|
||||
|
||||
@@ -3,6 +3,8 @@ package kr.co.vividnext.sodalive.creator.admin.member
|
||||
import kr.co.vividnext.sodalive.common.ApiResponse
|
||||
import kr.co.vividnext.sodalive.common.SodaException
|
||||
import kr.co.vividnext.sodalive.fcm.PushTokenService
|
||||
import kr.co.vividnext.sodalive.i18n.LangContext
|
||||
import kr.co.vividnext.sodalive.i18n.SodaMessageSource
|
||||
import kr.co.vividnext.sodalive.jwt.TokenProvider
|
||||
import kr.co.vividnext.sodalive.member.MemberRepository
|
||||
import kr.co.vividnext.sodalive.member.MemberRole
|
||||
@@ -27,6 +29,8 @@ class CreatorAdminMemberService(
|
||||
private val authenticationManagerBuilder: AuthenticationManagerBuilder,
|
||||
|
||||
private val pushTokenService: PushTokenService,
|
||||
private val messageSource: SodaMessageSource,
|
||||
private val langContext: LangContext,
|
||||
|
||||
@Value("\${cloud.aws.cloud-front.host}")
|
||||
private val cloudFrontHost: String
|
||||
@@ -36,7 +40,7 @@ class CreatorAdminMemberService(
|
||||
|
||||
fun login(request: LoginRequest): ApiResponse<LoginResponse> {
|
||||
return ApiResponse.ok(
|
||||
message = "로그인 되었습니다.",
|
||||
message = messageSource.getMessage("creator.admin.member.login_success", langContext.lang),
|
||||
data = login(request.email, request.password)
|
||||
)
|
||||
}
|
||||
@@ -44,7 +48,7 @@ class CreatorAdminMemberService(
|
||||
@Transactional
|
||||
fun logout(token: String, memberId: Long) {
|
||||
val member = repository.findByIdOrNull(memberId)
|
||||
?: throw SodaException("로그인 정보를 확인해주세요.")
|
||||
?: throw SodaException(messageKey = "common.error.bad_credentials")
|
||||
|
||||
member.pushToken = null
|
||||
pushTokenService.logout(memberId = memberId)
|
||||
@@ -52,7 +56,7 @@ class CreatorAdminMemberService(
|
||||
val lock = getOrCreateLock(memberId = memberId)
|
||||
lock.write {
|
||||
val memberToken = tokenRepository.findByIdOrNull(memberId)
|
||||
?: throw SodaException("로그인 정보를 확인해주세요.")
|
||||
?: throw SodaException(messageKey = "common.error.bad_credentials")
|
||||
|
||||
memberToken.tokenSet.remove(token)
|
||||
tokenRepository.save(memberToken)
|
||||
@@ -60,13 +64,14 @@ class CreatorAdminMemberService(
|
||||
}
|
||||
|
||||
private fun login(email: String, password: String): LoginResponse {
|
||||
val member = repository.findByEmail(email = email) ?: throw SodaException("로그인 정보를 확인해주세요.")
|
||||
val member = repository.findByEmail(email = email)
|
||||
?: throw SodaException(messageKey = "common.error.bad_credentials")
|
||||
if (!member.isActive) {
|
||||
throw SodaException("탈퇴한 계정입니다.\n고객센터로 문의해 주시기 바랍니다.")
|
||||
throw SodaException(messageKey = "creator.admin.member.inactive_account")
|
||||
}
|
||||
|
||||
if (member.role != MemberRole.CREATOR) {
|
||||
throw SodaException("로그인 정보를 확인해주세요.")
|
||||
throw SodaException(messageKey = "common.error.bad_credentials")
|
||||
}
|
||||
|
||||
val authenticationToken = UsernamePasswordAuthenticationToken(email, password)
|
||||
|
||||
@@ -2,6 +2,8 @@ package kr.co.vividnext.sodalive.creator.admin.signature
|
||||
|
||||
import kr.co.vividnext.sodalive.common.ApiResponse
|
||||
import kr.co.vividnext.sodalive.common.SodaException
|
||||
import kr.co.vividnext.sodalive.i18n.LangContext
|
||||
import kr.co.vividnext.sodalive.i18n.SodaMessageSource
|
||||
import kr.co.vividnext.sodalive.live.signature.SignatureCanSortType
|
||||
import kr.co.vividnext.sodalive.member.Member
|
||||
import org.springframework.data.domain.Pageable
|
||||
@@ -18,14 +20,18 @@ import org.springframework.web.multipart.MultipartFile
|
||||
@RestController
|
||||
@PreAuthorize("hasRole('CREATOR')")
|
||||
@RequestMapping("/creator-admin/signature")
|
||||
class CreatorAdminSignatureController(private val service: CreatorAdminSignatureService) {
|
||||
class CreatorAdminSignatureController(
|
||||
private val service: CreatorAdminSignatureService,
|
||||
private val messageSource: SodaMessageSource,
|
||||
private val langContext: LangContext
|
||||
) {
|
||||
@GetMapping
|
||||
fun getSignatureCanList(
|
||||
pageable: Pageable,
|
||||
@RequestParam("sort-type", required = false) sortType: SignatureCanSortType?,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
||||
) = run {
|
||||
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
|
||||
if (member == null) throw SodaException(messageKey = "common.error.bad_credentials")
|
||||
|
||||
ApiResponse.ok(
|
||||
data = service.getSignatureList(
|
||||
@@ -44,7 +50,7 @@ class CreatorAdminSignatureController(private val service: CreatorAdminSignature
|
||||
@RequestParam("isAdult", required = false) isAdult: Boolean? = false,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
||||
) = run {
|
||||
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
|
||||
if (member == null) throw SodaException(messageKey = "common.error.bad_credentials")
|
||||
|
||||
ApiResponse.ok(
|
||||
service.createSignature(
|
||||
@@ -54,7 +60,7 @@ class CreatorAdminSignatureController(private val service: CreatorAdminSignature
|
||||
isAdult = isAdult ?: false,
|
||||
memberId = member.id!!
|
||||
),
|
||||
"등록되었습니다."
|
||||
messageSource.getMessage("creator.admin.signature.created", langContext.lang)
|
||||
)
|
||||
}
|
||||
|
||||
@@ -68,9 +74,9 @@ class CreatorAdminSignatureController(private val service: CreatorAdminSignature
|
||||
@RequestParam("isAdult", required = false) isAdult: Boolean?,
|
||||
@AuthenticationPrincipal(expression = "#this == 'anonymousUser' ? null : member") member: Member?
|
||||
) = run {
|
||||
if (member == null) throw SodaException("로그인 정보를 확인해주세요.")
|
||||
if (member == null) throw SodaException(messageKey = "common.error.bad_credentials")
|
||||
if (can == null && time == null && image == null && isActive == null && isAdult == null) {
|
||||
throw SodaException("변경사항이 없습니다.")
|
||||
throw SodaException(messageKey = "creator.admin.signature.no_changes")
|
||||
}
|
||||
|
||||
ApiResponse.ok(
|
||||
@@ -83,7 +89,11 @@ class CreatorAdminSignatureController(private val service: CreatorAdminSignature
|
||||
isAdult = isAdult,
|
||||
memberId = member.id!!
|
||||
),
|
||||
if (isActive == false) "삭제되었습니다." else "수정되었습니다."
|
||||
if (isActive == false) {
|
||||
messageSource.getMessage("creator.admin.signature.deleted", langContext.lang)
|
||||
} else {
|
||||
messageSource.getMessage("creator.admin.signature.updated", langContext.lang)
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,11 +44,11 @@ class CreatorAdminSignatureService(
|
||||
|
||||
@Transactional
|
||||
fun createSignature(can: Int, time: Int, image: MultipartFile, memberId: Long, isAdult: Boolean) {
|
||||
if (can <= 0) throw SodaException("1캔 이상 설정할 수 있습니다.")
|
||||
if (time < 3 || time > 20) throw SodaException("시간은 3초 이상 20초 이하로 설정할 수 있습니다.")
|
||||
if (can <= 0) throw SodaException(messageKey = "creator.admin.signature.min_can")
|
||||
if (time < 3 || time > 20) throw SodaException(messageKey = "creator.admin.signature.time_range")
|
||||
|
||||
val member = memberRepository.findCreatorByIdOrNull(memberId = memberId)
|
||||
?: throw SodaException("잘못된 접근입니다.")
|
||||
?: throw SodaException(messageKey = "creator.admin.signature.invalid_access")
|
||||
|
||||
val signatureCan = SignatureCan(can = can, time = time, isAdult = isAdult)
|
||||
signatureCan.creator = member
|
||||
@@ -77,15 +77,15 @@ class CreatorAdminSignatureService(
|
||||
isAdult: Boolean?
|
||||
) {
|
||||
val signatureCan = repository.findSignatureByIdOrNull(id = id, memberId = memberId)
|
||||
?: throw SodaException("잘못된 요청입니다.")
|
||||
?: throw SodaException(messageKey = "creator.admin.signature.invalid_request")
|
||||
|
||||
if (can != null) {
|
||||
if (can <= 0) throw SodaException("1캔 이상 설정할 수 있습니다.")
|
||||
if (can <= 0) throw SodaException(messageKey = "creator.admin.signature.min_can")
|
||||
signatureCan.can = can
|
||||
}
|
||||
|
||||
if (time != null) {
|
||||
if (time < 3 || time > 20) throw SodaException("시간은 3초 이상 20초 이하로 설정할 수 있습니다.")
|
||||
if (time < 3 || time > 20) throw SodaException(messageKey = "creator.admin.signature.time_range")
|
||||
signatureCan.time = time
|
||||
}
|
||||
|
||||
|
||||
@@ -1098,6 +1098,80 @@ class SodaMessageSource {
|
||||
)
|
||||
)
|
||||
|
||||
private val creatorAdminMemberMessages = mapOf(
|
||||
"creator.admin.member.login_success" to mapOf(
|
||||
Lang.KO to "로그인 되었습니다.",
|
||||
Lang.EN to "Logged in.",
|
||||
Lang.JA to "ログインしました。"
|
||||
),
|
||||
"creator.admin.member.inactive_account" to mapOf(
|
||||
Lang.KO to "탈퇴한 계정입니다.\n고객센터로 문의해 주시기 바랍니다.",
|
||||
Lang.EN to "This account has been deactivated.\nPlease contact customer support.",
|
||||
Lang.JA to "退会したアカウントです。\nカスタマーサポートにお問い合わせください。"
|
||||
)
|
||||
)
|
||||
|
||||
private val creatorAdminSignatureMessages = mapOf(
|
||||
"creator.admin.signature.created" to mapOf(
|
||||
Lang.KO to "등록되었습니다.",
|
||||
Lang.EN to "Successfully registered.",
|
||||
Lang.JA to "登録されました。"
|
||||
),
|
||||
"creator.admin.signature.updated" to mapOf(
|
||||
Lang.KO to "수정되었습니다.",
|
||||
Lang.EN to "Updated.",
|
||||
Lang.JA to "更新されました。"
|
||||
),
|
||||
"creator.admin.signature.deleted" to mapOf(
|
||||
Lang.KO to "삭제되었습니다.",
|
||||
Lang.EN to "Deleted.",
|
||||
Lang.JA to "削除されました。"
|
||||
),
|
||||
"creator.admin.signature.no_changes" to mapOf(
|
||||
Lang.KO to "변경사항이 없습니다.",
|
||||
Lang.EN to "No changes to update.",
|
||||
Lang.JA to "変更事項がありません。"
|
||||
),
|
||||
"creator.admin.signature.min_can" to mapOf(
|
||||
Lang.KO to "1캔 이상 설정할 수 있습니다.",
|
||||
Lang.EN to "You can set at least 1 can.",
|
||||
Lang.JA to "1缶以上設定できます。"
|
||||
),
|
||||
"creator.admin.signature.time_range" to mapOf(
|
||||
Lang.KO to "시간은 3초 이상 20초 이하로 설정할 수 있습니다.",
|
||||
Lang.EN to "Time must be between 3 and 20 seconds.",
|
||||
Lang.JA to "時間は3秒以上20秒以下に設定できます。"
|
||||
),
|
||||
"creator.admin.signature.invalid_access" to mapOf(
|
||||
Lang.KO to "잘못된 접근입니다.",
|
||||
Lang.EN to "Invalid access.",
|
||||
Lang.JA to "不正なアクセスです。"
|
||||
),
|
||||
"creator.admin.signature.invalid_request" to mapOf(
|
||||
Lang.KO to "잘못된 요청입니다.",
|
||||
Lang.EN to "Invalid request.",
|
||||
Lang.JA to "不正なリクエストです。"
|
||||
)
|
||||
)
|
||||
|
||||
private val creatorAdminContentMessages = mapOf(
|
||||
"creator.admin.content.search_word_min_length" to mapOf(
|
||||
Lang.KO to "2글자 이상 입력하세요.",
|
||||
Lang.EN to "Please enter at least 2 characters.",
|
||||
Lang.JA to "2文字以上入力してください。"
|
||||
),
|
||||
"creator.admin.content.invalid_content" to mapOf(
|
||||
Lang.KO to "잘못된 콘텐츠 입니다.",
|
||||
Lang.EN to "Invalid content.",
|
||||
Lang.JA to "不正なコンテンツです。"
|
||||
),
|
||||
"creator.admin.content.min_price" to mapOf(
|
||||
Lang.KO to "콘텐츠의 최소금액은 5캔 입니다.",
|
||||
Lang.EN to "Minimum price for content is 5 cans.",
|
||||
Lang.JA to "コンテンツの最低価格は5缶です。"
|
||||
)
|
||||
)
|
||||
|
||||
private val creatorCommunityMessages = mapOf(
|
||||
"creator.community.paid_post_image_required" to mapOf(
|
||||
Lang.KO to "유료 게시글 등록을 위해서는 이미지가 필요합니다.",
|
||||
@@ -1185,6 +1259,9 @@ class SodaMessageSource {
|
||||
explorerResponseMessages,
|
||||
explorerValidationMessages,
|
||||
explorerAccessMessages,
|
||||
creatorAdminMemberMessages,
|
||||
creatorAdminSignatureMessages,
|
||||
creatorAdminContentMessages,
|
||||
creatorCommunityMessages
|
||||
)
|
||||
for (messages in messageGroups) {
|
||||
|
||||
Reference in New Issue
Block a user