From 8eb241ccce345a35b05a6335d11306465220f66d Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Thu, 23 Jul 2020 15:41:50 -0300 Subject: [pos] refactor configuration fetching and validation --- .../net/taler/merchantpos/config/MerchantConfig.kt | 96 ---------------------- 1 file changed, 96 deletions(-) delete mode 100644 merchant-terminal/src/main/java/net/taler/merchantpos/config/MerchantConfig.kt (limited to 'merchant-terminal/src/main/java/net/taler/merchantpos/config/MerchantConfig.kt') 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 - */ - -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 { - 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? -) { - 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?, - override val price: Amount, - override val location: String?, - override val image: String?, - val categories: List, - @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() -} -- cgit v1.2.3