work on insert_records_by_table
This commit is contained in:
parent
136d2b2e70
commit
2906ded1a6
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of GNUnet
|
This file is part of GNUnet
|
||||||
Copyright (C) 2020, 2021, 2022 Taler Systems SA
|
Copyright (C) 2020-2023 Taler Systems SA
|
||||||
|
|
||||||
GNUnet is free software: you can redistribute it and/or modify it
|
GNUnet is free software: you can redistribute it and/or modify it
|
||||||
under the terms of the GNU Affero General Public License as published
|
under the terms of the GNU Affero General Public License as published
|
||||||
@ -1872,6 +1872,282 @@ irbt_cb_table_profit_drains (struct PostgresClosure *pg,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function called with aml_staff records to insert into table.
|
||||||
|
*
|
||||||
|
* @param pg plugin context
|
||||||
|
* @param td record to insert
|
||||||
|
*/
|
||||||
|
static enum GNUNET_DB_QueryStatus
|
||||||
|
irbt_cb_table_aml_staff (struct PostgresClosure *pg,
|
||||||
|
const struct TALER_EXCHANGEDB_TableData *td)
|
||||||
|
{
|
||||||
|
struct GNUNET_PQ_QueryParam params[] = {
|
||||||
|
GNUNET_PQ_query_param_uint64 (&td->serial),
|
||||||
|
GNUNET_PQ_query_param_auto_from_type (
|
||||||
|
&td->details.aml_staff.decider_pub),
|
||||||
|
GNUNET_PQ_query_param_auto_from_type (
|
||||||
|
&td->details.aml_staff.master_sig),
|
||||||
|
GNUNET_PQ_query_param_string (
|
||||||
|
td->details.aml_staff.decider_name),
|
||||||
|
GNUNET_PQ_query_param_bool (
|
||||||
|
td->details.aml_staff.is_active),
|
||||||
|
GNUNET_PQ_query_param_bool (
|
||||||
|
td->details.aml_staff.read_only),
|
||||||
|
GNUNET_PQ_query_param_timestamp (
|
||||||
|
&td->details.aml_staff.last_change),
|
||||||
|
GNUNET_PQ_query_param_end
|
||||||
|
};
|
||||||
|
|
||||||
|
PREPARE (pg,
|
||||||
|
"insert_into_table_aml_staff",
|
||||||
|
"INSERT INTO aml_staff"
|
||||||
|
"(aml_staff_uuid"
|
||||||
|
",decider_pub"
|
||||||
|
",master_sig"
|
||||||
|
",decider_name"
|
||||||
|
",is_active"
|
||||||
|
",read_only"
|
||||||
|
",last_change"
|
||||||
|
") VALUES "
|
||||||
|
"($1, $2, $3, $4, $5, $6, $7);");
|
||||||
|
return GNUNET_PQ_eval_prepared_non_select (pg->conn,
|
||||||
|
"insert_into_table_aml_staff",
|
||||||
|
params);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function called with aml_history records to insert into table.
|
||||||
|
*
|
||||||
|
* @param pg plugin context
|
||||||
|
* @param td record to insert
|
||||||
|
*/
|
||||||
|
static enum GNUNET_DB_QueryStatus
|
||||||
|
irbt_cb_table_aml_history (struct PostgresClosure *pg,
|
||||||
|
const struct TALER_EXCHANGEDB_TableData *td)
|
||||||
|
{
|
||||||
|
uint32_t status32 = td->details.aml_history.new_status;
|
||||||
|
struct GNUNET_PQ_QueryParam params[] = {
|
||||||
|
GNUNET_PQ_query_param_uint64 (&td->serial),
|
||||||
|
GNUNET_PQ_query_param_auto_from_type (
|
||||||
|
&td->details.aml_history.h_payto),
|
||||||
|
TALER_PQ_query_param_amount (
|
||||||
|
&td->details.aml_history.new_threshold),
|
||||||
|
GNUNET_PQ_query_param_uint32 (
|
||||||
|
&status32),
|
||||||
|
GNUNET_PQ_query_param_timestamp (
|
||||||
|
&td->details.aml_history.decision_time),
|
||||||
|
GNUNET_PQ_query_param_string (
|
||||||
|
td->details.aml_history.justification),
|
||||||
|
(NULL == td->details.aml_history.kyc_requirements)
|
||||||
|
? GNUNET_PQ_query_param_null ()
|
||||||
|
: GNUNET_PQ_query_param_string (
|
||||||
|
td->details.aml_history.kyc_requirements),
|
||||||
|
GNUNET_PQ_query_param_uint64 (
|
||||||
|
&td->details.aml_history.kyc_req_row),
|
||||||
|
GNUNET_PQ_query_param_auto_from_type (
|
||||||
|
&td->details.aml_history.decider_pub),
|
||||||
|
GNUNET_PQ_query_param_auto_from_type (
|
||||||
|
&td->details.aml_history.decider_sig),
|
||||||
|
GNUNET_PQ_query_param_end
|
||||||
|
};
|
||||||
|
|
||||||
|
PREPARE (pg,
|
||||||
|
"insert_into_table_aml_history",
|
||||||
|
"INSERT INTO aml_history"
|
||||||
|
"(aml_history_serial_id"
|
||||||
|
",h_payto"
|
||||||
|
",new_threshold_val"
|
||||||
|
",new_threshold_frac"
|
||||||
|
",new_status"
|
||||||
|
",decision_time"
|
||||||
|
",justification"
|
||||||
|
",kyc_requirements"
|
||||||
|
",kyc_req_row"
|
||||||
|
",decider_pub"
|
||||||
|
",decider_sig"
|
||||||
|
") VALUES "
|
||||||
|
"($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11);");
|
||||||
|
return GNUNET_PQ_eval_prepared_non_select (pg->conn,
|
||||||
|
"insert_into_table_aml_history",
|
||||||
|
params);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function called with kyc_attributes records to insert into table.
|
||||||
|
*
|
||||||
|
* @param pg plugin context
|
||||||
|
* @param td record to insert
|
||||||
|
*/
|
||||||
|
static enum GNUNET_DB_QueryStatus
|
||||||
|
irbt_cb_table_kyc_attributes (struct PostgresClosure *pg,
|
||||||
|
const struct TALER_EXCHANGEDB_TableData *td)
|
||||||
|
{
|
||||||
|
struct GNUNET_PQ_QueryParam params[] = {
|
||||||
|
GNUNET_PQ_query_param_uint64 (&td->serial),
|
||||||
|
GNUNET_PQ_query_param_auto_from_type (
|
||||||
|
&td->details.kyc_attributes.h_payto),
|
||||||
|
GNUNET_PQ_query_param_auto_from_type (
|
||||||
|
&td->details.kyc_attributes.kyc_prox),
|
||||||
|
GNUNET_PQ_query_param_string (
|
||||||
|
td->details.kyc_attributes.provider),
|
||||||
|
(NULL == td->details.kyc_attributes.birthdate)
|
||||||
|
? GNUNET_PQ_query_param_null ()
|
||||||
|
: GNUNET_PQ_query_param_string (
|
||||||
|
td->details.kyc_attributes.birthdate),
|
||||||
|
GNUNET_PQ_query_param_timestamp (
|
||||||
|
&td->details.kyc_attributes.collection_time),
|
||||||
|
GNUNET_PQ_query_param_timestamp (
|
||||||
|
&td->details.kyc_attributes.expiration_time),
|
||||||
|
GNUNET_PQ_query_param_fixed_size (
|
||||||
|
&td->details.kyc_attributes.encrypted_attributes,
|
||||||
|
td->details.kyc_attributes.encrypted_attributes_size),
|
||||||
|
GNUNET_PQ_query_param_end
|
||||||
|
};
|
||||||
|
|
||||||
|
PREPARE (pg,
|
||||||
|
"insert_into_table_kyc_attributes",
|
||||||
|
"INSERT INTO kyc_attributes"
|
||||||
|
"(kyc_attributes_serial_id"
|
||||||
|
",h_payto"
|
||||||
|
",kyc_prox"
|
||||||
|
",provider"
|
||||||
|
",birthdate"
|
||||||
|
",collection_time"
|
||||||
|
",expiration_time"
|
||||||
|
",encrypted_attributes"
|
||||||
|
") VALUES "
|
||||||
|
"($1, $2, $3, $4, $5, $6, $7, $8);");
|
||||||
|
return GNUNET_PQ_eval_prepared_non_select (pg->conn,
|
||||||
|
"insert_into_table_kyc_attributes",
|
||||||
|
params);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function called with purse_deletion records to insert into table.
|
||||||
|
*
|
||||||
|
* @param pg plugin context
|
||||||
|
* @param td record to insert
|
||||||
|
*/
|
||||||
|
static enum GNUNET_DB_QueryStatus
|
||||||
|
irbt_cb_table_purse_deletion (struct PostgresClosure *pg,
|
||||||
|
const struct TALER_EXCHANGEDB_TableData *td)
|
||||||
|
{
|
||||||
|
struct GNUNET_PQ_QueryParam params[] = {
|
||||||
|
GNUNET_PQ_query_param_uint64 (&td->serial),
|
||||||
|
GNUNET_PQ_query_param_auto_from_type (
|
||||||
|
&td->details.purse_deletion.purse_pub),
|
||||||
|
GNUNET_PQ_query_param_auto_from_type (
|
||||||
|
&td->details.purse_deletion.purse_sig),
|
||||||
|
GNUNET_PQ_query_param_end
|
||||||
|
};
|
||||||
|
|
||||||
|
PREPARE (pg,
|
||||||
|
"insert_into_table_purse_deletion",
|
||||||
|
"INSERT INTO purse_deletion"
|
||||||
|
"(purse_deletion_serial_id"
|
||||||
|
",purse_pub"
|
||||||
|
",purse_sig"
|
||||||
|
") VALUES "
|
||||||
|
"($1, $2, $3);");
|
||||||
|
return GNUNET_PQ_eval_prepared_non_select (pg->conn,
|
||||||
|
"insert_into_table_purse_deletion",
|
||||||
|
params);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function called with withdraw_age_commitments records to insert into table.
|
||||||
|
*
|
||||||
|
* @param pg plugin context
|
||||||
|
* @param td record to insert
|
||||||
|
*/
|
||||||
|
static enum GNUNET_DB_QueryStatus
|
||||||
|
irbt_cb_table_withdraw_age_commitments (struct PostgresClosure *pg,
|
||||||
|
const struct
|
||||||
|
TALER_EXCHANGEDB_TableData *td)
|
||||||
|
{
|
||||||
|
struct GNUNET_PQ_QueryParam params[] = {
|
||||||
|
GNUNET_PQ_query_param_uint64 (&td->serial),
|
||||||
|
GNUNET_PQ_query_param_auto_from_type (
|
||||||
|
&td->details.withdraw_age_commitments.h_commitment),
|
||||||
|
TALER_PQ_query_param_amount (
|
||||||
|
&td->details.withdraw_age_commitments.amount_with_fee),
|
||||||
|
GNUNET_PQ_query_param_uint16 (
|
||||||
|
&td->details.withdraw_age_commitments.max_age),
|
||||||
|
GNUNET_PQ_query_param_auto_from_type (
|
||||||
|
&td->details.withdraw_age_commitments.reserve_pub),
|
||||||
|
GNUNET_PQ_query_param_auto_from_type (
|
||||||
|
&td->details.withdraw_age_commitments.reserve_sig),
|
||||||
|
GNUNET_PQ_query_param_uint32 (
|
||||||
|
&td->details.withdraw_age_commitments.noreveal_index),
|
||||||
|
GNUNET_PQ_query_param_absolute_time (
|
||||||
|
&td->details.withdraw_age_commitments.timestamp),
|
||||||
|
GNUNET_PQ_query_param_end
|
||||||
|
};
|
||||||
|
|
||||||
|
PREPARE (pg,
|
||||||
|
"insert_into_table_withdraw_age_commitments",
|
||||||
|
"INSERT INTO withdraw_age_commitments"
|
||||||
|
"(withdraw_age_commitment_id"
|
||||||
|
",h_commitment"
|
||||||
|
",amount_with_fee_val"
|
||||||
|
",amount_with_fee_frac"
|
||||||
|
",max_age"
|
||||||
|
",reserve_pub"
|
||||||
|
",reserve_sig"
|
||||||
|
",noreveal_index"
|
||||||
|
",timestamp"
|
||||||
|
") VALUES "
|
||||||
|
"($1, $2, $3, $4, $5, $6, $7, $8, $9);");
|
||||||
|
return GNUNET_PQ_eval_prepared_non_select (pg->conn,
|
||||||
|
"insert_into_table_withdraw_age_commitments",
|
||||||
|
params);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function called with withdraw_age_reveals records to insert into table.
|
||||||
|
*
|
||||||
|
* @param pg plugin context
|
||||||
|
* @param td record to insert
|
||||||
|
*/
|
||||||
|
static enum GNUNET_DB_QueryStatus
|
||||||
|
irbt_cb_table_withdraw_age_reveals (struct PostgresClosure *pg,
|
||||||
|
const struct TALER_EXCHANGEDB_TableData *td)
|
||||||
|
{
|
||||||
|
struct GNUNET_PQ_QueryParam params[] = {
|
||||||
|
GNUNET_PQ_query_param_uint64 (&td->serial),
|
||||||
|
#if FIXME_OEC
|
||||||
|
GNUNET_PQ_query_param_auto_from_type (
|
||||||
|
&td->details.withdraw_age_reveals.h_commitment),
|
||||||
|
#endif
|
||||||
|
GNUNET_PQ_query_param_uint32 (
|
||||||
|
&td->details.withdraw_age_reveals.freshcoin_index),
|
||||||
|
GNUNET_PQ_query_param_uint64 (
|
||||||
|
&td->details.withdraw_age_reveals.denominations_serial),
|
||||||
|
GNUNET_PQ_query_param_end
|
||||||
|
};
|
||||||
|
|
||||||
|
PREPARE (pg,
|
||||||
|
"insert_into_table_withdraw_age_reveals",
|
||||||
|
"INSERT INTO withdraw_age_reveals"
|
||||||
|
"(withdraw_age_reveals_id"
|
||||||
|
",FIXME_OEC"
|
||||||
|
",freshcoin_index"
|
||||||
|
",denominations_serial"
|
||||||
|
",FIXME_OEC"
|
||||||
|
") VALUES "
|
||||||
|
"($1, $2, $3, $4, $5);");
|
||||||
|
return GNUNET_PQ_eval_prepared_non_select (pg->conn,
|
||||||
|
"insert_into_table_withdraw_age_reveals",
|
||||||
|
params);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
enum GNUNET_DB_QueryStatus
|
enum GNUNET_DB_QueryStatus
|
||||||
TEH_PG_insert_records_by_table (void *cls,
|
TEH_PG_insert_records_by_table (void *cls,
|
||||||
const struct TALER_EXCHANGEDB_TableData *td)
|
const struct TALER_EXCHANGEDB_TableData *td)
|
||||||
@ -2007,8 +2283,25 @@ TEH_PG_insert_records_by_table (void *cls,
|
|||||||
case TALER_EXCHANGEDB_RT_PROFIT_DRAINS:
|
case TALER_EXCHANGEDB_RT_PROFIT_DRAINS:
|
||||||
rh = &irbt_cb_table_profit_drains;
|
rh = &irbt_cb_table_profit_drains;
|
||||||
break;
|
break;
|
||||||
|
case TALER_EXCHANGEDB_RT_AML_STAFF:
|
||||||
|
rh = &irbt_cb_table_aml_staff;
|
||||||
|
break;
|
||||||
|
case TALER_EXCHANGEDB_RT_AML_HISTORY:
|
||||||
|
rh = &irbt_cb_table_aml_history;
|
||||||
|
break;
|
||||||
|
case TALER_EXCHANGEDB_RT_KYC_ATTRIBUTES:
|
||||||
|
rh = &irbt_cb_table_kyc_attributes;
|
||||||
|
break;
|
||||||
|
case TALER_EXCHANGEDB_RT_PURSE_DELETION:
|
||||||
|
rh = &irbt_cb_table_purse_deletion;
|
||||||
|
break;
|
||||||
|
case TALER_EXCHANGEDB_RT_WITHDRAW_AGE_COMMITMENTS:
|
||||||
|
rh = &irbt_cb_table_withdraw_age_commitments;
|
||||||
|
break;
|
||||||
|
case TALER_EXCHANGEDB_RT_WITHDRAW_AGE_REVEALS:
|
||||||
|
rh = &irbt_cb_table_withdraw_age_reveals;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (NULL == rh)
|
if (NULL == rh)
|
||||||
{
|
{
|
||||||
GNUNET_break (0);
|
GNUNET_break (0);
|
||||||
|
Loading…
Reference in New Issue
Block a user