summaryrefslogtreecommitdiff
path: root/src/lib/merchant_api_refund.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/merchant_api_refund.c')
-rw-r--r--src/lib/merchant_api_refund.c34
1 files changed, 15 insertions, 19 deletions
diff --git a/src/lib/merchant_api_refund.c b/src/lib/merchant_api_refund.c
index 9cf4d5f5..a1a5715a 100644
--- a/src/lib/merchant_api_refund.c
+++ b/src/lib/merchant_api_refund.c
@@ -65,11 +65,11 @@ struct TALER_MERCHANT_RefundLookupOperation
/**
* Cancel a /refund lookup operation
*
- * @param
+ * @param rlo operation to cancel
*/
void
-TALER_MERCHANT_refund_lookup_cancel (struct
- TALER_MERCHANT_RefundLookupOperation *rlo)
+TALER_MERCHANT_refund_lookup_cancel (
+ struct TALER_MERCHANT_RefundLookupOperation *rlo)
{
if (NULL != rlo->job)
{
@@ -95,6 +95,10 @@ handle_refund_lookup_finished (void *cls,
{
struct TALER_MERCHANT_RefundLookupOperation *rlo = cls;
const json_t *json = response;
+ struct TALER_MERCHANT_HttpResponse hr = {
+ .http_status = (unsigned int) response_code,
+ .reply = json
+ };
rlo->job = NULL;
switch (response_code)
@@ -102,31 +106,23 @@ handle_refund_lookup_finished (void *cls,
case 0:
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Backend didn't even return from GET /refund\n");
- rlo->cb (rlo->cb_cls,
- 0,
- TALER_EC_INVALID_RESPONSE,
- NULL);
+ hr.ec = TALER_EC_INVALID_RESPONSE;
break;
case MHD_HTTP_OK:
- rlo->cb (rlo->cb_cls,
- response_code,
- TALER_EC_NONE,
- json);
+ /* nothing to do, all good! */
break;
case MHD_HTTP_NOT_FOUND:
- rlo->cb (rlo->cb_cls,
- response_code,
- TALER_JSON_get_error_code (json),
- json);
+ hr.ec = TALER_JSON_get_error_code (json);
+ hr.hint = TALER_JSON_get_error_hint (json);
break;
default:
GNUNET_break_op (0); /* unexpected status code */
- rlo->cb (rlo->cb_cls,
- response_code,
- TALER_JSON_get_error_code (json),
- json);
+ hr.ec = TALER_JSON_get_error_code (json);
+ hr.hint = TALER_JSON_get_error_hint (json);
break;
}
+ rlo->cb (rlo->cb_cls,
+ &hr);
TALER_MERCHANT_refund_lookup_cancel (rlo);
}