solidus_stripe 4.4.0 → 5.0.0.alpha.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.circleci/config.yml +95 -41
- data/.gitignore +3 -0
- data/.rubocop.yml +94 -4
- data/.yardopts +1 -0
- data/CHANGELOG.md +1 -265
- data/Gemfile +10 -30
- data/LICENSE +2 -2
- data/Procfile.dev +3 -0
- data/README.md +145 -215
- data/Rakefile +7 -6
- data/app/assets/javascripts/spree/backend/solidus_stripe.js +2 -0
- data/app/assets/stylesheets/spree/backend/solidus_stripe.css +4 -0
- data/app/controllers/solidus_stripe/intents_controller.rb +36 -52
- data/app/controllers/solidus_stripe/webhooks_controller.rb +28 -0
- data/app/models/concerns/solidus_stripe/log_entries.rb +31 -0
- data/app/models/solidus_stripe/customer.rb +21 -0
- data/app/models/solidus_stripe/gateway.rb +231 -0
- data/app/models/solidus_stripe/payment_intent.rb +111 -0
- data/app/models/solidus_stripe/payment_method.rb +106 -0
- data/app/models/solidus_stripe/payment_source.rb +31 -0
- data/app/models/solidus_stripe/slug_entry.rb +20 -0
- data/app/models/solidus_stripe.rb +7 -0
- data/app/subscribers/solidus_stripe/webhook/charge_subscriber.rb +28 -0
- data/app/subscribers/solidus_stripe/webhook/payment_intent_subscriber.rb +112 -0
- data/app/views/spree/admin/payments/source_forms/_stripe.html.erb +29 -0
- data/app/views/spree/admin/payments/source_forms/existing_payment/_stripe.html.erb +14 -0
- data/app/views/spree/admin/payments/source_forms/existing_payment/stripe/_card.html.erb +8 -0
- data/app/views/spree/admin/payments/source_forms/existing_payment/stripe/_default.html.erb +7 -0
- data/app/views/spree/admin/payments/source_views/_stripe.html.erb +15 -0
- data/app/views/spree/api/payments/source_views/_stripe.json.jbuilder +8 -0
- data/bin/dev +13 -0
- data/bin/dummy-app +29 -0
- data/bin/rails +38 -3
- data/bin/rails-dummy-app +3 -0
- data/bin/rails-engine +1 -11
- data/bin/rails-new +55 -0
- data/bin/rails-sandbox +1 -14
- data/bin/rspec +10 -0
- data/bin/sandbox +12 -74
- data/bin/setup +1 -0
- data/bin/update-migrations +56 -0
- data/codecov.yml +12 -0
- data/config/locales/en.yml +16 -1
- data/config/routes.rb +5 -11
- data/coverage.rb +42 -0
- data/db/migrate/20230109183332_create_solidus_stripe_payment_sources.rb +10 -0
- data/db/migrate/20230303154931_create_solidus_stripe_setup_intent.rb +10 -0
- data/db/migrate/20230306105520_create_solidus_stripe_payment_intents.rb +10 -0
- data/db/migrate/20230308122414_create_solidus_stripe_webhook_endpoints.rb +10 -0
- data/db/migrate/20230310152615_add_payment_method_reference_to_stripe_intents.rb +6 -0
- data/db/migrate/20230310171444_normalize_stripe_intent_id_attributes.rb +6 -0
- data/db/migrate/20230313150008_create_solidus_stripe_customers.rb +16 -0
- data/db/migrate/20230323154931_drop_solidus_stripe_setup_intent.rb +13 -0
- data/db/migrate/20230403094916_rename_webhook_endpoint_to_payment_method_slug_entries.rb +5 -0
- data/db/seeds.rb +6 -24
- data/lib/generators/solidus_stripe/install/install_generator.rb +121 -14
- data/lib/generators/solidus_stripe/install/templates/app/assets/stylesheets/spree/frontend/solidus_stripe.css +13 -0
- data/lib/generators/solidus_stripe/install/templates/app/javascript/controllers/solidus_stripe_confirm_controller.js +39 -0
- data/lib/generators/solidus_stripe/install/templates/app/javascript/controllers/solidus_stripe_payment_controller.js +89 -0
- data/lib/generators/solidus_stripe/install/templates/app/views/checkouts/existing_payment/_stripe.html.erb +16 -0
- data/lib/generators/solidus_stripe/install/templates/app/views/checkouts/existing_payment/stripe/_card.html.erb +8 -0
- data/lib/generators/solidus_stripe/install/templates/app/views/checkouts/existing_payment/stripe/_default.html.erb +7 -0
- data/lib/generators/solidus_stripe/install/templates/app/views/checkouts/payment/_stripe.html.erb +39 -0
- data/lib/generators/solidus_stripe/install/templates/app/views/orders/payment_info/_stripe.html.erb +20 -0
- data/lib/generators/solidus_stripe/install/templates/config/initializers/solidus_stripe.rb +31 -0
- data/lib/solidus_stripe/configuration.rb +24 -3
- data/lib/solidus_stripe/engine.rb +19 -6
- data/lib/solidus_stripe/money_to_stripe_amount_converter.rb +109 -0
- data/lib/solidus_stripe/refunds_synchronizer.rb +96 -0
- data/lib/solidus_stripe/seeds.rb +19 -0
- data/lib/solidus_stripe/testing_support/factories.rb +153 -0
- data/lib/solidus_stripe/version.rb +1 -1
- data/lib/solidus_stripe/webhook/event.rb +90 -0
- data/lib/solidus_stripe.rb +0 -2
- data/solidus_stripe.gemspec +29 -6
- data/spec/lib/solidus_stripe/configuration_spec.rb +21 -0
- data/spec/lib/solidus_stripe/money_to_stripe_amount_converter_spec.rb +133 -0
- data/spec/lib/solidus_stripe/refunds_synchronizer_spec.rb +238 -0
- data/spec/lib/solidus_stripe/seeds_spec.rb +43 -0
- data/spec/lib/solidus_stripe/webhook/event_spec.rb +134 -0
- data/spec/models/concerns/solidus_stripe/log_entries_spec.rb +54 -0
- data/spec/models/solidus_stripe/customer_spec.rb +47 -0
- data/spec/models/solidus_stripe/gateway_spec.rb +283 -0
- data/spec/models/solidus_stripe/payment_intent_spec.rb +17 -0
- data/spec/models/solidus_stripe/payment_method_spec.rb +137 -0
- data/spec/models/solidus_stripe/payment_source_spec.rb +25 -0
- data/spec/requests/solidus_stripe/intents_controller_spec.rb +29 -0
- data/spec/requests/solidus_stripe/webhooks_controller/charge/refunded_spec.rb +31 -0
- data/spec/requests/solidus_stripe/webhooks_controller/payment_intent/canceled_spec.rb +23 -0
- data/spec/requests/solidus_stripe/webhooks_controller/payment_intent/payment_failed_spec.rb +23 -0
- data/spec/requests/solidus_stripe/webhooks_controller/payment_intent/succeeded_spec.rb +29 -0
- data/spec/requests/solidus_stripe/webhooks_controller_spec.rb +52 -0
- data/spec/solidus_stripe_spec_helper.rb +10 -0
- data/spec/subscribers/solidus_stripe/webhook/charge_subscriber_spec.rb +33 -0
- data/spec/subscribers/solidus_stripe/webhook/payment_intent_subscriber_spec.rb +297 -0
- data/spec/support/solidus_stripe/backend_test_helper.rb +210 -0
- data/spec/support/solidus_stripe/checkout_test_helper.rb +339 -0
- data/spec/support/solidus_stripe/factories.rb +5 -0
- data/spec/support/solidus_stripe/webhook/data_fixtures.rb +106 -0
- data/spec/support/solidus_stripe/webhook/event_with_context_factory.rb +82 -0
- data/spec/support/solidus_stripe/webhook/request_helper.rb +32 -0
- data/spec/system/backend/solidus_stripe/orders/payments_spec.rb +119 -0
- data/spec/system/frontend/.keep +0 -0
- data/spec/system/frontend/solidus_stripe/checkout_spec.rb +187 -0
- data/tmp/.keep +0 -0
- metadata +201 -75
- data/.rubocop_todo.yml +0 -298
- data/.travis.yml +0 -28
- data/app/assets/javascripts/spree/frontend/solidus_stripe/stripe-cart-page-checkout.js +0 -122
- data/app/assets/javascripts/spree/frontend/solidus_stripe/stripe-elements.js +0 -148
- data/app/assets/javascripts/spree/frontend/solidus_stripe/stripe-init.js +0 -20
- data/app/assets/javascripts/spree/frontend/solidus_stripe/stripe-payment-intents.js +0 -84
- data/app/assets/javascripts/spree/frontend/solidus_stripe/stripe-payment-request-button-shared.js +0 -160
- data/app/assets/javascripts/spree/frontend/solidus_stripe/stripe-payment.js +0 -16
- data/app/assets/javascripts/spree/frontend/solidus_stripe.js +0 -6
- data/app/controllers/solidus_stripe/payment_request_controller.rb +0 -52
- data/app/controllers/spree/stripe_controller.rb +0 -13
- data/app/decorators/models/spree/order_update_attributes_decorator.rb +0 -39
- data/app/decorators/models/spree/payment_decorator.rb +0 -11
- data/app/decorators/models/spree/refund_decorator.rb +0 -9
- data/app/models/solidus_stripe/address_from_params_service.rb +0 -72
- data/app/models/solidus_stripe/create_intents_payment_service.rb +0 -114
- data/app/models/solidus_stripe/prepare_order_for_payment_service.rb +0 -46
- data/app/models/solidus_stripe/shipping_rates_service.rb +0 -46
- data/app/models/spree/payment_method/stripe_credit_card.rb +0 -230
- data/bin/r +0 -13
- data/bin/sandbox_rails +0 -18
- data/db/migrate/20181010123508_update_stripe_payment_method_type_to_credit_card.rb +0 -21
- data/lib/assets/stylesheets/spree/frontend/solidus_stripe.scss +0 -11
- data/lib/solidus_stripe/testing_support/card_input_helper.rb +0 -34
- data/lib/tasks/solidus_stripe/db/seed.rake +0 -14
- data/lib/views/api/spree/api/payments/source_views/_stripe.json.jbuilder +0 -3
- data/lib/views/backend/spree/admin/log_entries/_stripe.html.erb +0 -28
- data/lib/views/backend/spree/admin/payments/source_forms/_stripe.html.erb +0 -1
- data/lib/views/backend/spree/admin/payments/source_views/_stripe.html.erb +0 -1
- data/lib/views/frontend/spree/checkout/existing_payment/_stripe.html.erb +0 -1
- data/lib/views/frontend/spree/checkout/payment/_stripe.html.erb +0 -8
- data/lib/views/frontend/spree/checkout/payment/v2/_javascript.html.erb +0 -78
- data/lib/views/frontend/spree/checkout/payment/v3/_elements.html.erb +0 -1
- data/lib/views/frontend/spree/checkout/payment/v3/_form_elements.html.erb +0 -40
- data/lib/views/frontend/spree/checkout/payment/v3/_intents.html.erb +0 -1
- data/lib/views/frontend/spree/checkout/payment/v3/_stripe.html.erb +0 -2
- data/lib/views/frontend/spree/orders/_stripe_payment_request_button.html.erb +0 -14
- data/spec/features/stripe_checkout_spec.rb +0 -486
- data/spec/models/solidus_stripe/address_from_params_service_spec.rb +0 -87
- data/spec/models/solidus_stripe/create_intents_payment_service_spec.rb +0 -127
- data/spec/models/solidus_stripe/prepare_order_for_payment_service_spec.rb +0 -65
- data/spec/models/solidus_stripe/shipping_rates_service_spec.rb +0 -54
- data/spec/models/spree/payment_method/stripe_credit_card_spec.rb +0 -350
- data/spec/requests/payment_requests_spec.rb +0 -152
- data/spec/spec_helper.rb +0 -37
- data/spec/support/solidus_address_helper.rb +0 -15
data/.rubocop_todo.yml
DELETED
@@ -1,298 +0,0 @@
|
|
1
|
-
# This configuration was generated by
|
2
|
-
# `rubocop --auto-gen-config`
|
3
|
-
# on 2022-08-30 14:09:43 UTC using RuboCop version 1.35.1.
|
4
|
-
# The point is for the user to remove these configuration records
|
5
|
-
# one by one as the offenses are removed from the code base.
|
6
|
-
# Note that changes in the inspected code, or installation of new
|
7
|
-
# versions of RuboCop, may require this file to be generated again.
|
8
|
-
|
9
|
-
# Offense count: 1
|
10
|
-
# This cop supports safe autocorrection (--autocorrect).
|
11
|
-
# Configuration parameters: TreatCommentsAsGroupSeparators, ConsiderPunctuation, Include.
|
12
|
-
# Include: **/*.gemspec
|
13
|
-
Gemspec/OrderedDependencies:
|
14
|
-
Exclude:
|
15
|
-
- 'solidus_stripe.gemspec'
|
16
|
-
|
17
|
-
# Offense count: 3
|
18
|
-
# This cop supports safe autocorrection (--autocorrect).
|
19
|
-
# Configuration parameters: EnforcedStyle, IndentationWidth.
|
20
|
-
# SupportedStyles: with_first_argument, with_fixed_indentation
|
21
|
-
Layout/ArgumentAlignment:
|
22
|
-
Exclude:
|
23
|
-
- 'spec/models/spree/payment_method/stripe_credit_card_spec.rb'
|
24
|
-
|
25
|
-
# Offense count: 2
|
26
|
-
# This cop supports safe autocorrection (--autocorrect).
|
27
|
-
Layout/ClosingParenthesisIndentation:
|
28
|
-
Exclude:
|
29
|
-
- 'spec/requests/payment_requests_spec.rb'
|
30
|
-
|
31
|
-
# Offense count: 2
|
32
|
-
# This cop supports safe autocorrection (--autocorrect).
|
33
|
-
Layout/ElseAlignment:
|
34
|
-
Exclude:
|
35
|
-
- 'app/models/solidus_stripe/address_from_params_service.rb'
|
36
|
-
- 'spec/models/solidus_stripe/address_from_params_service_spec.rb'
|
37
|
-
|
38
|
-
# Offense count: 2
|
39
|
-
# This cop supports safe autocorrection (--autocorrect).
|
40
|
-
# Configuration parameters: EnforcedStyleAlignWith, Severity.
|
41
|
-
# SupportedStylesAlignWith: keyword, variable, start_of_line
|
42
|
-
Layout/EndAlignment:
|
43
|
-
Exclude:
|
44
|
-
- 'app/models/solidus_stripe/address_from_params_service.rb'
|
45
|
-
- 'spec/models/solidus_stripe/address_from_params_service_spec.rb'
|
46
|
-
|
47
|
-
# Offense count: 2
|
48
|
-
# This cop supports safe autocorrection (--autocorrect).
|
49
|
-
# Configuration parameters: Width, AllowedPatterns, IgnoredPatterns.
|
50
|
-
Layout/IndentationWidth:
|
51
|
-
Exclude:
|
52
|
-
- 'app/models/solidus_stripe/address_from_params_service.rb'
|
53
|
-
- 'spec/models/solidus_stripe/address_from_params_service_spec.rb'
|
54
|
-
|
55
|
-
# Offense count: 2
|
56
|
-
# This cop supports safe autocorrection (--autocorrect).
|
57
|
-
# Configuration parameters: EnforcedStyle.
|
58
|
-
# SupportedStyles: symmetrical, new_line, same_line
|
59
|
-
Layout/MultilineMethodCallBraceLayout:
|
60
|
-
Exclude:
|
61
|
-
- 'spec/models/spree/payment_method/stripe_credit_card_spec.rb'
|
62
|
-
|
63
|
-
# Offense count: 1
|
64
|
-
# This cop supports safe autocorrection (--autocorrect).
|
65
|
-
# Configuration parameters: EnforcedStyle, IndentationWidth.
|
66
|
-
# SupportedStyles: aligned, indented, indented_relative_to_receiver
|
67
|
-
Layout/MultilineMethodCallIndentation:
|
68
|
-
Exclude:
|
69
|
-
- 'spec/models/solidus_stripe/prepare_order_for_payment_service_spec.rb'
|
70
|
-
|
71
|
-
# Offense count: 1
|
72
|
-
# This cop supports safe autocorrection (--autocorrect).
|
73
|
-
# Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBrackets.
|
74
|
-
# SupportedStyles: space, no_space, compact
|
75
|
-
# SupportedStylesForEmptyBrackets: space, no_space
|
76
|
-
Layout/SpaceInsideArrayLiteralBrackets:
|
77
|
-
Exclude:
|
78
|
-
- 'spec/models/solidus_stripe/address_from_params_service_spec.rb'
|
79
|
-
|
80
|
-
# Offense count: 5
|
81
|
-
# Configuration parameters: AllowedMethods, AllowedPatterns, IgnoredMethods.
|
82
|
-
Lint/AmbiguousBlockAssociation:
|
83
|
-
Exclude:
|
84
|
-
- 'spec/models/solidus_stripe/create_intents_payment_service_spec.rb'
|
85
|
-
- 'spec/models/solidus_stripe/prepare_order_for_payment_service_spec.rb'
|
86
|
-
- 'spec/requests/payment_requests_spec.rb'
|
87
|
-
|
88
|
-
# Offense count: 2
|
89
|
-
# This cop supports safe autocorrection (--autocorrect).
|
90
|
-
Lint/RedundantCopDisableDirective:
|
91
|
-
Exclude:
|
92
|
-
- 'bin/sandbox_rails'
|
93
|
-
- 'lib/generators/solidus_stripe/install/install_generator.rb'
|
94
|
-
|
95
|
-
# Offense count: 10
|
96
|
-
RSpec/AnyInstance:
|
97
|
-
Exclude:
|
98
|
-
- 'spec/models/solidus_stripe/create_intents_payment_service_spec.rb'
|
99
|
-
- 'spec/requests/payment_requests_spec.rb'
|
100
|
-
|
101
|
-
# Offense count: 6
|
102
|
-
# Configuration parameters: Prefixes.
|
103
|
-
# Prefixes: when, with, without
|
104
|
-
RSpec/ContextWording:
|
105
|
-
Exclude:
|
106
|
-
- 'spec/models/spree/payment_method/stripe_credit_card_spec.rb'
|
107
|
-
|
108
|
-
# Offense count: 8
|
109
|
-
# This cop supports unsafe autocorrection (--autocorrect-all).
|
110
|
-
# Configuration parameters: EnforcedStyle.
|
111
|
-
# SupportedStyles: method_call, block
|
112
|
-
RSpec/ExpectChange:
|
113
|
-
Exclude:
|
114
|
-
- 'spec/models/solidus_stripe/create_intents_payment_service_spec.rb'
|
115
|
-
- 'spec/models/solidus_stripe/prepare_order_for_payment_service_spec.rb'
|
116
|
-
- 'spec/models/spree/payment_method/stripe_credit_card_spec.rb'
|
117
|
-
|
118
|
-
# Offense count: 6
|
119
|
-
RSpec/ExpectInHook:
|
120
|
-
Exclude:
|
121
|
-
- 'spec/features/stripe_checkout_spec.rb'
|
122
|
-
|
123
|
-
# Offense count: 1
|
124
|
-
# This cop supports safe autocorrection (--autocorrect).
|
125
|
-
RSpec/LeadingSubject:
|
126
|
-
Exclude:
|
127
|
-
- 'spec/models/solidus_stripe/address_from_params_service_spec.rb'
|
128
|
-
|
129
|
-
# Offense count: 2
|
130
|
-
RSpec/LetSetup:
|
131
|
-
Exclude:
|
132
|
-
- 'spec/models/solidus_stripe/prepare_order_for_payment_service_spec.rb'
|
133
|
-
- 'spec/models/spree/payment_method/stripe_credit_card_spec.rb'
|
134
|
-
|
135
|
-
# Offense count: 9
|
136
|
-
# Configuration parameters: .
|
137
|
-
# SupportedStyles: have_received, receive
|
138
|
-
RSpec/MessageSpies:
|
139
|
-
EnforcedStyle: receive
|
140
|
-
|
141
|
-
# Offense count: 13
|
142
|
-
RSpec/MultipleExpectations:
|
143
|
-
Max: 15
|
144
|
-
|
145
|
-
# Offense count: 40
|
146
|
-
# Configuration parameters: AllowSubject.
|
147
|
-
RSpec/MultipleMemoizedHelpers:
|
148
|
-
Max: 11
|
149
|
-
|
150
|
-
# Offense count: 47
|
151
|
-
# Configuration parameters: IgnoreSharedExamples.
|
152
|
-
RSpec/NamedSubject:
|
153
|
-
Exclude:
|
154
|
-
- 'spec/models/solidus_stripe/address_from_params_service_spec.rb'
|
155
|
-
- 'spec/models/solidus_stripe/create_intents_payment_service_spec.rb'
|
156
|
-
- 'spec/models/solidus_stripe/prepare_order_for_payment_service_spec.rb'
|
157
|
-
- 'spec/models/solidus_stripe/shipping_rates_service_spec.rb'
|
158
|
-
- 'spec/models/spree/payment_method/stripe_credit_card_spec.rb'
|
159
|
-
|
160
|
-
# Offense count: 13
|
161
|
-
RSpec/NestedGroups:
|
162
|
-
Max: 5
|
163
|
-
|
164
|
-
# Offense count: 2
|
165
|
-
RSpec/RepeatedExampleGroupBody:
|
166
|
-
Exclude:
|
167
|
-
- 'spec/models/spree/payment_method/stripe_credit_card_spec.rb'
|
168
|
-
|
169
|
-
# Offense count: 3
|
170
|
-
# This cop supports safe autocorrection (--autocorrect).
|
171
|
-
# Configuration parameters: EnforcedStyle.
|
172
|
-
# SupportedStyles: and_return, block
|
173
|
-
RSpec/ReturnFromStub:
|
174
|
-
Exclude:
|
175
|
-
- 'spec/models/solidus_stripe/create_intents_payment_service_spec.rb'
|
176
|
-
- 'spec/models/spree/payment_method/stripe_credit_card_spec.rb'
|
177
|
-
|
178
|
-
# Offense count: 4
|
179
|
-
RSpec/StubbedMock:
|
180
|
-
Exclude:
|
181
|
-
- 'spec/models/spree/payment_method/stripe_credit_card_spec.rb'
|
182
|
-
|
183
|
-
# Offense count: 3
|
184
|
-
RSpec/SubjectStub:
|
185
|
-
Exclude:
|
186
|
-
- 'spec/models/spree/payment_method/stripe_credit_card_spec.rb'
|
187
|
-
|
188
|
-
# Offense count: 12
|
189
|
-
# Configuration parameters: IgnoreNameless, IgnoreSymbolicNames.
|
190
|
-
RSpec/VerifiedDoubles:
|
191
|
-
Exclude:
|
192
|
-
- 'spec/models/solidus_stripe/create_intents_payment_service_spec.rb'
|
193
|
-
- 'spec/models/solidus_stripe/prepare_order_for_payment_service_spec.rb'
|
194
|
-
- 'spec/models/spree/payment_method/stripe_credit_card_spec.rb'
|
195
|
-
|
196
|
-
# Offense count: 1
|
197
|
-
# This cop supports safe autocorrection (--autocorrect).
|
198
|
-
# Configuration parameters: EnforceForPrefixed.
|
199
|
-
Rails/Delegate:
|
200
|
-
Exclude:
|
201
|
-
- 'app/models/spree/payment_method/stripe_credit_card.rb'
|
202
|
-
|
203
|
-
# Offense count: 1
|
204
|
-
# This cop supports unsafe autocorrection (--autocorrect-all).
|
205
|
-
# Configuration parameters: Whitelist, AllowedMethods, AllowedReceivers.
|
206
|
-
# Whitelist: find_by_sql
|
207
|
-
# AllowedMethods: find_by_sql
|
208
|
-
# AllowedReceivers: Gem::Specification
|
209
|
-
Rails/DynamicFindBy:
|
210
|
-
Exclude:
|
211
|
-
- 'app/models/solidus_stripe/address_from_params_service.rb'
|
212
|
-
|
213
|
-
# Offense count: 1
|
214
|
-
# This cop supports safe autocorrection (--autocorrect).
|
215
|
-
# Configuration parameters: Include, IgnoredMethods.
|
216
|
-
# Include: app/models/**/*.rb
|
217
|
-
# IgnoredMethods: order, limit, select, lock
|
218
|
-
Rails/FindEach:
|
219
|
-
Exclude:
|
220
|
-
- 'app/models/solidus_stripe/create_intents_payment_service.rb'
|
221
|
-
|
222
|
-
# Offense count: 5
|
223
|
-
# This cop supports unsafe autocorrection (--autocorrect-all).
|
224
|
-
# Configuration parameters: Include.
|
225
|
-
# Include: app/**/*.rb, config/**/*.rb, db/**/*.rb, lib/**/*.rb
|
226
|
-
Rails/Output:
|
227
|
-
Exclude:
|
228
|
-
- 'db/seeds.rb'
|
229
|
-
|
230
|
-
# Offense count: 3
|
231
|
-
# Configuration parameters: ForbiddenMethods, AllowedMethods.
|
232
|
-
# ForbiddenMethods: decrement!, decrement_counter, increment!, increment_counter, insert, insert!, insert_all, insert_all!, toggle!, touch, touch_all, update_all, update_attribute, update_column, update_columns, update_counters, upsert, upsert_all
|
233
|
-
Rails/SkipsModelValidations:
|
234
|
-
Exclude:
|
235
|
-
- 'db/migrate/20181010123508_update_stripe_payment_method_type_to_credit_card.rb'
|
236
|
-
- 'spec/models/solidus_stripe/shipping_rates_service_spec.rb'
|
237
|
-
|
238
|
-
# Offense count: 1
|
239
|
-
# This cop supports safe autocorrection (--autocorrect).
|
240
|
-
# Configuration parameters: EnforcedStyle, SingleLineConditionsOnly, IncludeTernaryExpressions.
|
241
|
-
# SupportedStyles: assign_to_condition, assign_inside_condition
|
242
|
-
Style/ConditionalAssignment:
|
243
|
-
Exclude:
|
244
|
-
- 'app/models/spree/payment_method/stripe_credit_card.rb'
|
245
|
-
|
246
|
-
# Offense count: 1
|
247
|
-
# This cop supports safe autocorrection (--autocorrect).
|
248
|
-
Style/ExplicitBlockArgument:
|
249
|
-
Exclude:
|
250
|
-
- 'spec/features/stripe_checkout_spec.rb'
|
251
|
-
|
252
|
-
# Offense count: 2
|
253
|
-
# Configuration parameters: MinBodyLength, AllowConsecutiveConditionals.
|
254
|
-
Style/GuardClause:
|
255
|
-
Exclude:
|
256
|
-
- 'app/decorators/models/spree/order_update_attributes_decorator.rb'
|
257
|
-
- 'app/models/solidus_stripe/create_intents_payment_service.rb'
|
258
|
-
|
259
|
-
# Offense count: 1
|
260
|
-
# This cop supports safe autocorrection (--autocorrect).
|
261
|
-
Style/MultilineIfModifier:
|
262
|
-
Exclude:
|
263
|
-
- 'app/models/spree/payment_method/stripe_credit_card.rb'
|
264
|
-
|
265
|
-
# Offense count: 1
|
266
|
-
# This cop supports unsafe autocorrection (--autocorrect-all).
|
267
|
-
# Configuration parameters: EnforcedStyle.
|
268
|
-
# SupportedStyles: literals, strict
|
269
|
-
Style/MutableConstant:
|
270
|
-
Exclude:
|
271
|
-
- 'app/models/spree/payment_method/stripe_credit_card.rb'
|
272
|
-
|
273
|
-
# Offense count: 2
|
274
|
-
# This cop supports safe autocorrection (--autocorrect).
|
275
|
-
# Configuration parameters: AllowedMethods.
|
276
|
-
# AllowedMethods: be, be_a, be_an, be_between, be_falsey, be_kind_of, be_instance_of, be_truthy, be_within, eq, eql, end_with, include, match, raise_error, respond_to, start_with
|
277
|
-
Style/NestedParenthesizedCalls:
|
278
|
-
Exclude:
|
279
|
-
- 'lib/solidus_stripe/testing_support/card_input_helper.rb'
|
280
|
-
|
281
|
-
# Offense count: 1
|
282
|
-
# This cop supports safe autocorrection (--autocorrect).
|
283
|
-
Style/RedundantBegin:
|
284
|
-
Exclude:
|
285
|
-
- 'app/models/solidus_stripe/address_from_params_service.rb'
|
286
|
-
|
287
|
-
# Offense count: 1
|
288
|
-
# This cop supports unsafe autocorrection (--autocorrect-all).
|
289
|
-
Style/RedundantInterpolation:
|
290
|
-
Exclude:
|
291
|
-
- 'lib/solidus_stripe/testing_support/card_input_helper.rb'
|
292
|
-
|
293
|
-
# Offense count: 19
|
294
|
-
# This cop supports safe autocorrection (--autocorrect).
|
295
|
-
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns, IgnoredPatterns.
|
296
|
-
# URISchemes: http, https
|
297
|
-
Layout/LineLength:
|
298
|
-
Max: 163
|
data/.travis.yml
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
sudo: required
|
2
|
-
dist: trusty
|
3
|
-
cache: bundler
|
4
|
-
language: ruby
|
5
|
-
addons:
|
6
|
-
chrome: stable
|
7
|
-
rvm:
|
8
|
-
- 2.5.1
|
9
|
-
before_install:
|
10
|
-
- mysql -e "GRANT ALL PRIVILEGES ON *.* TO 'travis'@'%';"
|
11
|
-
before_script:
|
12
|
-
- "export DISPLAY=:99.0"
|
13
|
-
- "sh -e /etc/init.d/xvfb start"
|
14
|
-
- sleep 3 # give xvfb some time to start
|
15
|
-
env:
|
16
|
-
matrix:
|
17
|
-
- SOLIDUS_BRANCH=v2.4 DB=postgres
|
18
|
-
- SOLIDUS_BRANCH=v2.5 DB=postgres
|
19
|
-
- SOLIDUS_BRANCH=v2.6 DB=postgres
|
20
|
-
- SOLIDUS_BRANCH=v2.7 DB=postgres
|
21
|
-
- SOLIDUS_BRANCH=v2.8 DB=postgres
|
22
|
-
- SOLIDUS_BRANCH=master DB=postgres
|
23
|
-
- SOLIDUS_BRANCH=v2.4 DB=mysql
|
24
|
-
- SOLIDUS_BRANCH=v2.5 DB=mysql
|
25
|
-
- SOLIDUS_BRANCH=v2.6 DB=mysql
|
26
|
-
- SOLIDUS_BRANCH=v2.7 DB=mysql
|
27
|
-
- SOLIDUS_BRANCH=v2.8 DB=mysql
|
28
|
-
- SOLIDUS_BRANCH=master DB=mysql
|
@@ -1,122 +0,0 @@
|
|
1
|
-
SolidusStripe.CartPageCheckout = function() {
|
2
|
-
SolidusStripe.Payment.call(this);
|
3
|
-
|
4
|
-
this.errorElement = $('#card-errors');
|
5
|
-
};
|
6
|
-
|
7
|
-
SolidusStripe.CartPageCheckout.prototype = Object.create(SolidusStripe.Payment.prototype);
|
8
|
-
Object.defineProperty(SolidusStripe.CartPageCheckout.prototype, 'constructor', {
|
9
|
-
value: SolidusStripe.CartPageCheckout,
|
10
|
-
enumerable: false,
|
11
|
-
writable: true
|
12
|
-
});
|
13
|
-
|
14
|
-
SolidusStripe.CartPageCheckout.prototype.init = function() {
|
15
|
-
this.setUpPaymentRequest({requestShipping: true});
|
16
|
-
};
|
17
|
-
|
18
|
-
SolidusStripe.CartPageCheckout.prototype.showError = function(error) {
|
19
|
-
var message = error.message || error;
|
20
|
-
|
21
|
-
this.errorElement.text(message).show();
|
22
|
-
};
|
23
|
-
|
24
|
-
SolidusStripe.CartPageCheckout.prototype.submitPayment = function(payment) {
|
25
|
-
var showError = this.showError.bind(this);
|
26
|
-
var prTokenHandler = this.prTokenHandler.bind(this);
|
27
|
-
|
28
|
-
$.ajax({
|
29
|
-
url: $('[data-submit-url]').data('submit-url'),
|
30
|
-
headers: {
|
31
|
-
'X-Spree-Order-Token': $('[data-order-token]').data('order-token')
|
32
|
-
},
|
33
|
-
type: 'PATCH',
|
34
|
-
contentType: 'application/json',
|
35
|
-
data: JSON.stringify(prTokenHandler(payment.paymentMethod)),
|
36
|
-
success: function() {
|
37
|
-
window.location = $('[data-complete-url]').data('complete-url');
|
38
|
-
},
|
39
|
-
error: function(xhr,status,error) {
|
40
|
-
showError(xhr.responseJSON.error);
|
41
|
-
}
|
42
|
-
});
|
43
|
-
};
|
44
|
-
|
45
|
-
SolidusStripe.CartPageCheckout.prototype.onPrPayment = function(payment) {
|
46
|
-
var createIntent = this.createIntent.bind(this);
|
47
|
-
|
48
|
-
fetch('/stripe/update_order', {
|
49
|
-
method: 'POST',
|
50
|
-
headers: { 'Content-Type': 'application/json' },
|
51
|
-
body: JSON.stringify({
|
52
|
-
shipping_address: payment.shippingAddress,
|
53
|
-
shipping_option: payment.shippingOption,
|
54
|
-
email: payment.payerEmail,
|
55
|
-
name: payment.payerName,
|
56
|
-
phone: payment.payerPhone,
|
57
|
-
authenticity_token: this.authToken
|
58
|
-
})
|
59
|
-
}).then(function(response) {
|
60
|
-
response.json().then(function(json) {
|
61
|
-
createIntent(json, payment);
|
62
|
-
})
|
63
|
-
});
|
64
|
-
};
|
65
|
-
|
66
|
-
SolidusStripe.CartPageCheckout.prototype.createIntent = function(result, payment) {
|
67
|
-
var handleServerResponse = this.handleServerResponse.bind(this);
|
68
|
-
|
69
|
-
if (result.error) {
|
70
|
-
this.completePaymentRequest(payment, 'fail');
|
71
|
-
this.showError(result.error);
|
72
|
-
} else {
|
73
|
-
if (payment.error) {
|
74
|
-
this.showError(payment.error.message);
|
75
|
-
} else {
|
76
|
-
fetch('/stripe/create_intent', {
|
77
|
-
method: 'POST',
|
78
|
-
headers: {
|
79
|
-
'Content-Type': 'application/json'
|
80
|
-
},
|
81
|
-
body: JSON.stringify({
|
82
|
-
form_data: payment.shippingAddress,
|
83
|
-
spree_payment_method_id: this.config.id,
|
84
|
-
stripe_payment_method_id: payment.paymentMethod.id,
|
85
|
-
authenticity_token: this.authToken
|
86
|
-
})
|
87
|
-
}).then(function(response) {
|
88
|
-
response.json().then(function(result) {
|
89
|
-
handleServerResponse(result, payment)
|
90
|
-
})
|
91
|
-
});
|
92
|
-
}
|
93
|
-
}
|
94
|
-
};
|
95
|
-
|
96
|
-
SolidusStripe.CartPageCheckout.prototype.onPrButtonMounted = function(buttonId, success) {
|
97
|
-
var container = document.getElementById(buttonId).parentElement;
|
98
|
-
|
99
|
-
if (success) {
|
100
|
-
container.style.display = '';
|
101
|
-
} else {
|
102
|
-
container.style.display = 'none';
|
103
|
-
}
|
104
|
-
};
|
105
|
-
|
106
|
-
SolidusStripe.CartPageCheckout.prototype.prTokenHandler = function(token) {
|
107
|
-
return {
|
108
|
-
order: {
|
109
|
-
payments_attributes: [
|
110
|
-
{
|
111
|
-
payment_method_id: this.config.id,
|
112
|
-
source_attributes: {
|
113
|
-
gateway_payment_profile_id: token.id,
|
114
|
-
last_digits: token.card.last4,
|
115
|
-
month: token.card.exp_month,
|
116
|
-
year: token.card.exp_year
|
117
|
-
}
|
118
|
-
}
|
119
|
-
]
|
120
|
-
}
|
121
|
-
}
|
122
|
-
};
|
@@ -1,148 +0,0 @@
|
|
1
|
-
SolidusStripe.Elements = function() {
|
2
|
-
SolidusStripe.Payment.call(this);
|
3
|
-
|
4
|
-
this.form = this.element.parents('form');
|
5
|
-
this.errorElement = this.form.find('#card-errors');
|
6
|
-
this.submitButton = this.form.find('input[type="submit"]');
|
7
|
-
};
|
8
|
-
|
9
|
-
SolidusStripe.Elements.prototype = Object.create(SolidusStripe.Payment.prototype);
|
10
|
-
Object.defineProperty(SolidusStripe.Elements.prototype, 'constructor', {
|
11
|
-
value: SolidusStripe.Elements,
|
12
|
-
enumerable: false,
|
13
|
-
writable: true
|
14
|
-
});
|
15
|
-
|
16
|
-
SolidusStripe.Elements.prototype.init = function() {
|
17
|
-
this.initElements();
|
18
|
-
};
|
19
|
-
|
20
|
-
SolidusStripe.Elements.prototype.initElements = function() {
|
21
|
-
var cardExpiry = this.elements.create('cardExpiry', this.cardExpiryElementOptions());
|
22
|
-
cardExpiry.mount('#card_expiry');
|
23
|
-
|
24
|
-
var cardCvc = this.elements.create('cardCvc', this.cardCvcElementOptions());
|
25
|
-
cardCvc.mount('#card_cvc');
|
26
|
-
|
27
|
-
this.cardNumber = this.elements.create('cardNumber', this.cardNumberElementOptions());
|
28
|
-
this.cardNumber.mount('#card_number');
|
29
|
-
|
30
|
-
this.form.bind('submit', this.onFormSubmit.bind(this));
|
31
|
-
|
32
|
-
// Listen for errors from each input field.
|
33
|
-
// Adapted from https://github.com/stripe/elements-examples/blob/master/js/index.js
|
34
|
-
var savedErrors = {};
|
35
|
-
[cardExpiry, cardCvc, this.cardNumber].forEach(function(element, idx) {
|
36
|
-
element.on('change', function(event) {
|
37
|
-
if (event.error) {
|
38
|
-
savedErrors[idx] = event.error.message;
|
39
|
-
this.showError(event.error.message);
|
40
|
-
} else {
|
41
|
-
savedErrors[idx] = null;
|
42
|
-
|
43
|
-
// Loop over the saved errors and find the first one, if any.
|
44
|
-
var nextError = Object.keys(savedErrors)
|
45
|
-
.sort()
|
46
|
-
.reduce(function(maybeFoundError, key) {
|
47
|
-
return maybeFoundError || savedErrors[key];
|
48
|
-
}, null);
|
49
|
-
|
50
|
-
if (nextError) {
|
51
|
-
// Now that they've fixed the current error, show another one.
|
52
|
-
this.showError(nextError);
|
53
|
-
} else {
|
54
|
-
// The user fixed the last error; no more errors.
|
55
|
-
this.errorElement.hide().text('');
|
56
|
-
}
|
57
|
-
}
|
58
|
-
}.bind(this));
|
59
|
-
}.bind(this));
|
60
|
-
};
|
61
|
-
|
62
|
-
SolidusStripe.Elements.prototype.baseStyle = function () {
|
63
|
-
return {
|
64
|
-
base: {
|
65
|
-
color: 'black',
|
66
|
-
fontFamily: '"Helvetica Neue", Helvetica, sans-serif',
|
67
|
-
fontSmoothing: 'antialiased',
|
68
|
-
fontSize: '14px',
|
69
|
-
'::placeholder': {
|
70
|
-
color: 'silver'
|
71
|
-
}
|
72
|
-
},
|
73
|
-
invalid: {
|
74
|
-
color: 'red',
|
75
|
-
iconColor: 'red'
|
76
|
-
}
|
77
|
-
};
|
78
|
-
};
|
79
|
-
|
80
|
-
SolidusStripe.Elements.prototype.cardNumberElementOptions = function () {
|
81
|
-
return {
|
82
|
-
style: this.baseStyle()
|
83
|
-
}
|
84
|
-
}
|
85
|
-
|
86
|
-
SolidusStripe.Elements.prototype.cardExpiryElementOptions = function () {
|
87
|
-
return {
|
88
|
-
style: this.baseStyle()
|
89
|
-
}
|
90
|
-
}
|
91
|
-
|
92
|
-
SolidusStripe.Elements.prototype.cardCvcElementOptions = function () {
|
93
|
-
return {
|
94
|
-
style: this.baseStyle()
|
95
|
-
}
|
96
|
-
}
|
97
|
-
|
98
|
-
SolidusStripe.Elements.prototype.showError = function(error) {
|
99
|
-
var message = error.message || error;
|
100
|
-
|
101
|
-
this.errorElement.text(message).show();
|
102
|
-
this.submitButton.removeAttr('disabled').removeClass('disabled');
|
103
|
-
};
|
104
|
-
|
105
|
-
SolidusStripe.Elements.prototype.onFormSubmit = function(event) {
|
106
|
-
if (this.element.is(':visible')) {
|
107
|
-
event.preventDefault();
|
108
|
-
|
109
|
-
var onTokenCreate = function(result) {
|
110
|
-
if (result.error) {
|
111
|
-
this.showError(result.error.message);
|
112
|
-
} else {
|
113
|
-
this.elementsTokenHandler(result.token);
|
114
|
-
this.form[0].submit();
|
115
|
-
}
|
116
|
-
};
|
117
|
-
|
118
|
-
this.stripe.createToken(this.cardNumber).then(onTokenCreate.bind(this));
|
119
|
-
}
|
120
|
-
};
|
121
|
-
|
122
|
-
SolidusStripe.Elements.prototype.elementsTokenHandler = function(token) {
|
123
|
-
var mapCC = function(ccType) {
|
124
|
-
if (ccType === 'MasterCard' || ccType === 'mastercard') {
|
125
|
-
return 'mastercard';
|
126
|
-
} else if (ccType === 'Visa' || ccType === 'visa') {
|
127
|
-
return 'visa';
|
128
|
-
} else if (ccType === 'American Express' || ccType === 'amex') {
|
129
|
-
return 'amex';
|
130
|
-
} else if (ccType === 'Discover' || ccType === 'discover') {
|
131
|
-
return 'discover';
|
132
|
-
} else if (ccType === 'Diners Club' || ccType === 'diners') {
|
133
|
-
return 'dinersclub';
|
134
|
-
} else if (ccType === 'JCB' || ccType === 'jcb') {
|
135
|
-
return 'jcb';
|
136
|
-
} else if (ccType === 'Unionpay' || ccType === 'unionpay') {
|
137
|
-
return 'unionpay';
|
138
|
-
}
|
139
|
-
};
|
140
|
-
|
141
|
-
var baseSelector = `<input type='hidden' class='stripeToken' name='payment_source[${this.config.id}]`;
|
142
|
-
|
143
|
-
this.element.append(`${baseSelector}[gateway_payment_profile_id]' value='${token.id}'/>`);
|
144
|
-
this.element.append(`${baseSelector}[last_digits]' value='${token.card.last4}'/>`);
|
145
|
-
this.element.append(`${baseSelector}[month]' value='${token.card.exp_month}'/>`);
|
146
|
-
this.element.append(`${baseSelector}[year]' value='${token.card.exp_year}'/>`);
|
147
|
-
this.form.find('input#cc_type').val(mapCC(token.card.brand || token.card.type));
|
148
|
-
};
|
@@ -1,20 +0,0 @@
|
|
1
|
-
$(function() {
|
2
|
-
var stripeV3Api = $('[data-v3-api]').data('v3-api');
|
3
|
-
|
4
|
-
if (stripeV3Api) {
|
5
|
-
$.getScript('https://js.stripe.com/v3/')
|
6
|
-
.done(function() {
|
7
|
-
switch (stripeV3Api) {
|
8
|
-
case 'elements':
|
9
|
-
new SolidusStripe.Elements().init();
|
10
|
-
break;
|
11
|
-
case 'payment-intents':
|
12
|
-
new SolidusStripe.PaymentIntents().init();
|
13
|
-
break;
|
14
|
-
case 'payment-request-button':
|
15
|
-
new SolidusStripe.CartPageCheckout().init();
|
16
|
-
break;
|
17
|
-
}
|
18
|
-
});
|
19
|
-
}
|
20
|
-
});
|
@@ -1,84 +0,0 @@
|
|
1
|
-
SolidusStripe.PaymentIntents = function() {
|
2
|
-
SolidusStripe.Elements.call(this);
|
3
|
-
};
|
4
|
-
|
5
|
-
SolidusStripe.PaymentIntents.prototype = Object.create(SolidusStripe.Elements.prototype);
|
6
|
-
Object.defineProperty(SolidusStripe.PaymentIntents.prototype, 'constructor', {
|
7
|
-
value: SolidusStripe.PaymentIntents,
|
8
|
-
enumerable: false,
|
9
|
-
writable: true
|
10
|
-
});
|
11
|
-
|
12
|
-
SolidusStripe.PaymentIntents.prototype.init = function() {
|
13
|
-
this.setUpPaymentRequest();
|
14
|
-
this.initElements();
|
15
|
-
};
|
16
|
-
|
17
|
-
SolidusStripe.PaymentIntents.prototype.onPrPayment = function(payment) {
|
18
|
-
if (payment.error) {
|
19
|
-
this.showError(payment.error.message);
|
20
|
-
} else {
|
21
|
-
var that = this;
|
22
|
-
|
23
|
-
this.elementsTokenHandler(payment.paymentMethod);
|
24
|
-
fetch('/stripe/create_intent', {
|
25
|
-
method: 'POST',
|
26
|
-
headers: {
|
27
|
-
'Content-Type': 'application/json'
|
28
|
-
},
|
29
|
-
body: JSON.stringify({
|
30
|
-
form_data: this.form.serialize(),
|
31
|
-
spree_payment_method_id: this.config.id,
|
32
|
-
stripe_payment_method_id: payment.paymentMethod.id,
|
33
|
-
authenticity_token: this.authToken
|
34
|
-
})
|
35
|
-
}).then(function(response) {
|
36
|
-
response.json().then(function(json) {
|
37
|
-
that.handleServerResponse(json, payment);
|
38
|
-
})
|
39
|
-
});
|
40
|
-
}
|
41
|
-
};
|
42
|
-
|
43
|
-
SolidusStripe.PaymentIntents.prototype.onFormSubmit = function(event) {
|
44
|
-
if (this.element.is(':visible')) {
|
45
|
-
event.preventDefault();
|
46
|
-
|
47
|
-
this.errorElement.text('').hide();
|
48
|
-
|
49
|
-
this.stripe.createPaymentMethod(
|
50
|
-
'card',
|
51
|
-
this.cardNumber
|
52
|
-
).then(this.onIntentsPayment.bind(this));
|
53
|
-
}
|
54
|
-
};
|
55
|
-
|
56
|
-
SolidusStripe.PaymentIntents.prototype.submitPayment = function(_payment) {
|
57
|
-
this.form.unbind('submit').submit();
|
58
|
-
};
|
59
|
-
|
60
|
-
SolidusStripe.PaymentIntents.prototype.onIntentsPayment = function(payment) {
|
61
|
-
if (payment.error) {
|
62
|
-
this.showError(payment.error.message);
|
63
|
-
} else {
|
64
|
-
var that = this;
|
65
|
-
|
66
|
-
this.elementsTokenHandler(payment.paymentMethod);
|
67
|
-
fetch('/stripe/create_intent', {
|
68
|
-
method: 'POST',
|
69
|
-
headers: {
|
70
|
-
'Content-Type': 'application/json'
|
71
|
-
},
|
72
|
-
body: JSON.stringify({
|
73
|
-
form_data: this.form.serialize(),
|
74
|
-
spree_payment_method_id: this.config.id,
|
75
|
-
stripe_payment_method_id: payment.paymentMethod.id,
|
76
|
-
authenticity_token: this.authToken
|
77
|
-
})
|
78
|
-
}).then(function(response) {
|
79
|
-
response.json().then(function(json) {
|
80
|
-
that.handleServerResponse(json, payment);
|
81
|
-
})
|
82
|
-
});
|
83
|
-
}
|
84
|
-
};
|