Open
Description
Is your feature request related to a problem? Please describe.
I am using Kotlin and the use of the builders provided on these classes is overly verbose.
Describe the solution you'd like
Make the constructors public, so I can build the objects myself, using Kotlin's Type Safe Builders.
Also, I believe the fields will need to be accessible.
Or even create a Kotlin extensions library with the type-safe builders included.
Describe alternatives you've considered
I've tried creating a wrapper around the builders themselves, but it turned out to be extremely cumbersome.
Additional context
For example, instead of:
val lineItem = SessionCreateParams.LineItem.builder()
.setPrice(priceID)
.setQuantity(1)
.build()
SessionCreateParams.builder().apply {
setMode(SUBSCRIPTION)
addPaymentMethodType(SessionCreateParams.PaymentMethodType.CARD)
addLineItem(lineItem)
setSuccessUrl("$domainURL/stripe/checkout?sessionID={CHECKOUT_SESSION_ID}&success=true")
setCancelUrl("$domainURL/stripe/checkout?success=false")
setAllowPromotionCodes(true)
setSubscriptionData(subscriptionData)
I could simply do
createSessionParams {
mode = SUBSCRIPTION
paymentMethodTypes += CARD
lineItems = listOf(
lineItem {
price = priceID
quantity = 1
}
)
successUrl = "$domainURL/stripe/checkout?sessionID={CHECKOUT_SESSION_ID}&success=true"
cancelUrl = "$domainURL/stripe/checkout?success=false"
allowPromitionCodes = true
subscriptionData =
}
But I cannot instantiate the classes myself, as the constructors are private.