Commit Graph

19 Commits

Author SHA1 Message Date
Pau Perez
97f551a2dd Replace literal with AR's 4 #not 2020-07-23 20:24:31 +02:00
Pau Perez
357037e429 Recalculate adjustments when invalidating payments
Switching from `#invalidate` to `#update_column` skipped both
validations and callbacks and thus, `#ensure_correct_adjustments` was no
longer called for older payments.
2020-07-23 20:24:31 +02:00
Pau Perez
e6943ce554 Fix simple Rubocop issues 2020-07-23 20:24:31 +02:00
Pau Perez
813459ee38 Clarify method documentation 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
f2b28a198d Replace before_validation with custom validation
No reason to use a callback when custom validation methods can be
defined.
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
3435d5ac97 Fix Rubocop non-metrics issues in payment model 2020-07-15 14:01:30 +02:00
Pau Perez
cf64d3a290 Merge skipped callback from decorator into model
If we don't want that callback we can just as well remove it now that we
own that code.
2020-07-10 15:07:12 +02:00
Pau Perez
55d52b875f Run rubocop autocorrect on payment model 2020-07-10 15:04:29 +02:00
Pau Perez
d8b748a851 Merge alias_method method and its original version 2020-07-10 10:41:44 +02:00
Pau Perez
d49068ce66 Move method delegation from decorator to model 2020-07-10 10:41:44 +02:00
Pau Perez
cf6138da66 Replace model method with its decorated version 2020-07-10 10:41:44 +02:00
Pau Perez
3fb6193098 Move adjustments logic from decorator into model 2020-07-10 10:41:44 +02:00
Pau Perez
861726200c Move localize_number from decorator to model 2020-07-10 10:41:44 +02:00
Pau Perez
6d9a518616 Move method from decorator to model 2020-07-10 10:41:44 +02:00
Pau Perez
322c4d0f3f Move decorator's callbacks to model 2020-07-10 10:41:44 +02:00
Pau Perez
9935df9f2d Move Pin payment method from decorator into model 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