Skip to content

Commit 1ff3a30

Browse files
mirek26stainless-app[bot]
authored andcommitted
chore: fix card embed endpoints after removing apache dependency
1 parent 5d70c06 commit 1ff3a30

3 files changed

Lines changed: 53 additions & 14 deletions

File tree

lithic-java-core/src/main/kotlin/com/lithic/api/services/async/CardServiceAsyncImpl.kt

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,13 @@ import com.lithic.api.services.async.cards.BalanceServiceAsync
4141
import com.lithic.api.services.async.cards.BalanceServiceAsyncImpl
4242
import com.lithic.api.services.async.cards.FinancialTransactionServiceAsync
4343
import com.lithic.api.services.async.cards.FinancialTransactionServiceAsyncImpl
44-
import java.net.URI
44+
import java.net.URLEncoder
4545
import java.util.Base64
4646
import java.util.concurrent.CompletableFuture
4747
import java.util.function.Consumer
4848
import javax.crypto.Mac
4949
import javax.crypto.spec.SecretKeySpec
5050
import kotlin.jvm.optionals.getOrNull
51-
import org.apache.hc.core5.net.URIBuilder
5251

5352
class CardServiceAsyncImpl internal constructor(private val clientOptions: ClientOptions) :
5453
CardServiceAsync {
@@ -618,10 +617,14 @@ class CardServiceAsyncImpl internal constructor(private val clientOptions: Clien
618617
val embed_request_hmac =
619618
Base64.getEncoder().encodeToString(mac.doFinal(embed_request.toByteArray()))
620619

621-
return URIBuilder(URI.create(clientOptions.baseUrl()))
622-
.appendPathSegments("embed", "card")
623-
.addParameter("embed_request", embed_request)
624-
.addParameter("hmac", embed_request_hmac)
625-
.toString()
620+
return buildString {
621+
append(clientOptions.baseUrl())
622+
if (!endsWith("/")) append("/")
623+
append("embed/card")
624+
append("?embed_request=")
625+
append(URLEncoder.encode(embed_request, "UTF-8"))
626+
append("&hmac=")
627+
append(URLEncoder.encode(embed_request_hmac, "UTF-8"))
628+
}
626629
}
627630
}

lithic-java-core/src/main/kotlin/com/lithic/api/services/blocking/CardServiceImpl.kt

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,12 @@ import com.lithic.api.services.blocking.cards.BalanceService
4141
import com.lithic.api.services.blocking.cards.BalanceServiceImpl
4242
import com.lithic.api.services.blocking.cards.FinancialTransactionService
4343
import com.lithic.api.services.blocking.cards.FinancialTransactionServiceImpl
44-
import java.net.URI
44+
import java.net.URLEncoder
4545
import java.util.Base64
4646
import java.util.function.Consumer
4747
import javax.crypto.Mac
4848
import javax.crypto.spec.SecretKeySpec
4949
import kotlin.jvm.optionals.getOrNull
50-
import org.apache.hc.core5.net.URIBuilder
5150

5251
class CardServiceImpl internal constructor(private val clientOptions: ClientOptions) : CardService {
5352

@@ -553,10 +552,14 @@ class CardServiceImpl internal constructor(private val clientOptions: ClientOpti
553552
val embed_request_hmac =
554553
Base64.getEncoder().encodeToString(mac.doFinal(embed_request.toByteArray()))
555554

556-
return URIBuilder(URI.create(clientOptions.baseUrl()))
557-
.appendPathSegments("embed", "card")
558-
.addParameter("embed_request", embed_request)
559-
.addParameter("hmac", embed_request_hmac)
560-
.toString()
555+
return buildString {
556+
append(clientOptions.baseUrl())
557+
if (!endsWith("/")) append("/")
558+
append("embed/card")
559+
append("?embed_request=")
560+
append(URLEncoder.encode(embed_request, "UTF-8"))
561+
append("&hmac=")
562+
append(URLEncoder.encode(embed_request_hmac, "UTF-8"))
563+
}
561564
}
562565
}

lithic-java-core/src/test/kotlin/com/lithic/api/services/blocking/CardServiceTest.kt

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import com.lithic.api.client.okhttp.LithicOkHttpClient
77
import com.lithic.api.models.CardConvertPhysicalParams
88
import com.lithic.api.models.CardCreateParams
99
import com.lithic.api.models.CardEmbedParams
10+
import com.lithic.api.models.CardGetEmbedHtmlParams
11+
import com.lithic.api.models.CardGetEmbedUrlParams
1012
import com.lithic.api.models.CardProvisionParams
1113
import com.lithic.api.models.CardReissueParams
1214
import com.lithic.api.models.CardRenewParams
@@ -16,6 +18,7 @@ import com.lithic.api.models.CardWebProvisionParams
1618
import com.lithic.api.models.Carrier
1719
import com.lithic.api.models.ShippingAddress
1820
import com.lithic.api.models.SpendLimitDuration
21+
import org.assertj.core.api.Assertions.assertThat
1922
import org.junit.jupiter.api.Test
2023
import org.junit.jupiter.api.extension.ExtendWith
2124

@@ -342,4 +345,34 @@ internal class CardServiceTest {
342345

343346
response.validate()
344347
}
348+
349+
@Test
350+
fun callGetEmbedHtml() {
351+
val client =
352+
LithicOkHttpClient.builder()
353+
.baseUrl(TestServerExtension.BASE_URL)
354+
.apiKey("test-api-key")
355+
.webhookSecret("string")
356+
.build()
357+
val cardService = client.cards()
358+
val cardEmbedResponse =
359+
cardService.getEmbedHtml(CardGetEmbedHtmlParams.builder().token("foo").build())
360+
println(cardEmbedResponse)
361+
assertThat(cardEmbedResponse).contains("<html>")
362+
}
363+
364+
@Test
365+
fun callGetEmbedUrl() {
366+
val client =
367+
LithicOkHttpClient.builder()
368+
.baseUrl(TestServerExtension.BASE_URL)
369+
.apiKey("test-api-key")
370+
.webhookSecret("string")
371+
.build()
372+
val cardService = client.cards()
373+
val cardEmbedUrl =
374+
cardService.getEmbedUrl(CardGetEmbedUrlParams.builder().token("foo").build())
375+
println(cardEmbedUrl)
376+
assertThat(cardEmbedUrl).contains("hmac")
377+
}
345378
}

0 commit comments

Comments
 (0)