carlbenson
10/05/2017, 4:01 PMCapabilities
object using kotson delegates like so
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