exchange

Base system with REST service to issue digital coins, run by the payment service provider
Log | Files | Refs | Submodules | README | LICENSE

insert_successor_measure.h (2268B)


      1 /*
      2    This file is part of TALER
      3    Copyright (C) 2022, 2023 Taler Systems SA
      4 
      5    TALER is free software; you can redistribute it and/or modify it under the
      6    terms of the GNU General Public License as published by the Free Software
      7    Foundation; either version 3, or (at your option) any later version.
      8 
      9    TALER is distributed in the hope that it will be useful, but WITHOUT ANY
     10    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
     11    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
     12 
     13    You should have received a copy of the GNU General Public License along with
     14    TALER; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
     15  */
     16 /**
     17  * @file src/include/exchange-database/insert_successor_measure.h
     18  * @brief implementation of the insert_successor_measure function for Postgres
     19  * @author Florian Dold
     20  */
     21 #ifndef EXCHANGE_DATABASE_INSERT_SUCCESSOR_MEASURE_H
     22 #define EXCHANGE_DATABASE_INSERT_SUCCESSOR_MEASURE_H
     23 
     24 #include "taler/taler_util.h"
     25 #include "exchangedb_lib.h"
     26 
     27 
     28 /**
     29  * Insert a successor measure for an account, replacing whatever
     30  * legitimization measures and outcome are currently active for it.
     31  * A decision that is older than the currently active one is ignored.
     32  *
     33  * Primary test table: `legitimization_measures`
     34  * (see test_legitimization_measures.c).
     35  *
     36  * @param pg the database context
     37  * @param h_payto normalized payto hash of the account to change
     38  * @param decision_time when was the decision made
     39  * @param new_measure_name name of the successor measure, NULL to
     40  *        revert the account to the default rules
     41  * @param jmeasures measures to apply, NULL to revert to the default rules
     42  * @param[out] unknown_account set to true if @a h_payto is not known
     43  * @param[out] last_date set to the time of the most recent decision that
     44  *        is already on file for the account
     45  * @return transaction status
     46  */
     47 enum GNUNET_DB_QueryStatus
     48 TALER_EXCHANGEDB_insert_successor_measure (
     49   struct TALER_EXCHANGEDB_PostgresContext *pg,
     50   const struct TALER_NormalizedPaytoHashP *h_payto,
     51   struct GNUNET_TIME_Timestamp decision_time,
     52   const char *new_measure_name,
     53   const json_t *jmeasures,
     54   bool *unknown_account,
     55   struct GNUNET_TIME_Timestamp *last_date);
     56 
     57 
     58 #endif