Commit Graph

12 Commits

Author SHA1 Message Date
Pau Perez
e6943ce554 Fix simple Rubocop issues 2020-07-23 20:24:31 +02:00
Pau Perez
4d9fbb68d6 Add missing attribute to skip source validation 2020-07-23 20:24:31 +02:00
Pau Perez
c0f72f89f2 Handle #refund! as we do with #credit! 2020-07-23 20:24:31 +02:00
Pau Perez
0f0a704147 Skip source validation when applying credit
The original payment may not be valid because its credit card may be
expired. Stripe gives this as a valid scenario returning a success and
we should do too.

When creating the credit payment we end up validating all sources in
a chain as follows.

```
Payment being persisted -> source payment -> original credit card.
```

The source payment was valid when created (It would not be persisted
otherwise) but its source card may now be expired, and that's legit.

There was also an issue with the `#invalidate_old_payments` callback. It
was causing the original payment to be validated again and thus the
credit payment failed to be persisted due to the original credit card
being expired. Switching this callback to use `#update_column` skips
validations and so we don't validate the source payment. We only care
about the state there, so it should be fine.
2020-07-23 20:24:31 +02:00
Pau Perez
59da07de66 Handle all errors when dealing with payment event
This basically catches ActiveRecord::RecordInvalid caused by an invalid
credit record, for instance, but also other situations we haven't
forseen.
2020-07-23 20:24:31 +02:00
Pau Perez
dd5e679f69 Address code review comments
Mostly styling issues.
2020-07-16 15:30:28 +02:00
Pau Perez
3a64cc426a Reuse #calculate_refund_amount method 2020-07-15 14:01:58 +02:00
Pau Perez
a8af3a27b1 Fix all but Metrics Rubocop cops in processing.rb 2020-07-15 14:01:58 +02:00
Pau Perez
42658b5255 Refactor #process! nested ifs to guard clauses
Following Rubocop's indications.
2020-07-15 14:01:58 +02:00
Pau Perez
66dbd85eb4 Run rubocop autocorrect on payment/processing.rb 2020-07-15 14:01:58 +02:00
Pau Perez
48910aeb77 Move #refund! to the processing.rb 2020-07-10 10:41:44 +02:00
Pau Perez
06aa56164f Bring in Payment model from Spree 2020-07-10 10:41:44 +02:00