merchant

Merchant backend to process payments, run by merchants
Log | Files | Refs | Submodules | README | LICENSE

pg_lookup_pending_webhooks.h (2824B)


      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 backenddb/pg_lookup_pending_webhooks.h
     18  * @brief implementation of the lookup_pending_webhooks function for Postgres
     19  * @author Iván Ávalos
     20  */
     21 #ifndef PG_LOOKUP_PENDING_WEBHOOKS_H
     22 #define PG_LOOKUP_PENDING_WEBHOOKS_H
     23 
     24 #include <taler/taler_util.h>
     25 #include <taler/taler_json_lib.h>
     26 #include "taler_merchantdb_plugin.h"
     27 
     28 /**
     29  * Lookup the webhook that need to be send in priority.
     30  * send.
     31  *
     32  * @param cls closure
     33  * @param cb pending webhook callback
     34  * @param cb_cls callback closure
     35  */
     36 // WHERE next_attempt <= now ORDER BY next_attempt ASC
     37 enum GNUNET_DB_QueryStatus
     38 TMH_PG_lookup_pending_webhooks (void *cls,
     39                                 TALER_MERCHANTDB_PendingWebhooksCallback cb,
     40                                 void *cb_cls);
     41 
     42 
     43 /**
     44  * Lookup future webhook in the pending webhook that need to be send.
     45  * With that we can know how long the system can 'sleep'.
     46  *
     47  * @param cls closure
     48  * @param cb pending webhook callback
     49  * @param cb_cls callback closure
     50  */
     51 // ORDER BY next_attempt ASC LIMIT 1
     52 enum GNUNET_DB_QueryStatus
     53 TMH_PG_lookup_future_webhook (void *cls,
     54                               TALER_MERCHANTDB_PendingWebhooksCallback cb,
     55                               void *cb_cls);
     56 
     57 
     58 /**
     59    * Lookup all the webhooks in the pending webhook.
     60    * Use by the administrator
     61    *
     62    * @param cls closure
     63    * @param instance_id to lookup webhooks for this instance particularly
     64    * @param min_row to see the list of the pending webhook that it is started with this minimum row.
     65    * @param max_results to see the list of the pending webhook that it is end with this max results.
     66    * @param cb pending webhook callback
     67    * @param cb_cls callback closure
     68    */
     69 // WHERE webhook_pending_serial > min_row ORDER BY webhook_pending_serial ASC LIMIT max_results
     70 enum GNUNET_DB_QueryStatus
     71 TMH_PG_lookup_all_webhooks (void *cls,
     72                             const char *instance_id,
     73                             uint64_t min_row,
     74                             uint32_t max_results,
     75                             TALER_MERCHANTDB_PendingWebhooksCallback cb,
     76                             void *cb_cls);
     77 
     78 #endif