summaryrefslogtreecommitdiff
path: root/src/backend/taler-merchant-httpd_private-post-orders-ID-refund.c
diff options
context:
space:
mode:
authorJonathan Buchanan <jonathan.russ.buchanan@gmail.com>2020-06-24 17:38:09 -0400
committerJonathan Buchanan <jonathan.russ.buchanan@gmail.com>2020-06-24 17:38:09 -0400
commit0fbdd6c6cda1c7e0ad0b4ffc3f22bac3e1176c1d (patch)
tree8935dc12924a27e8c1112314b88fa895e1bf1240 /src/backend/taler-merchant-httpd_private-post-orders-ID-refund.c
parentebfa7888c0cbb461cf70a8d809b1d183011713ce (diff)
downloadmerchant-0fbdd6c6cda1c7e0ad0b4ffc3f22bac3e1176c1d.tar.gz
merchant-0fbdd6c6cda1c7e0ad0b4ffc3f22bac3e1176c1d.tar.bz2
merchant-0fbdd6c6cda1c7e0ad0b4ffc3f22bac3e1176c1d.zip
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.c29
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;
}