diff options
author | Torsten Grote <t@grobox.de> | 2020-07-23 15:41:50 -0300 |
---|---|---|
committer | Torsten Grote <t@grobox.de> | 2020-07-23 15:42:43 -0300 |
commit | 8eb241ccce345a35b05a6335d11306465220f66d (patch) | |
tree | fe78879b2c0cafdb9ba47f38db6a3572a7116594 /merchant-terminal/src/main/java/net/taler/merchantpos/config/MerchantConfig.kt | |
parent | 08b10a2408f958cae96ae0c674ee450a35109e8a (diff) | |
download | taler-android-8eb241ccce345a35b05a6335d11306465220f66d.tar.gz taler-android-8eb241ccce345a35b05a6335d11306465220f66d.tar.bz2 taler-android-8eb241ccce345a35b05a6335d11306465220f66d.zip |
[pos] refactor configuration fetching and validation
Diffstat (limited to 'merchant-terminal/src/main/java/net/taler/merchantpos/config/MerchantConfig.kt')
-rw-r--r-- | merchant-terminal/src/main/java/net/taler/merchantpos/config/MerchantConfig.kt | 96 |
1 files changed, 0 insertions, 96 deletions
diff --git a/merchant-terminal/src/main/java/net/taler/merchantpos/config/MerchantConfig.kt b/merchant-terminal/src/main/java/net/taler/merchantpos/config/MerchantConfig.kt deleted file mode 100644 index 0c7e3b7..0000000 --- a/merchant-terminal/src/main/java/net/taler/merchantpos/config/MerchantConfig.kt +++ /dev/null @@ -1,96 +0,0 @@ -/* - * This file is part of GNU Taler - * (C) 2020 Taler Systems S.A. - * - * GNU Taler is free software; you can redistribute it and/or modify it under the - * terms of the GNU General Public License as published by the Free Software - * Foundation; either version 3, or (at your option) any later version. - * - * GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - * A PARTICULAR PURPOSE. See the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along with - * GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/> - */ - -package net.taler.merchantpos.config - -import android.net.Uri -import com.fasterxml.jackson.annotation.JsonIgnore -import com.fasterxml.jackson.annotation.JsonProperty -import net.taler.common.Amount -import net.taler.common.ContractProduct -import net.taler.common.Product -import net.taler.common.TalerUtils -import java.util.UUID - -data class Config( - val configUrl: String, - val username: String, - val password: String -) { - fun isValid() = !configUrl.isBlank() - fun hasPassword() = !password.isBlank() -} - -data class MerchantConfig( - @JsonProperty("base_url") - val baseUrl: String, - val instance: String, - @JsonProperty("api_key") - val apiKey: String, - val currency: String? -) { - fun urlFor(endpoint: String, params: Map<String, String>?): String { - val uriBuilder = Uri.parse(baseUrl).buildUpon() - uriBuilder.appendPath(endpoint) - params?.forEach { - uriBuilder.appendQueryParameter(it.key, it.value) - } - return uriBuilder.toString() - } - fun convert() = net.taler.merchantlib.MerchantConfig( - baseUrl, instance, apiKey - ) -} - -data class Category( - val id: Int, - val name: String, - @JsonProperty("name_i18n") - val nameI18n: Map<String, String>? -) { - var selected: Boolean = false - val localizedName: String get() = TalerUtils.getLocalizedString(nameI18n, name) -} - -data class ConfigProduct( - @JsonIgnore - val id: String = UUID.randomUUID().toString(), - override val productId: String?, - override val description: String, - override val descriptionI18n: Map<String, String>?, - override val price: Amount, - override val location: String?, - override val image: String?, - val categories: List<Int>, - @JsonIgnore - val quantity: Int = 0 -) : Product() { - @get:JsonIgnore - val totalPrice by lazy { price * quantity } - - fun toContractProduct() = ContractProduct( - productId = productId, - description = description, - descriptionI18n = descriptionI18n, - price = price, - location = location, - image = image, - quantity = quantity - ) - - override fun equals(other: Any?) = other is ConfigProduct && id == other.id - override fun hashCode() = id.hashCode() -} |