마케팅 - 매체 파트너 코드 조회 API - link 값 수정

- 쿼리파라미터의 키와 값을 각각 인코딩 적용
This commit is contained in:
Klaus 2025-03-07 02:31:40 +09:00
parent 75940bbb23
commit 83a938dc53
1 changed files with 23 additions and 11 deletions

View File

@ -6,6 +6,8 @@ import kr.co.vividnext.sodalive.marketing.AdMediaPartnerType
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
import java.net.URLEncoder
import java.nio.charset.StandardCharsets
@Service @Service
class AdminAdMediaPartnerService(private val repository: AdMediaPartnerRepository) { class AdminAdMediaPartnerService(private val repository: AdMediaPartnerRepository) {
@ -61,16 +63,17 @@ class AdminAdMediaPartnerService(private val repository: AdMediaPartnerRepositor
AdMediaPartnerType.MAIN -> "main" AdMediaPartnerType.MAIN -> "main"
} }
val link = "$oneLinkHost?" + val params = mapOf(
"af_dp=voiceon://" + "deep_link_value" to deepLinkValue,
"&deep_link_value=$deepLinkValue" + "&deep_link_sub1" to it.pid,
"&deep_link_sub1=${it.pid}" + "&deep_link_sub2" to it.utmSource,
"&deep_link_sub2=${it.utmSource}" + "&deep_link_sub3" to it.utmMedium,
"&deep_link_sub3=${it.utmMedium}" + "&deep_link_sub4" to it.pidName,
"&deep_link_sub4=${it.pidName}" + "&utm_source" to it.utmSource,
"&utm_source=${it.utmSource}" + "&utm_medium" to it.utmMedium,
"&utm_medium=${it.utmMedium}" + "&utm_campaign" to it.pid
"&utm_campaign=${it.pid}" )
val link = createUrl(baseUrl = ONE_LINK_HOST, params = params)
it.link = link it.link = link
it it
@ -82,7 +85,16 @@ class AdminAdMediaPartnerService(private val repository: AdMediaPartnerRepositor
) )
} }
private fun createUrl(baseUrl: String, params: Map<String, String>): String {
val encodedParams = params.map { (key, value) ->
"${URLEncoder.encode(key, StandardCharsets.UTF_8.toString())}=" +
URLEncoder.encode(value, StandardCharsets.UTF_8.toString())
}.joinToString("&")
return "$baseUrl?$encodedParams"
}
companion object { companion object {
private val oneLinkHost = "https://voiceon.onelink.me/RkTm" private const val ONE_LINK_HOST = "https://voiceon.onelink.me/RkTm"
} }
} }