diff options
author | Jonathan Buchanan <jonathan.russ.buchanan@gmail.com> | 2020-06-24 17:38:09 -0400 |
---|---|---|
committer | Jonathan Buchanan <jonathan.russ.buchanan@gmail.com> | 2020-06-24 17:38:09 -0400 |
commit | 0fbdd6c6cda1c7e0ad0b4ffc3f22bac3e1176c1d (patch) | |
tree | 8935dc12924a27e8c1112314b88fa895e1bf1240 /src/backend/taler-merchant-httpd_private-post-orders-ID-refund.c | |
parent | ebfa7888c0cbb461cf70a8d809b1d183011713ce (diff) |
got refunds working and tested
Diffstat (limited to 'src/backend/taler-merchant-httpd_private-post-orders-ID-refund.c')
-rw-r--r-- | src/backend/taler-merchant-httpd_private-post-orders-ID-refund.c | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/src/backend/taler-merchant-httpd_private-post-orders-ID-refund.c b/src/backend/taler-merchant-httpd_private-post-orders-ID-refund.c index 6db0497a..942892f9 100644 --- a/src/backend/taler-merchant-httpd_private-post-orders-ID-refund.c +++ b/src/backend/taler-merchant-httpd_private-post-orders-ID-refund.c @@ -189,10 +189,31 @@ TMH_private_post_orders_ID_refund (const struct TMH_RequestHandler *rh, TALER_EC_REFUND_MERCHANT_DB_COMMIT_ERROR, "Internal database error"); case TALER_MERCHANTDB_RS_NO_SUCH_ORDER: - return TALER_MHD_reply_with_error (connection, - MHD_HTTP_NOT_FOUND, - TALER_EC_REFUND_ORDER_ID_UNKNOWN, - "Order unknown (or never paid)"); + { + enum GNUNET_DB_QueryStatus qs; + json_t *contract_terms; + uint64_t order_serial; + + qs = TMH_db->lookup_contract_terms (TMH_db->cls, + hc->instance->settings.id, + hc->infix, + &contract_terms, + &order_serial); + if (qs == 1) + { + return TALER_MHD_reply_with_error (connection, + MHD_HTTP_CONFLICT, + TALER_EC_REFUND_ORDER_ID_UNKNOWN, + "Order never paid"); + } + else + { + return TALER_MHD_reply_with_error (connection, + MHD_HTTP_NOT_FOUND, + TALER_EC_REFUND_ORDER_ID_UNKNOWN, + "Order unknown"); + } + } case TALER_MERCHANTDB_RS_SUCCESS: break; } |