Correctly parse JSON when creating or deleting customer card source #857
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Both
POST /v1/customers/:customer_id/sources
andDELETE /v1/customers/:customer_id/sources/:source_id
returna different shape depending on whether the object referenced by
:source_id
is aSource
or aCard
. The current implementationwas not handling the
Card
case. The impact of this is that thelistener passed to either
CustomerSession#addCustomerSource
orCustomerSession#deleteCustomerSource
was not being called whenthe source was a
Card
.The short-term fix is to create a
Source
object and only populateits
id
field. This is not ideal because we are creating aSource
with a card id, but it resolves the issue of the listener not being
called.
The long-term fix is to pass a
StripePaymentSource
to thelistener.
Motivation
ANDROID-344
Testing
Unit tests