exchange

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

commit ba29af74ce7f39185316be05541596bce4bb73d3
parent 4ab8ca5498dac971d259529996df72808e2ac262
Author: Christian Grothoff <christian@grothoff.org>
Date:   Sun,  4 Aug 2024 13:53:06 +0200

avoid creating duplicate measures

Diffstat:
Msrc/exchangedb/exchange_do_trigger_kyc_rule_for_account.sql | 41+++++++++++++++++++++++++++--------------
1 file changed, 27 insertions(+), 14 deletions(-)

diff --git a/src/exchangedb/exchange_do_trigger_kyc_rule_for_account.sql b/src/exchangedb/exchange_do_trigger_kyc_rule_for_account.sql @@ -51,19 +51,32 @@ THEN INTO my_access_token; END IF; -INSERT INTO legitimization_measures - (access_token - ,start_time - ,jmeasures - ,display_priority) - VALUES - (my_access_token - ,in_now - ,in_jmeasures - ,in_display_priority) - RETURNING - legitimization_measure_serial_id - INTO - out_legitimization_measure_serial_id; +-- First check if a perfectly equivalent legi measure +-- already exists, to avoid creating tons of duplicates. +SELECT legitimization_measure_serial_id + INTO out_legitimization_measure_serial_id + FROM legitimization_measures + WHERE access_token=my_access_token + AND jmeasures=in_jmeasures + AND display_priority=in_display_priority + AND NOT is_finished; + +IF NOT FOUND +THEN + INSERT INTO legitimization_measures + (access_token + ,start_time + ,jmeasures + ,display_priority) + VALUES + (my_access_token + ,in_now + ,in_jmeasures + ,in_display_priority) + RETURNING + legitimization_measure_serial_id + INTO + out_legitimization_measure_serial_id; +END IF; END $$;