Error Detection Supersedes Valid Content Response
Closed this issue · 5 comments
https://developers.dwolla.com/guides/business-verified-customer/handle-verification-statuses#determining-verification-documents example response documents a scenario where errors
is expected along with valid content and a 200 OK response body.
This regex matches on that response, suppressing valid Content
(important to be able to repair the Customer
) in the presence of errors
:
dwolla-v2-csharp/Dwolla.Client/Rest/ResponseBuilder.cs
Lines 29 to 31 in 393fd17
Expected behavior: either...
- 200 OK response from
GET Customer
always deserializes theCustomer
intoRestResponse<Customer>.Content
. - 200 OK API response shouldn't include
errors
. In this case, the DBA required error is also communicated via_links['upload-dba-document']
.
Actual behavior:
- 200 OK response from
GET Customer
returns aRestResponse<Customer>
withContent = null
. - 200 OK response includes
errors
, which I don't recall seeing for other document-required scenarios.
Hi @dahlbyk -- thanks for reporting! We were table to test internally and confirm that this is a bug. The expected behavior is that the Content
should always be populated for 200 Ok response even if it contains an error
object.
We have logged a bug ticket on our end to work on a fix, however, we do not anticipate to have it rolled out this week or the next.
In the meantime, feel free to clone the repo and update the logic so that you can continue using the SDK in your application. We also appreciate pull requests if you would like to contribute to the repo!
Thank you and Happy Holidays!
We were able to patch and work around this: https://github.com/Stratafolio/dwolla-v2-csharp/tree/gh-47-hack.
But a more correct fix seems like it would need to add _embedded
to BaseResponse
so errors
are available in the successful response.
Thanks @dahlbyk!
Logging the proposed two-fold solution for reference:
- add
_embedded
toBaseResponse
- populate
Content
for all 200 Ok responses including ones that have anerror
object
This issue has been fixed in the latest release 5.4.0.