diff options
| author | Christian Grothoff <christian@grothoff.org> | 2017-03-14 18:00:17 +0100 | 
|---|---|---|
| committer | Christian Grothoff <christian@grothoff.org> | 2017-03-14 18:00:17 +0100 | 
| commit | 296f919ce4dcd9123c402d52d18afae7e353b11a (patch) | |
| tree | 13b0151a4f29186e95bff617d6d19ddb17a67d6b /src/auditordb | |
| parent | 6d798cecba4902623ca2769b30f6b1a0f554d83e (diff) | |
more work on auditor, listing open TODOs
Diffstat (limited to 'src/auditordb')
| -rw-r--r-- | src/auditordb/plugin_auditordb_postgres.c | 49 | 
1 files changed, 49 insertions, 0 deletions
| diff --git a/src/auditordb/plugin_auditordb_postgres.c b/src/auditordb/plugin_auditordb_postgres.c index 81c1b436..65da0bf1 100644 --- a/src/auditordb/plugin_auditordb_postgres.c +++ b/src/auditordb/plugin_auditordb_postgres.c @@ -649,6 +649,13 @@ postgres_prepare (PGconn *db_conn)             " WHERE reserve_pub=$1 AND master_pub=$2;",             2, NULL); +  /* Used in #postgres_del_reserve_info() */ +  PREPARE ("auditor_reserves_delete", +           "DELETE" +           " FROM auditor_reserves" +           " WHERE reserve_pub=$1 AND master_pub=$2;", +           2, NULL); +    /* Used in #postgres_insert_reserve_summary() */    PREPARE ("auditor_reserve_balance_insert",             "INSERT INTO auditor_reserve_balance" @@ -1651,6 +1658,47 @@ postgres_update_reserve_info (void *cls,  /** + * Delete information about a reserve. + * + * @param cls the @e cls of this struct with the plugin-specific state + * @param session connection to use + * @param reserve_pub public key of the reserve + * @param master_pub master public key of the exchange + * @return #GNUNET_OK on success; #GNUNET_NO if there is no known + *         record about this reserve; #GNUNET_SYSERR on failure + */ +static int +postgres_del_reserve_info (void *cls, +                           struct TALER_AUDITORDB_Session *session, +                           const struct TALER_ReservePublicKeyP *reserve_pub, +                           const struct TALER_MasterPublicKeyP *master_pub) +{ +  struct GNUNET_PQ_QueryParam params[] = { +    GNUNET_PQ_query_param_auto_from_type (reserve_pub), +    GNUNET_PQ_query_param_auto_from_type (master_pub), +    GNUNET_PQ_query_param_end +  }; +  PGresult *result; +  int ret; + +  result = GNUNET_PQ_exec_prepared (session->conn, +                                    "auditor_reserves_delete", +                                    params); +  ret = PQresultStatus (result); +  if (PGRES_COMMAND_OK != ret) +  { +    BREAK_DB_ERR (result); +    PQclear (result); +    return GNUNET_SYSERR; +  } +  if (0 == strcmp ("0", +                   PQcmdTuples (result))) +    return GNUNET_NO; +  return GNUNET_OK; +} + + +/**   * Get information about a reserve.   *   * @param cls the @e cls of this struct with the plugin-specific state @@ -3110,6 +3158,7 @@ libtaler_plugin_auditordb_postgres_init (void *cls)    plugin->update_auditor_progress = &postgres_update_auditor_progress;    plugin->insert_auditor_progress = &postgres_insert_auditor_progress; +  plugin->del_reserve_info = &postgres_del_reserve_info;    plugin->get_reserve_info = &postgres_get_reserve_info;    plugin->update_reserve_info = &postgres_update_reserve_info;    plugin->insert_reserve_info = &postgres_insert_reserve_info; | 
