https://kotlinlang.org logo
#kotson
Title
c

carlbenson

10/05/2017, 4:01 PM
I’m construction a
Capabilities
object using kotson delegates like so
Copy code
class Capabilities(val obj: JsonObject, market: String) {
    val hasSavings by obj[market]["services"].byBool("savings")
    internal val hasFundsMaybe by obj[market]["services"].byNullableBool("funds")
    val paymentMethod by obj[market].byString("paymentMethod")
    val withdrawalMethod by obj[market].byString("withdrawalMethod")
    val bankProviderName by obj[market]["bankProvider"].byString("name")
    val fundProviderName by obj[market]["fundsProvider"].byString("name")
    val onboardingKyc by obj[market]["onboarding"].byString("kyc")
    val strongAuth by obj[market]["onboarding"].byString("strongAuth")
    val strongAuthMethod by obj[market]["strongAuthenticationMethod"].byString("method")
}

val Capabilities.hasBankAccountWithdrawalMethod: Boolean get() = withdrawalMethod == "bankAccount"
val Capabilities.isOnboardingKycEmbedded: Boolean get() = onboardingKyc == "embeddedInWebview"
val Capabilities.isStrongAuthEmbedded: Boolean get() = strongAuth == "embeddedInWebView"
val Capabilities.isPaymentMethodDebitCard: Boolean get() = paymentMethod == "debitCard"
val Capabilities.isStrongAuthMethodInternal: Boolean get() = strongAuthMethod == "internalBrowser"
val Capabilities.hasFunds: Boolean get() = hasFundsMaybe == true