commit bb37278c557b6d3a6b4b0eee1937cbf1a8813e91
parent bebf18afa23d109fdde22ed73b376aa33cea1531
Author: Martin Schanzenbach <schanzen@gnunet.org>
Date: Tue, 15 Jul 2025 16:01:19 +0200
Actually return timestamps and not relative time ranges in interval statisitics API to fit with API spec
Diffstat:
2 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/src/backenddb/pg_lookup_statistics_amount_by_interval.c b/src/backenddb/pg_lookup_statistics_amount_by_interval.c
@@ -110,16 +110,16 @@ lookup_statistics_amount_by_interval_cb (void *cls,
struct LookupAmountStatisticsContext *tflc = cls;
struct TALER_Amount *amounts = NULL;
char *resp_desc = NULL;
- uint64_t cur_interval_start_epoch;
+ uint64_t cur_interval_start_ago;
unsigned int amounts_len = 0;
for (unsigned int i = 0; i < num_results; i++)
{
struct TALER_Amount cumulative_amount;
- uint64_t interval_start_epoch;
+ uint64_t interval_start_ago;
struct GNUNET_PQ_ResultSpec rs[] = {
GNUNET_PQ_result_spec_uint64 ("range",
- &interval_start_epoch),
+ &interval_start_ago),
TALER_PQ_result_spec_amount_with_currency ("rvalue",
&cumulative_amount),
GNUNET_PQ_result_spec_end
@@ -136,11 +136,12 @@ lookup_statistics_amount_by_interval_cb (void *cls,
}
/* Call callback if the bucket changed */
- if (interval_start_epoch != cur_interval_start_epoch)
+ if (interval_start_ago != cur_interval_start_ago)
{
struct GNUNET_TIME_Timestamp interval_start;
- interval_start = GNUNET_TIME_timestamp_from_s (cur_interval_start_epoch);
+ interval_start = GNUNET_TIME_timestamp_get ();
+ interval_start.abs_time.abs_value_us -= interval_start_ago * 1000 * 1000;
tflc->cb (tflc->cb_cls,
resp_desc,
interval_start,
@@ -151,7 +152,7 @@ lookup_statistics_amount_by_interval_cb (void *cls,
0);
GNUNET_free (resp_desc);
}
- cur_interval_start_epoch = interval_start_epoch;
+ cur_interval_start_ago = interval_start_ago;
GNUNET_array_append (amounts,
amounts_len,
cumulative_amount);
@@ -161,7 +162,7 @@ lookup_statistics_amount_by_interval_cb (void *cls,
{
struct GNUNET_TIME_Timestamp interval_start;
- interval_start = GNUNET_TIME_timestamp_from_s (cur_interval_start_epoch);
+ interval_start = GNUNET_TIME_timestamp_from_s (cur_interval_start_ago);
tflc->cb (tflc->cb_cls,
resp_desc,
interval_start,
diff --git a/src/backenddb/pg_lookup_statistics_counter_by_interval.c b/src/backenddb/pg_lookup_statistics_counter_by_interval.c
@@ -112,10 +112,10 @@ lookup_statistics_counter_by_interval_cb (void *cls,
for (unsigned int i = 0; i < num_results; i++)
{
uint64_t cumulative_number;
- uint64_t interval_start_epoch;
+ uint64_t interval_start_ago;
struct GNUNET_PQ_ResultSpec rs[] = {
GNUNET_PQ_result_spec_uint64 ("range",
- &interval_start_epoch),
+ &interval_start_ago),
GNUNET_PQ_result_spec_uint64 ("rvalue",
&cumulative_number),
GNUNET_PQ_result_spec_end
@@ -132,7 +132,8 @@ lookup_statistics_counter_by_interval_cb (void *cls,
return;
}
- interval_start = GNUNET_TIME_timestamp_from_s (interval_start_epoch);
+ interval_start = GNUNET_TIME_timestamp_get ();
+ interval_start.abs_time.abs_value_us -= interval_start_ago * 1000 * 1000;
tflc->cb (tflc->cb_cls,
tflc->description,
interval_start,