Commit Graph

519 Commits

Author SHA1 Message Date
Rob Harrington
e486dbd4f8 Respond to Stripe webhook with status of 204 if specified account is not found 2017-09-23 14:58:35 +10:00
Rob Harrington
dd3d205536 Update deauthorize webhook to latest version of API (again) 2017-09-23 14:58:35 +10:00
Rob Harrington
665749d0c5 Refactor Stripe::AccountConnector
Connector now handles cancellation of the connection wizard by the user more elegantly
2017-09-23 14:58:35 +10:00
Rob Harrington
d3566f9303 Update deauthorize webhook to latest version of API 2017-09-23 14:58:35 +10:00
Rob Harrington
08c723b10f Use expect syntax instead of should 2017-09-23 14:58:34 +10:00
Rob Harrington
4464a85a74 Add missing controller specs for CreditCardController #destroy 2017-09-23 14:58:34 +10:00
Rob Harrington
9832966b77 Fix Admin::PaymentsController spec 2017-09-23 14:58:34 +10:00
Rob Harrington
ca1987fc87 Prevent Stripe payment methods without account owners from being saved 2017-09-23 14:58:34 +10:00
Rob Harrington
ecef905444 Allow Stripe-based payments to be voided (refunded) 2017-09-23 14:58:34 +10:00
Rob Harrington
dd56e03be1 Stop setting host for url helpers in specs 2017-09-23 14:58:34 +10:00
Rob Harrington
4e96487da9 Redirect to #/payment methods from stripe connect callback 2017-09-23 14:58:33 +10:00
Rob Harrington
4865533f26 Restrict edit permissions on Stripe payment methods 2017-09-23 14:58:33 +10:00
Rob Harrington
44ba499ad9 Stub rather than set Stripe api_key in specs 2017-09-23 14:58:33 +10:00
Rob Harrington
d2b6ba4330 Provide a Stripe client_id for StripeAccountsController spec 2017-09-23 14:58:33 +10:00
Rob Harrington
576e4db9be Authorize StripeAccount#status using the account object
Rather than the enterprise
2017-09-23 14:58:33 +10:00
Rob Harrington
ce65a9d063 Bump stripe gem version to 3.0.1
Allows us to use the stripe gem's built-in OAuth wrappers, rather than our own
2017-09-23 14:58:33 +10:00
Rob Harrington
ffc99df373 Consolidate Stripe routes/actions into StripeAccountsController 2017-09-23 14:58:33 +10:00
Rob Harrington
42dd58426e Auto-correct rubocop offences for stripe-connect 2017-09-23 14:58:32 +10:00
Rob Harrington
ae2d3d3fd9 Refactoring StripeHelper into service objects 2017-09-23 14:58:32 +10:00
Rob Harrington
e6eb45b453 Name StripeAccountController spec file correctly 2017-09-23 14:58:32 +10:00
Rob Harrington
f890927423 Implementing the Stripe Connect feature toggle 2017-09-23 14:58:32 +10:00
Rob Harrington
6499d17cb1 Adding feature toggle config variable for Stripe Connect 2017-09-23 14:58:32 +10:00
Rob Harrington
1d1e581c85 Refactoring CreditCardController, rendering card processing errors as json 2017-09-23 14:58:32 +10:00
Rob Harrington
64009a2c9e CheckoutController can render payment gateway error messages as json 2017-09-23 14:58:32 +10:00
Rob Harrington
356dad73ba Ensure spec has Stripe.api_key set 2017-09-23 14:58:32 +10:00
Rob Harrington
b9d72ce4cf Refactoring logic for displaying orders on the front-end account page 2017-09-23 14:58:32 +10:00
Rob Harrington
f4c3fbf8bc Refactoring credit cards interface, and backend logic 2017-09-23 14:58:32 +10:00
stveep
c9c4680ef6 Backend code to create Stripe customers and store their IDs in CreditCards. Page refresh not working 2017-09-23 14:58:31 +10:00
Rob Harrington
f87f4310f0 Adding #status controller action for stripe accounts to fetch current info direct from Stripe 2017-09-23 14:57:02 +10:00
stveep
1450bfd726 Don't retrieve event from Stripe for a deauthorisation 2017-09-23 14:57:02 +10:00
stveep
a039286240 Webhook processing changes: fix expected request data formatting 2017-09-23 14:57:02 +10:00
stveep
da335703b4 Fix specs for travis 2017-09-23 14:57:02 +10:00
stveep
d374ab569d Undo dodgy redirect changes and set spec to pending 2017-09-23 14:57:02 +10:00
stveep
47df2dc20b Tweaking redirects and links 2017-09-23 14:57:02 +10:00
stveep
5ae473e07f Add specs, fix redirect after requring relogin 2017-09-23 14:57:02 +10:00
Steve Pettitt
41607c5846 De-associate accounts in response to webhook (not tested with a real deauth request yet) 2017-09-23 14:57:02 +10:00
Pau Perez
613016a6cf Refactor spec using expect_any_instance 2017-09-08 23:55:51 +10:00
Pau Perez
1899e2fa98 Fix rubocop failures 2017-09-08 23:55:51 +10:00
Pau Perez
1faa1579f3 Update enterprise fees while locking the order 2017-09-08 23:55:51 +10:00
Pau Perez
5b1947429e Fix odd-even background by relying on Spree
This removes unnecessary duplication of #destroy. We can make it work by
adding a simple fix in Spree.
2017-09-08 23:55:50 +10:00
Pau Perez
8db1fa4e77 Move JSON line items responses to a new controller
Extracts the JSON response from the admin's line item controller which
are only used by the bulk management feature into its own controller.

This decouples spree from an OFN-only feature and allows to remove
unnecessary code. Furthermore, Admin::LineItemsController is gone in
Spree 2.4.0.beta. See: https://github.com/spree/spree/pull/5280
2017-09-08 23:55:50 +10:00
Pau Perez
85fefcd946 Replace helper with service object 2017-09-08 23:55:50 +10:00
Pau Perez
e087a008c2 Reduce coupling from controller 2017-09-08 23:55:50 +10:00
Pau Perez
4c4969e86b Do not couple with controller's ivar and session 2017-09-08 23:55:50 +10:00
Pau Perez
1ef4bf5da0 Refactor tests and remove duplicated ones 2017-09-08 23:55:50 +10:00
Pau Perez
bdfd718c51 Use service object directly from controller 2017-09-08 23:55:50 +10:00
Pau Perez
3c73282d57 Manually reset the order once completed
Spree does not call after_<order.state> methods any more as of
https://github.com/spree/spree/pull/2557, so our #after_complete method
is never triggered and thus the order never reset.

This makes the condition:

```ruby
if current_order.andand.distributor == @order.distributor
```

in app/views/spree/orders/form/_update_buttons.html.haml return false
and as a result the "Back To Cart" button is not shown.

This commit resets the order (emptying the session[:order_id] and
creating a new order, aka. cart) right from the
CheckoutController#update rather than relying on infernal callbacks (of
what the Spree core team itself was unhappy about since long ago
https://github.com/spree/spree/issues/2488). There is the first place
where we know the order has been successfully completed.
2017-09-08 23:55:50 +10:00
Enrico Stano
d09e0cd44a Deal with both JS and JSON format 2017-09-08 23:55:50 +10:00
Enrico Stano
d581fc4863 Fix specs to contemplate XHR requests and more coverage 2017-09-08 23:55:50 +10:00
Enrico Stano
7874d96003 Set MailMethod for test environment when needed 2017-09-08 23:55:50 +10:00