diff options
author | Antoine A <> | 2024-01-31 11:09:08 +0100 |
---|---|---|
committer | Antoine A <> | 2024-01-31 11:09:08 +0100 |
commit | 1f1c99b56623000c61b5b735604683ffe911e31b (patch) | |
tree | 1ee9bd21e355bffb6cc285e32dcfadfe3a92802b | |
parent | af6b09f31537d016b45b3486e2cc815cb78e5db5 (diff) | |
download | libeufin-1f1c99b56623000c61b5b735604683ffe911e31b.tar.gz libeufin-1f1c99b56623000c61b5b735604683ffe911e31b.tar.bz2 libeufin-1f1c99b56623000c61b5b735604683ffe911e31b.zip |
Code cleanup
15 files changed, 73 insertions, 75 deletions
diff --git a/bank/src/main/kotlin/tech/libeufin/bank/Config.kt b/bank/src/main/kotlin/tech/libeufin/bank/Config.kt index 0ad5590a..0548758c 100644 --- a/bank/src/main/kotlin/tech/libeufin/bank/Config.kt +++ b/bank/src/main/kotlin/tech/libeufin/bank/Config.kt @@ -66,9 +66,9 @@ data class ConversionRate ( val cashout_min_amount: TalerAmount, ) -sealed class ServerConfig { - data class Unix(val path: String, val mode: Int): ServerConfig() - data class Tcp(val port: Int): ServerConfig() +sealed interface ServerConfig { + data class Unix(val path: String, val mode: Int): ServerConfig + data class Tcp(val port: Int): ServerConfig } fun talerConfig(configPath: Path?): TalerConfig = BANK_CONFIG_SOURCE.fromFile(configPath) diff --git a/bank/src/main/kotlin/tech/libeufin/bank/TalerCommon.kt b/bank/src/main/kotlin/tech/libeufin/bank/TalerCommon.kt index 389ebc8b..77a67274 100644 --- a/bank/src/main/kotlin/tech/libeufin/bank/TalerCommon.kt +++ b/bank/src/main/kotlin/tech/libeufin/bank/TalerCommon.kt @@ -72,7 +72,7 @@ class Base32Crockford32B { return encoded() } - override fun equals(other: Any?) = (other is Base32Crockford32B) && Arrays.equals(raw, other.raw) + override fun equals(other: Any?) = (other is Base32Crockford32B) && raw.contentEquals(other.raw) internal object Serializer : KSerializer<Base32Crockford32B> { override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("Base32Crockford32B", PrimitiveKind.STRING) @@ -125,7 +125,7 @@ class Base32Crockford64B { return encoded() } - override fun equals(other: Any?) = (other is Base32Crockford64B) && Arrays.equals(raw, other.raw) + override fun equals(other: Any?) = (other is Base32Crockford64B) && raw.contentEquals(other.raw) internal object Serializer : KSerializer<Base32Crockford64B> { override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("Base32Crockford64B", PrimitiveKind.STRING) diff --git a/bank/src/main/kotlin/tech/libeufin/bank/TalerMessage.kt b/bank/src/main/kotlin/tech/libeufin/bank/TalerMessage.kt index 1d7c5efa..0464e1a7 100644 --- a/bank/src/main/kotlin/tech/libeufin/bank/TalerMessage.kt +++ b/bank/src/main/kotlin/tech/libeufin/bank/TalerMessage.kt @@ -82,7 +82,7 @@ enum class Operation { @Serializable(with = Option.Serializer::class) sealed class Option<out T> { - object None : Option<Nothing>() + data object None : Option<Nothing>() data class Some<T>(val value: T) : Option<T>() fun get(): T? { @@ -209,7 +209,7 @@ data class TokenRequest( ) @Serializable -sealed class MonitorResponse { +sealed interface MonitorResponse { abstract val talerInCount: Long abstract val talerInVolume: TalerAmount abstract val talerOutCount: Long @@ -223,7 +223,7 @@ data class MonitorNoConversion( override val talerInVolume: TalerAmount, override val talerOutCount: Long, override val talerOutVolume: TalerAmount -) : MonitorResponse() +) : MonitorResponse @Serializable @SerialName("with-conversions") @@ -238,7 +238,7 @@ data class MonitorWithConversion( override val talerInVolume: TalerAmount, override val talerOutCount: Long, override val talerOutVolume: TalerAmount -) : MonitorResponse() +) : MonitorResponse /** * Convenience type to get bank account information diff --git a/bank/src/main/kotlin/tech/libeufin/bank/auth/auth.kt b/bank/src/main/kotlin/tech/libeufin/bank/auth/auth.kt index b7b5befe..93baecc5 100644 --- a/bank/src/main/kotlin/tech/libeufin/bank/auth/auth.kt +++ b/bank/src/main/kotlin/tech/libeufin/bank/auth/auth.kt @@ -87,9 +87,7 @@ fun Route.auth(db: Database, scope: TokenScope, allowAdmin: Boolean = false, req intercept(callback) { val authLogin = context.authenticateBankRequest(db, scope) if (requireAdmin && authLogin != "admin") { - if (authLogin != "admin") { - throw unauthorized("Only administrator allowed") - } + throw unauthorized("Only administrator allowed") } else { val hasRight = authLogin == username || (allowAdmin && authLogin == "admin"); if (!hasRight) { diff --git a/bank/src/main/kotlin/tech/libeufin/bank/db/AccountDAO.kt b/bank/src/main/kotlin/tech/libeufin/bank/db/AccountDAO.kt index cfd65156..4261a53c 100644 --- a/bank/src/main/kotlin/tech/libeufin/bank/db/AccountDAO.kt +++ b/bank/src/main/kotlin/tech/libeufin/bank/db/AccountDAO.kt @@ -209,14 +209,14 @@ class AccountDAO(private val db: Database) { } /** Result status of customer account patch */ - sealed class AccountPatchResult { - data object UnknownAccount: AccountPatchResult() - data object NonAdminName: AccountPatchResult() - data object NonAdminCashout: AccountPatchResult() - data object NonAdminDebtLimit: AccountPatchResult() - data object MissingTanInfo: AccountPatchResult() - data class TanRequired(val channel: TanChannel?, val info: String?): AccountPatchResult() - data object Success: AccountPatchResult() + sealed interface AccountPatchResult { + data object UnknownAccount: AccountPatchResult + data object NonAdminName: AccountPatchResult + data object NonAdminCashout: AccountPatchResult + data object NonAdminDebtLimit: AccountPatchResult + data object MissingTanInfo: AccountPatchResult + data class TanRequired(val channel: TanChannel?, val info: String?): AccountPatchResult + data object Success: AccountPatchResult } /** Change account [login] informations */ diff --git a/bank/src/main/kotlin/tech/libeufin/bank/db/CashoutDAO.kt b/bank/src/main/kotlin/tech/libeufin/bank/db/CashoutDAO.kt index 25e6ed61..2033e101 100644 --- a/bank/src/main/kotlin/tech/libeufin/bank/db/CashoutDAO.kt +++ b/bank/src/main/kotlin/tech/libeufin/bank/db/CashoutDAO.kt @@ -28,15 +28,15 @@ import tech.libeufin.bank.* /** Data access logic for cashout operations */ class CashoutDAO(private val db: Database) { /** Result of cashout operation creation */ - sealed class CashoutCreationResult { - data class Success(val id: Long): CashoutCreationResult() - object BadConversion: CashoutCreationResult() - object AccountNotFound: CashoutCreationResult() - object AccountIsExchange: CashoutCreationResult() - object BalanceInsufficient: CashoutCreationResult() - object RequestUidReuse: CashoutCreationResult() - object NoCashoutPayto: CashoutCreationResult() - object TanRequired: CashoutCreationResult() + sealed interface CashoutCreationResult { + data class Success(val id: Long): CashoutCreationResult + data object BadConversion: CashoutCreationResult + data object AccountNotFound: CashoutCreationResult + data object AccountIsExchange: CashoutCreationResult + data object BalanceInsufficient: CashoutCreationResult + data object RequestUidReuse: CashoutCreationResult + data object NoCashoutPayto: CashoutCreationResult + data object TanRequired: CashoutCreationResult } /** Create a new cashout operation */ diff --git a/bank/src/main/kotlin/tech/libeufin/bank/db/ConversionDAO.kt b/bank/src/main/kotlin/tech/libeufin/bank/db/ConversionDAO.kt index fc46b91e..bb311eba 100644 --- a/bank/src/main/kotlin/tech/libeufin/bank/db/ConversionDAO.kt +++ b/bank/src/main/kotlin/tech/libeufin/bank/db/ConversionDAO.kt @@ -100,10 +100,10 @@ class ConversionDAO(private val db: Database) { } /** Result of conversions operations */ - sealed class ConversionResult { - data class Success(val converted: TalerAmount): ConversionResult() - object ToSmall: ConversionResult() - object MissingConfig: ConversionResult() + sealed interface ConversionResult { + data class Success(val converted: TalerAmount): ConversionResult + data object ToSmall: ConversionResult + data object MissingConfig: ConversionResult } /** Perform [direction] conversion of [amount] using in-db [function] */ diff --git a/bank/src/main/kotlin/tech/libeufin/bank/db/ExchangeDAO.kt b/bank/src/main/kotlin/tech/libeufin/bank/db/ExchangeDAO.kt index 474205bc..8d1ddee9 100644 --- a/bank/src/main/kotlin/tech/libeufin/bank/db/ExchangeDAO.kt +++ b/bank/src/main/kotlin/tech/libeufin/bank/db/ExchangeDAO.kt @@ -85,15 +85,15 @@ class ExchangeDAO(private val db: Database) { } /** Result of taler transfer transaction creation */ - sealed class TransferResult { + sealed interface TransferResult { /** Transaction [id] and wire transfer [timestamp] */ - data class Success(val id: Long, val timestamp: TalerProtocolTimestamp): TransferResult() - object NotAnExchange: TransferResult() - object UnknownExchange: TransferResult() - object UnknownCreditor: TransferResult() - object BothPartyAreExchange: TransferResult() - object BalanceInsufficient: TransferResult() - object ReserveUidReuse: TransferResult() + data class Success(val id: Long, val timestamp: TalerProtocolTimestamp): TransferResult + data object NotAnExchange: TransferResult + data object UnknownExchange: TransferResult + data object UnknownCreditor: TransferResult + data object BothPartyAreExchange: TransferResult + data object BalanceInsufficient: TransferResult + data object ReserveUidReuse: TransferResult } /** Perform a Taler transfer */ @@ -150,15 +150,15 @@ class ExchangeDAO(private val db: Database) { } /** Result of taler add incoming transaction creation */ - sealed class AddIncomingResult { + sealed interface AddIncomingResult { /** Transaction [id] and wire transfer [timestamp] */ - data class Success(val id: Long, val timestamp: TalerProtocolTimestamp): AddIncomingResult() - object NotAnExchange: AddIncomingResult() - object UnknownExchange: AddIncomingResult() - object UnknownDebtor: AddIncomingResult() - object BothPartyAreExchange: AddIncomingResult() - object ReservePubReuse: AddIncomingResult() - object BalanceInsufficient: AddIncomingResult() + data class Success(val id: Long, val timestamp: TalerProtocolTimestamp): AddIncomingResult + data object NotAnExchange: AddIncomingResult + data object UnknownExchange: AddIncomingResult + data object UnknownDebtor: AddIncomingResult + data object BothPartyAreExchange: AddIncomingResult + data object ReservePubReuse: AddIncomingResult + data object BalanceInsufficient: AddIncomingResult } /** Add a new taler incoming transaction */ diff --git a/bank/src/main/kotlin/tech/libeufin/bank/db/TanDAO.kt b/bank/src/main/kotlin/tech/libeufin/bank/db/TanDAO.kt index 3594b188..d36045d0 100644 --- a/bank/src/main/kotlin/tech/libeufin/bank/db/TanDAO.kt +++ b/bank/src/main/kotlin/tech/libeufin/bank/db/TanDAO.kt @@ -56,9 +56,9 @@ class TanDAO(private val db: Database) { } /** Result of TAN challenge transmission */ - sealed class TanSendResult { - data class Success(val tanInfo: String, val tanChannel: TanChannel, val tanCode: String?): TanSendResult() - object NotFound: TanSendResult() + sealed interface TanSendResult { + data class Success(val tanInfo: String, val tanChannel: TanChannel, val tanCode: String?): TanSendResult + data object NotFound: TanSendResult } /** Request TAN challenge transmission */ diff --git a/bank/src/main/kotlin/tech/libeufin/bank/db/TransactionDAO.kt b/bank/src/main/kotlin/tech/libeufin/bank/db/TransactionDAO.kt index 1b996f5a..6dd9d364 100644 --- a/bank/src/main/kotlin/tech/libeufin/bank/db/TransactionDAO.kt +++ b/bank/src/main/kotlin/tech/libeufin/bank/db/TransactionDAO.kt @@ -31,14 +31,14 @@ private val logger: Logger = LoggerFactory.getLogger("libeufin-bank-tx-dao") /** Data access logic for transactions */ class TransactionDAO(private val db: Database) { /** Result status of bank transaction creation .*/ - sealed class BankTransactionResult { - data class Success(val id: Long): BankTransactionResult() - object UnknownCreditor: BankTransactionResult() - object AdminCreditor: BankTransactionResult() - object UnknownDebtor: BankTransactionResult() - object BothPartySame: BankTransactionResult() - object BalanceInsufficient: BankTransactionResult() - object TanRequired: BankTransactionResult() + sealed interface BankTransactionResult { + data class Success(val id: Long): BankTransactionResult + data object UnknownCreditor: BankTransactionResult + data object AdminCreditor: BankTransactionResult + data object UnknownDebtor: BankTransactionResult + data object BothPartySame: BankTransactionResult + data object BalanceInsufficient: BankTransactionResult + data object TanRequired: BankTransactionResult } /** Create a new transaction */ diff --git a/bank/src/main/kotlin/tech/libeufin/bank/db/WithdrawalDAO.kt b/bank/src/main/kotlin/tech/libeufin/bank/db/WithdrawalDAO.kt index 72b92490..1280e79f 100644 --- a/bank/src/main/kotlin/tech/libeufin/bank/db/WithdrawalDAO.kt +++ b/bank/src/main/kotlin/tech/libeufin/bank/db/WithdrawalDAO.kt @@ -90,13 +90,13 @@ class WithdrawalDAO(private val db: Database) { } /** Result withdrawal operation selection */ - sealed class WithdrawalSelectionResult { - data class Success(val status: WithdrawalStatus): WithdrawalSelectionResult() - data object UnknownOperation: WithdrawalSelectionResult() - data object AlreadySelected: WithdrawalSelectionResult() - data object RequestPubReuse: WithdrawalSelectionResult() - data object UnknownAccount: WithdrawalSelectionResult() - data object AccountIsNotExchange: WithdrawalSelectionResult() + sealed interface WithdrawalSelectionResult { + data class Success(val status: WithdrawalStatus): WithdrawalSelectionResult + data object UnknownOperation: WithdrawalSelectionResult + data object AlreadySelected: WithdrawalSelectionResult + data object RequestPubReuse: WithdrawalSelectionResult + data object UnknownAccount: WithdrawalSelectionResult + data object AccountIsNotExchange: WithdrawalSelectionResult } /** Set details ([exchangePayto] & [reservePub]) for withdrawal operation [uuid] */ diff --git a/common/src/main/kotlin/Client.kt b/common/src/main/kotlin/Client.kt index b65f59db..785e3f32 100644 --- a/common/src/main/kotlin/Client.kt +++ b/common/src/main/kotlin/Client.kt @@ -40,7 +40,7 @@ class JsonBuilder(from: JsonObject) { infix inline fun <reified T> String.to(v: T) { val json = Json.encodeToJsonElement(kotlinx.serialization.serializer<T>(), v); - content.put(this, json) + content[this] = json } } diff --git a/common/src/main/kotlin/TalerConfig.kt b/common/src/main/kotlin/TalerConfig.kt index 26fd4c5f..98733268 100644 --- a/common/src/main/kotlin/TalerConfig.kt +++ b/common/src/main/kotlin/TalerConfig.kt @@ -133,9 +133,9 @@ class TalerConfig internal constructor( val content = try { file.readText() } catch (e: Exception) { - when { - e is NoSuchFileException -> throw Exception("Could not read config at '$file': no such file") - e is AccessDeniedException -> throw Exception("Could not read config at '$file': permission denied") + when (e) { + is NoSuchFileException -> throw Exception("Could not read config at '$file': no such file") + is AccessDeniedException -> throw Exception("Could not read config at '$file': permission denied") else -> throw Exception("Could not read config at '$file'", e) } } diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/KeyFiles.kt b/nexus/src/main/kotlin/tech/libeufin/nexus/KeyFiles.kt index 602b586e..540257fa 100644 --- a/nexus/src/main/kotlin/tech/libeufin/nexus/KeyFiles.kt +++ b/nexus/src/main/kotlin/tech/libeufin/nexus/KeyFiles.kt @@ -155,9 +155,9 @@ private inline fun <reified T> loadJsonFile(path: Path, name: String): T? { val content = try { path.readText() } catch (e: Exception) { - when { - e is NoSuchFileException -> return null - e is AccessDeniedException -> throw Exception("Could not read $name at '$path': permission denied") + when (e) { + is NoSuchFileException -> return null + is AccessDeniedException -> throw Exception("Could not read $name at '$path': permission denied") else -> throw Exception("Could not read $name at '$path'", e) } } diff --git a/testbench/src/test/kotlin/IntegrationTest.kt b/testbench/src/test/kotlin/IntegrationTest.kt index 1150adb1..a66df71c 100644 --- a/testbench/src/test/kotlin/IntegrationTest.kt +++ b/testbench/src/test/kotlin/IntegrationTest.kt @@ -304,7 +304,7 @@ class IntegrationTest { }.assertOkJson<IncomingHistory> { val tx = it.incoming_transactions.first() assertEquals(converted, tx.amount) - assert(Arrays.equals(reservePub, tx.reserve_pub.raw)) + assert(reservePub.contentEquals(tx.reserve_pub.raw)) } } |