commit ff9d1def4acae789683f3a86abc1f4c3ef87bce1
parent 2b39c6127d011d8a328f4c209fe77fcb8b2601f3
Author: Tellenbach Reto <tellr1@bfh.ch>
Date: Fri, 22 May 2026 13:01:37 +0200
[chg] thinker_TalerAPI: Load all configs
Diffstat:
1 file changed, 80 insertions(+), 76 deletions(-)
diff --git a/thinker/taler_api/src/taler-digitizer.c b/thinker/taler_api/src/taler-digitizer.c
@@ -2,16 +2,11 @@
#include "taler_digitizer_util.h"
-//#include <taler/taler_util.h>
-//#include <taler/taler_curl_lib.h>
-//#include <curl/curl.h>
-
-//#include "error_codes.h"
-
-
-
-#define TALER_EXCHANGE_URL "https://exchange.demo.taler.net"
-
+/**
+ * Time unit for PERSON_WITHDRAL_PERIOD config.
+ * Normal in Days but can be changed for testing
+ */
+#define DIGITIZER_PERSON_WITHDRAWL_PERIOD_TIME_UNIT GNUNET_TIME_UNIT_DAYS
/**
* Global return value
@@ -23,41 +18,41 @@ static int global_ret;
*/
static int enable_diagnostics;
-/**
- * Taler Backend url read from configuration file
- */
-static char *backend_base_url;
-
-struct TALER_DIGITIYER_Config
+struct TALER_DIGITIZER_Config
{
- union
- {
+ /**
+ * Taler Backend url read from configuration file
+ */
+ char *backend_base_url;
+
+ /**
+ * Taler Backend url read from configuration file
+ */
+ char *currency;
+
+ /**
+ * Taler Backend url read from configuration file
+ */
+ unsigned long long backend_min_balance;
+
+ /**
+ * Taler Backend url read from configuration file
+ */
+ unsigned long long person_withdrawllimit;
+
+ /**
+ * Taler Backend url read from configuration file
+ */
+ struct GNUNET_TIME_Relative person_withdrawl_period;
+
+ /**
+ * Taler Backend url read from configuration file
+ */
+ enum GNUNET_GenericReturnValue kyc_functionality;
- struct
- {
- /**
- * Protocol version of the exchange, libtool-style "current:revision:age".
- */
- const char *version;
-
- /**
- * Currency supported by this exchange (e.g. "USD" or "EUR").
- */
- const char *currency;
-
-
- /**
- * NULL-terminated array of supported KYC requirement names.
- * @deprecated since protocol v24.
- */
- const char **supported_kyc_requirements;
-
- } ok;
- } details;
-
};
@@ -81,14 +76,17 @@ run (void *cls,
printf("Parse Config\n");
- if(enable_diagnostics)GNUNET_CONFIGURATION_enable_diagnostics (cfg);
+ struct TALER_DIGITIZER_Config digitizer_config;
+
+
+ //if(enable_diagnostics)GNUNET_CONFIGURATION_enable_diagnostics (cfg);
/* parse the devices, if no config entry is found, a standard is used */
if (GNUNET_OK !=
GNUNET_CONFIGURATION_get_value_string(cfg,
"taler-digitizer",
"BACKEND_BASE_URL",
- &backend_base_url))
+ &(digitizer_config.backend_base_url)))
{
GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR,
"taler-digitizer",
@@ -96,75 +94,81 @@ run (void *cls,
global_ret = EXIT_FAILURE;
return;
}
-
- printf("Config URl: %s \n", backend_base_url);
-}
-
- /*
if (GNUNET_OK !=
GNUNET_CONFIGURATION_get_value_string (cfg,
- "taler-mdb",
+ "taler-digitizer",
"CURRENCY",
- &digitizer_currency))
+ &(digitizer_config.currency)))
{
GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR,
- "taler-mdb",
- "BACKEND_BASE_URL");
+ "taler-digitizer",
+ "CURRENCY");
global_ret = EXIT_FAILURE;
return;
}
if (GNUNET_OK !=
- GNUNET_CONFIGURATION_get_value_string (cfg,
- "taler-mdb",
+ GNUNET_CONFIGURATION_get_value_number (cfg,
+ "taler-digitizer",
"BANK_MIN_BALANCE",
- &backend_min_balance))
+ &(digitizer_config.backend_min_balance)))
{
GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR,
- "taler-mdb",
- "BACKEND_BASE_URL");
+ "taler-digitizer",
+ "BANK_MIN_BALANCE");
global_ret = EXIT_FAILURE;
return;
}
if (GNUNET_OK !=
- GNUNET_CONFIGURATION_get_value_string (cfg,
- "taler-mdb",
+ GNUNET_CONFIGURATION_get_value_number (cfg,
+ "taler-digitizer",
"PERSON_WITHDRAWLLIMIT",
- &person_withdrawllimit))
+ &(digitizer_config.person_withdrawllimit)))
{
GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR,
- "taler-mdb",
- "BACKEND_BASE_URL");
+ "taler-digitizer",
+ "PERSON_WITHDRAWLLIMIT");
global_ret = EXIT_FAILURE;
return;
}
+ unsigned long long person_withdrawl_period_number;
+ unsigned long long *pwpn = &person_withdrawl_period_number;
if (GNUNET_OK !=
- GNUNET_CONFIGURATION_get_value_string (cfg,
- "taler-mdb",
+ GNUNET_CONFIGURATION_get_value_number (cfg,
+ "taler-digitizer",
"PERSON_WITHDRAL_PERIOD",
- &person_withdrawl_period))
+ pwpn))
{
GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR,
- "taler-mdb",
- "BACKEND_BASE_URL");
+ "taler-digitizer",
+ "PERSON_WITHDRAL_PERIOD");
global_ret = EXIT_FAILURE;
return;
}
- if (GNUNET_OK !=
- GNUNET_CONFIGURATION_get_value_string (cfg,
- "taler-mdb",
- "KYC_FUNCTIONALITY",
- &))
- {
+ else
+ {
+ digitizer_config.person_withdrawl_period = GNUNET_TIME_relative_multiply(
+ DIGITIZER_PERSON_WITHDRAWL_PERIOD_TIME_UNIT,
+ person_withdrawl_period_number);
+ }
+
+
+ digitizer_config.kyc_functionality = GNUNET_CONFIGURATION_get_value_yesno (cfg,
+ "taler-digitizer",
+ "KYC_FUNCTIONALITY");
+ if(GNUNET_SYSERR == digitizer_config.kyc_functionality)
+ {
GNUNET_log_config_missing (GNUNET_ERROR_TYPE_ERROR,
- "taler-mdb",
- "BACKEND_BASE_URL");
+ "taler-digitizer",
+ "KYC_FUNCTIONALITY");
global_ret = EXIT_FAILURE;
return;
}
- return;
+
+
+ printf("Config URl: %s \n", digitizer_config.backend_base_url);
}
-*/
+
int main(int argc, char*const*argv)