handle new 202 accepted status code on withdraw in client logic
This commit is contained in:
parent
681449a6e0
commit
95c71daf5e
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
This file is part of TALER
|
This file is part of TALER
|
||||||
Copyright (C) 2014-2020 Taler Systems SA
|
Copyright (C) 2014-2021 Taler Systems SA
|
||||||
|
|
||||||
TALER is free software; you can redistribute it and/or modify it under the
|
TALER is free software; you can redistribute it and/or modify it under the
|
||||||
terms of the GNU General Public License as published by the Free Software
|
terms of the GNU General Public License as published by the Free Software
|
||||||
@ -117,7 +117,24 @@ handle_reserve_withdraw_finished (
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case MHD_HTTP_ACCEPTED:
|
case MHD_HTTP_ACCEPTED:
|
||||||
wr.details.accepted.payment_target_uuid; // FIXME
|
{
|
||||||
|
struct GNUNET_JSON_Specification spec[] = {
|
||||||
|
GNUNET_JSON_spec_uint64 ("payment_target_uuid",
|
||||||
|
&wr.details.accepted.payment_target_uuid),
|
||||||
|
GNUNET_JSON_spec_end ()
|
||||||
|
};
|
||||||
|
|
||||||
|
if (GNUNET_OK !=
|
||||||
|
GNUNET_JSON_parse (hr->reply,
|
||||||
|
spec,
|
||||||
|
NULL, NULL))
|
||||||
|
{
|
||||||
|
GNUNET_break_op (0);
|
||||||
|
wr.hr.http_status = 0;
|
||||||
|
wr.hr.ec = TALER_EC_GENERIC_REPLY_MALFORMED;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -95,7 +95,7 @@ struct TALER_EXCHANGE_Withdraw2Handle
|
|||||||
* @param json reply from the exchange
|
* @param json reply from the exchange
|
||||||
* @return #GNUNET_OK on success, #GNUNET_SYSERR on errors
|
* @return #GNUNET_OK on success, #GNUNET_SYSERR on errors
|
||||||
*/
|
*/
|
||||||
static int
|
static enum GNUNET_GenericReturnValue
|
||||||
reserve_withdraw_ok (struct TALER_EXCHANGE_Withdraw2Handle *wh,
|
reserve_withdraw_ok (struct TALER_EXCHANGE_Withdraw2Handle *wh,
|
||||||
const json_t *json)
|
const json_t *json)
|
||||||
{
|
{
|
||||||
@ -142,7 +142,7 @@ reserve_withdraw_ok (struct TALER_EXCHANGE_Withdraw2Handle *wh,
|
|||||||
* @param json reply from the exchange
|
* @param json reply from the exchange
|
||||||
* @return #GNUNET_OK on success, #GNUNET_SYSERR on errors
|
* @return #GNUNET_OK on success, #GNUNET_SYSERR on errors
|
||||||
*/
|
*/
|
||||||
static int
|
static enum GNUNET_GenericReturnValue
|
||||||
reserve_withdraw_payment_required (
|
reserve_withdraw_payment_required (
|
||||||
struct TALER_EXCHANGE_Withdraw2Handle *wh,
|
struct TALER_EXCHANGE_Withdraw2Handle *wh,
|
||||||
const json_t *json)
|
const json_t *json)
|
||||||
@ -269,6 +269,28 @@ handle_reserve_withdraw_finished (void *cls,
|
|||||||
GNUNET_assert (NULL == wh->cb);
|
GNUNET_assert (NULL == wh->cb);
|
||||||
TALER_EXCHANGE_withdraw2_cancel (wh);
|
TALER_EXCHANGE_withdraw2_cancel (wh);
|
||||||
return;
|
return;
|
||||||
|
case MHD_HTTP_ACCEPTED:
|
||||||
|
/* only validate reply is well-formed */
|
||||||
|
{
|
||||||
|
uint64_t ptu;
|
||||||
|
struct GNUNET_JSON_Specification spec[] = {
|
||||||
|
GNUNET_JSON_spec_uint64 ("payment_target_uuid",
|
||||||
|
&ptu),
|
||||||
|
GNUNET_JSON_spec_end ()
|
||||||
|
};
|
||||||
|
|
||||||
|
if (GNUNET_OK !=
|
||||||
|
GNUNET_JSON_parse (j,
|
||||||
|
spec,
|
||||||
|
NULL, NULL))
|
||||||
|
{
|
||||||
|
GNUNET_break_op (0);
|
||||||
|
hr.http_status = 0;
|
||||||
|
hr.ec = TALER_EC_GENERIC_REPLY_MALFORMED;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
case MHD_HTTP_BAD_REQUEST:
|
case MHD_HTTP_BAD_REQUEST:
|
||||||
/* This should never happen, either us or the exchange is buggy
|
/* This should never happen, either us or the exchange is buggy
|
||||||
(or API version conflict); just pass JSON reply to the application */
|
(or API version conflict); just pass JSON reply to the application */
|
||||||
|
Loading…
Reference in New Issue
Block a user