diff options
-rw-r--r-- | src/exchange/taler-exchange-httpd_purses_delete.c | 1 | ||||
-rw-r--r-- | src/exchangedb/exchange_do_purse_delete.sql (renamed from src/exchangedb/exchange_do_delete_purse.sql) | 8 | ||||
-rw-r--r-- | src/exchangedb/procedures.sql.in | 2 | ||||
-rw-r--r-- | src/lib/exchange_api_purse_delete.c | 4 | ||||
-rw-r--r-- | src/testing/test_exchange_p2p.c | 13 |
5 files changed, 23 insertions, 5 deletions
diff --git a/src/exchange/taler-exchange-httpd_purses_delete.c b/src/exchange/taler-exchange-httpd_purses_delete.c index 58cc78250..d4b74b161 100644 --- a/src/exchange/taler-exchange-httpd_purses_delete.c +++ b/src/exchange/taler-exchange-httpd_purses_delete.c @@ -127,6 +127,7 @@ TEH_handler_purses_delete ( } if (decided) { + GNUNET_break_op (0); return TALER_MHD_reply_with_ec ( connection, TALER_EC_EXCHANGE_PURSE_DELETE_ALREADY_DECIDED, diff --git a/src/exchangedb/exchange_do_delete_purse.sql b/src/exchangedb/exchange_do_purse_delete.sql index a57f25454..096475b43 100644 --- a/src/exchangedb/exchange_do_delete_purse.sql +++ b/src/exchangedb/exchange_do_purse_delete.sql @@ -14,7 +14,7 @@ -- TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/> -- -CREATE OR REPLACE FUNCTION exchange_do_delete_purse( +CREATE OR REPLACE FUNCTION exchange_do_purse_delete( IN in_purse_pub BYTEA, IN in_purse_sig BYTEA, IN in_now INT8, @@ -28,7 +28,7 @@ DECLARE my_in_reserve_quota BOOLEAN; BEGIN -SELECT COUNT(*) FROM purse_decision +PERFORM refunded FROM purse_decision WHERE purse_pub=in_purse_pub; IF FOUND THEN @@ -49,7 +49,7 @@ THEN END IF; -- store reserve deletion -INSERT INTO purse_deletion +INSERT INTO exchange.purse_deletion (purse_pub ,purse_sig) VALUES @@ -115,5 +115,5 @@ END LOOP; END $$; -COMMENT ON FUNCTION exchange_do_delete_purse(BYTEA,BYTEA,INT8) +COMMENT ON FUNCTION exchange_do_purse_delete(BYTEA,BYTEA,INT8) IS 'Delete a previously undecided purse and refund the coins (if any).'; diff --git a/src/exchangedb/procedures.sql.in b/src/exchangedb/procedures.sql.in index af47bbf63..194830248 100644 --- a/src/exchangedb/procedures.sql.in +++ b/src/exchangedb/procedures.sql.in @@ -28,11 +28,11 @@ SET search_path TO exchange; #include "exchange_do_recoup_to_reserve.sql" #include "exchange_do_recoup_to_coin.sql" #include "exchange_do_gc.sql" +#include "exchange_do_purse_delete.sql" #include "exchange_do_purse_deposit.sql" #include "exchange_do_purse_merge.sql" #include "exchange_do_reserve_purse.sql" #include "exchange_do_expire_purse.sql" -#include "exchange_do_delete_purse.sql" #include "exchange_do_history_request.sql" #include "exchange_do_reserve_open_deposit.sql" #include "exchange_do_reserve_open.sql" diff --git a/src/lib/exchange_api_purse_delete.c b/src/lib/exchange_api_purse_delete.c index 68035b48b..27a9082b2 100644 --- a/src/lib/exchange_api_purse_delete.c +++ b/src/lib/exchange_api_purse_delete.c @@ -208,6 +208,10 @@ TALER_EXCHANGE_purse_delete ( GNUNET_free (xhdr); } eh = TALER_EXCHANGE_curl_easy_get_ (pdh->url); + GNUNET_assert (CURLE_OK == + curl_easy_setopt (eh, + CURLOPT_CUSTOMREQUEST, + MHD_HTTP_METHOD_DELETE)); GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "URL for purse delete: `%s'\n", pdh->url); diff --git a/src/testing/test_exchange_p2p.c b/src/testing/test_exchange_p2p.c index f159b2f1b..ad95bf63c 100644 --- a/src/testing/test_exchange_p2p.c +++ b/src/testing/test_exchange_p2p.c @@ -159,6 +159,19 @@ run (void *cls, }; struct TALER_TESTING_Command push[] = { TALER_TESTING_cmd_purse_create_with_deposit ( + "purse-with-deposit-for-delete", + MHD_HTTP_OK, + "{\"amount\":\"EUR:1\",\"summary\":\"ice cream\"}", + true, /* upload contract */ + GNUNET_TIME_UNIT_MINUTES, /* expiration */ + "withdraw-coin-1", + "EUR:1.01", + NULL), + TALER_TESTING_cmd_purse_delete ( + "purse-with-deposit-delete", + MHD_HTTP_NO_CONTENT, + "purse-with-deposit-for-delete"), + TALER_TESTING_cmd_purse_create_with_deposit ( "purse-with-deposit", MHD_HTTP_OK, "{\"amount\":\"EUR:1\",\"summary\":\"ice cream\"}", |