donau

Donation authority for GNU Taler (experimental)
Log | Files | Refs | Submodules | README | LICENSE

insert_receipts_submitted.h (2291B)


      1 /*
      2    This file is part of TALER
      3    Copyright (C) 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/donau-database/insert_receipts_submitted.h
     18  * @brief implementation of the insert_receipts_submitted function for Postgres
     19  * @author Johannes Casaburi
     20  */
     21 #ifndef DONAU_DATABASE_INSERT_RECEIPTS_SUBMITTED_H
     22 #define DONAU_DATABASE_INSERT_RECEIPTS_SUBMITTED_H
     23 
     24 #include "donaudb_lib.h"
     25 
     26 
     27 /**
     28  * Insert submitted donation receipt from the donor.
     29  *
     30  * @param ctx closure
     31  * @param h_donor_tax_id salted hash of the donors tax number
     32  * @param num_dr number of donation receipts
     33  * @param donation_receipts array of donation receipts
     34  * @param donation_year year of the donation
     35  * @param[out] conflict_index set to the index of the first receipt that
     36  *             could NOT be stored because a *different* receipt with the
     37  *             same nonce already exists, or to @a num_dr if all receipts
     38  *             were stored (or were idempotent repetitions of this donor's
     39  *             own receipts)
     40  * @param[out] unknown_du_index set to the index of the first receipt whose
     41  *             @e h_donation_unit_pub is not in the donation_units table, or
     42  *             to @a num_dr if all units are known; if this is not @a num_dr
     43  *             then *nothing* was written and @a conflict_index is unset
     44  * @return transaction status code
     45  */
     46 enum GNUNET_DB_QueryStatus
     47 DONAUDB_insert_receipts_submitted (
     48   struct DONAUDB_PostgresContext *ctx,
     49   struct DONAU_HashDonorTaxId *h_donor_tax_id,
     50   size_t num_dr,
     51   const struct DONAU_DonationReceipt donation_receipts[static num_dr],
     52   uint64_t donation_year,
     53   size_t *conflict_index,
     54   size_t *unknown_du_index);
     55 
     56 #endif