From 9b33452ad515ef8bae0552fd5df8fd29146b7dba Mon Sep 17 00:00:00 2001 From: Marcello Stanisci Date: Thu, 11 Apr 2019 18:06:19 +0200 Subject: [PATCH] Introduce new "history range" wire API. --- src/include/taler_wire_plugin.h | 24 +++++++++++++++++ src/wire-plugins/plugin_wire_taler-bank.c | 32 +++++++++++++++++++++++ 2 files changed, 56 insertions(+) diff --git a/src/include/taler_wire_plugin.h b/src/include/taler_wire_plugin.h index 57122a437..ff89593eb 100644 --- a/src/include/taler_wire_plugin.h +++ b/src/include/taler_wire_plugin.h @@ -310,6 +310,30 @@ struct TALER_WIRE_Plugin TALER_WIRE_HistoryResultCallback hres_cb, void *hres_cb_cls); + /** + * Query transfer history of an account. The query is based on + * the dates where the wire transfers got settled at the bank. + * + * @param cls the @e cls of this struct with the plugin-specific state + * @param account_section specifies the configuration section which + * identifies the account for which we should get the history + * @param direction what kinds of wire transfers should be returned + * @param start_date each history entry in the result will be time + * stamped after, or at this date. + * @param end_date each history entry in the result will be time + * stamped before, or at this date. + * @param hres_cb the callback to call with the transaction history + * @param hres_cb_cls closure for the above callback + * @param return the operation handle, or NULL on errors. + */ + struct TALER_WIRE_HistoryHandle * + (*get_history_range) (void *cls, + const char *account_section, + enum TALER_BANK_Direction direction, + struct GNUNET_TIME_Absolute start_date, + struct GNUNET_TIME_Absolute end_date, + TALER_WIRE_HistoryResultCallback hres_cb, + void *hres_cb_cls); /** * Cancel going over the account's history. diff --git a/src/wire-plugins/plugin_wire_taler-bank.c b/src/wire-plugins/plugin_wire_taler-bank.c index a35fb5d2f..0a6db57a5 100644 --- a/src/wire-plugins/plugin_wire_taler-bank.c +++ b/src/wire-plugins/plugin_wire_taler-bank.c @@ -1131,6 +1131,37 @@ taler_bank_get_history (void *cls, } + +/** + * Query transfer history of an account. The query is based on + * the dates where the wire transfers got settled at the bank. + * + * @param cls the @e cls of this struct with the plugin-specific state + * @param account_section specifies the configuration section which + * identifies the account for which we should get the history + * @param direction what kinds of wire transfers should be returned + * @param start_date each history entry in the result will be time + * stamped after, or at this date. + * @param end_date each history entry in the result will be time + * stamped before, or at this date. + * @param hres_cb the callback to call with the transaction history + * @param hres_cb_cls closure for the above callback + * @param return the operation handle, or NULL on errors. + */ +static struct TALER_WIRE_HistoryHandle * +taler_bank_get_history_range (void *cls, + const char *account_section, + enum TALER_BANK_Direction direction, + struct GNUNET_TIME_Absolute start_date, + struct GNUNET_TIME_Absolute end_date, + TALER_WIRE_HistoryResultCallback hres_cb, + void *hres_cb_cls) +{ + GNUNET_break (0); + return NULL; +} + + /** * Context for a rejection operation. */ @@ -1333,6 +1364,7 @@ libtaler_plugin_wire_taler_bank_init (void *cls) plugin->execute_wire_transfer = &taler_bank_execute_wire_transfer; plugin->execute_wire_transfer_cancel = &taler_bank_execute_wire_transfer_cancel; plugin->get_history = &taler_bank_get_history; + plugin->get_history_range = &taler_bank_get_history_range; plugin->get_history_cancel = &taler_bank_get_history_cancel; plugin->reject_transfer = &taler_bank_reject_transfer; plugin->reject_transfer_cancel = &taler_bank_reject_transfer_cancel;