spree_core 4.0.7 → 4.1.0.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/javascripts/spree.js +0 -1
- data/app/finders/spree/products/find.rb +19 -6
- data/app/finders/spree/variants/option_types_finder.rb +21 -0
- data/app/finders/spree/variants/visible_finder.rb +22 -0
- data/app/helpers/spree/base_helper.rb +48 -18
- data/app/helpers/spree/products_helper.rb +76 -8
- data/app/models/concerns/spree/user_methods.rb +2 -2
- data/app/models/spree/app_dependencies.rb +1 -7
- data/app/models/spree/credit_card.rb +4 -5
- data/app/models/spree/image.rb +52 -3
- data/app/models/spree/image/configuration/active_storage.rb +9 -1
- data/app/models/spree/line_item.rb +1 -2
- data/app/models/spree/option_type.rb +4 -0
- data/app/models/spree/order.rb +12 -12
- data/app/models/spree/order/address_book.rb +20 -7
- data/app/models/spree/payment_method.rb +8 -0
- data/app/models/spree/preferences/preferable.rb +1 -1
- data/app/models/spree/product.rb +7 -6
- data/app/models/spree/promotion/actions/create_item_adjustments.rb +1 -1
- data/app/models/spree/promotion_handler/coupon.rb +2 -1
- data/app/models/spree/return_item/eligibility_validator/base_validator.rb +1 -1
- data/app/models/spree/store.rb +2 -1
- data/app/models/spree/taxon.rb +2 -6
- data/app/models/spree/variant.rb +2 -14
- data/app/models/spree/zone.rb +6 -3
- data/app/presenters/spree/product_summary_presenter.rb +26 -0
- data/app/presenters/spree/variant_presenter.rb +69 -0
- data/app/presenters/spree/variants/option_types_presenter.rb +74 -0
- data/app/presenters/spree/variants/options_presenter.rb +49 -0
- data/app/services/spree/checkout/get_shipping_rates.rb +10 -7
- data/app/services/spree/checkout/update.rb +2 -13
- data/config/locales/en.yml +156 -14
- data/db/default/spree/stores.rb +8 -3
- data/db/migrate/20140309033438_create_store_from_preferences.rb +8 -4
- data/db/migrate/20191005121504_add_store_id_to_payment_methods.rb +7 -0
- data/db/migrate/20191016134113_add_deafult_value_for_store_default_currency.rb +5 -0
- data/db/migrate/20200102141311_add_social_to_spree_stores.rb +7 -0
- data/lib/generators/spree/dummy/dummy_generator.rb +2 -1
- data/lib/generators/spree/dummy/templates/initializers/bullet.rb +5 -0
- data/lib/generators/spree/install/install_generator.rb +13 -5
- data/lib/generators/spree/install/templates/config/initializers/spree.rb +0 -1
- data/lib/generators/spree/install/templates/config/initializers/spree_storefront.rb +1 -0
- data/lib/generators/spree/install/templates/config/spree_storefront.yml +67 -0
- data/lib/spree/core.rb +0 -1
- data/lib/spree/core/controller_helpers/order.rb +12 -6
- data/lib/spree/core/controller_helpers/store.rb +2 -2
- data/lib/spree/core/search/base.rb +59 -22
- data/lib/spree/core/version.rb +1 -3
- data/lib/spree/money.rb +8 -1
- data/lib/spree/permitted_attributes.rb +3 -2
- data/lib/spree/testing_support/capybara_ext.rb +0 -45
- data/lib/spree/testing_support/common_rake.rb +1 -1
- data/lib/spree/testing_support/factories/store_factory.rb +3 -0
- data/lib/spree/testing_support/order_walkthrough.rb +7 -3
- data/spree_core.gemspec +8 -14
- metadata +45 -24
- data/app/finders/spree/addresses/find.rb +0 -17
- data/app/services/spree/account/addresses/base.rb +0 -39
- data/app/services/spree/account/addresses/create.rb +0 -18
- data/app/services/spree/account/addresses/update.rb +0 -18
- data/lib/spree/database_type_utilities.rb +0 -12
@@ -39,7 +39,7 @@ module Spree
|
|
39
39
|
]
|
40
40
|
|
41
41
|
@@checkout_attributes = [
|
42
|
-
:coupon_code, :email, :shipping_method_id, :special_instructions, :use_billing,
|
42
|
+
:coupon_code, :email, :shipping_method_id, :special_instructions, :use_billing,
|
43
43
|
:user_id, :bill_address_id, :ship_address_id
|
44
44
|
]
|
45
45
|
|
@@ -97,7 +97,8 @@ module Spree
|
|
97
97
|
]
|
98
98
|
|
99
99
|
@@store_attributes = [:name, :url, :seo_title, :code, :meta_keywords,
|
100
|
-
:meta_description, :default_currency, :mail_from_address
|
100
|
+
:meta_description, :default_currency, :mail_from_address,
|
101
|
+
:facebook, :twitter, :instagram]
|
101
102
|
|
102
103
|
@@store_credit_attributes = %i[amount currency category_id memo]
|
103
104
|
|
@@ -32,51 +32,6 @@ module CapybaraExt
|
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
35
|
-
def select2_search(value, options)
|
36
|
-
options[:from] = select2_from_label(options[:from])
|
37
|
-
targetted_select2_search(value, options)
|
38
|
-
end
|
39
|
-
|
40
|
-
def targetted_select2_search(value, options)
|
41
|
-
select2_el = find(:css, options[:from])
|
42
|
-
select2_el.click
|
43
|
-
page.document.find('.select2-search input.select2-input,
|
44
|
-
.select2-search-field input.select2-input.select2-focused').send_keys(value)
|
45
|
-
select_select2_result(value)
|
46
|
-
end
|
47
|
-
|
48
|
-
def select2(value, options)
|
49
|
-
options[:from] = select2_from_label(options[:from])
|
50
|
-
targetted_select2(value, options)
|
51
|
-
end
|
52
|
-
|
53
|
-
def select2_from_label(from)
|
54
|
-
label = find(:label, from, class: '!select2-offscreen')
|
55
|
-
within label.first(:xpath, './/..') do
|
56
|
-
"##{find('.select2-container')['id']}"
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
def select2_no_label(value, options = {})
|
61
|
-
raise "Must pass a hash containing 'from'" if !options.is_a?(Hash) || !options.key?(:from)
|
62
|
-
|
63
|
-
placeholder = options[:from]
|
64
|
-
click_link placeholder
|
65
|
-
|
66
|
-
select_select2_result(value)
|
67
|
-
end
|
68
|
-
|
69
|
-
def targetted_select2(value, options)
|
70
|
-
# find select2 element and click it
|
71
|
-
find(options[:from]).find('a').click
|
72
|
-
select_select2_result(value)
|
73
|
-
end
|
74
|
-
|
75
|
-
def select_select2_result(value)
|
76
|
-
# results are in a div appended to the end of the document
|
77
|
-
page.document.find('div.select2-result-label', match: :first, text: %r{#{Regexp.escape(value)}}i).click
|
78
|
-
end
|
79
|
-
|
80
35
|
# arg delay in seconds
|
81
36
|
def wait_for_ajax(delay = Capybara.default_max_wait_time)
|
82
37
|
Timeout.timeout(delay) do
|
@@ -15,7 +15,7 @@ namespace :common do
|
|
15
15
|
Rails.env = 'test'
|
16
16
|
|
17
17
|
Spree::DummyGenerator.start ["--lib_name=#{ENV['LIB_NAME']}", '--quiet']
|
18
|
-
Spree::InstallGenerator.start ["--lib_name=#{ENV['LIB_NAME']}", '--auto-accept', '--migrate=false', '--seed=false', '--sample=false', '--quiet', '--
|
18
|
+
Spree::InstallGenerator.start ["--lib_name=#{ENV['LIB_NAME']}", '--auto-accept', '--migrate=false', '--seed=false', '--sample=false', '--quiet', '--copy_storefront=false', "--user_class=#{args[:user_class]}"]
|
19
19
|
|
20
20
|
puts 'Setting up dummy database...'
|
21
21
|
system("bundle exec rake db:drop db:create > #{File::NULL}")
|
@@ -1,7 +1,7 @@
|
|
1
1
|
class OrderWalkthrough
|
2
2
|
def self.up_to(state)
|
3
3
|
# A default store must exist to provide store settings
|
4
|
-
FactoryBot.create(:store
|
4
|
+
store = Spree::Store.default || FactoryBot.create(:store, default: true)
|
5
5
|
|
6
6
|
# A payment method must exist for an order to proceed through the Address state
|
7
7
|
unless Spree::PaymentMethod.exists?
|
@@ -18,7 +18,7 @@ class OrderWalkthrough
|
|
18
18
|
unless Spree::ShippingMethod.exists?
|
19
19
|
FactoryBot.create(:shipping_method).tap do |sm|
|
20
20
|
sm.calculator.preferred_amount = 10
|
21
|
-
sm.calculator.preferred_currency =
|
21
|
+
sm.calculator.preferred_currency = store.default_currency
|
22
22
|
sm.calculator.save
|
23
23
|
end
|
24
24
|
end
|
@@ -53,7 +53,11 @@ class OrderWalkthrough
|
|
53
53
|
end
|
54
54
|
|
55
55
|
def self.payment(order)
|
56
|
-
|
56
|
+
FactoryBot.create :payment,
|
57
|
+
order: order,
|
58
|
+
payment_method: Spree::PaymentMethod.first,
|
59
|
+
amount: order.total
|
60
|
+
|
57
61
|
# TODO: maybe look at some way of making this payment_state change automatic
|
58
62
|
order.payment_state = 'paid'
|
59
63
|
order.next!
|
data/spree_core.gemspec
CHANGED
@@ -6,23 +6,17 @@ Gem::Specification.new do |s|
|
|
6
6
|
s.platform = Gem::Platform::RUBY
|
7
7
|
s.name = 'spree_core'
|
8
8
|
s.version = Spree.version
|
9
|
-
s.author = 'Sean Schofield'
|
10
|
-
s.email = 'sean@spreecommerce.com'
|
11
9
|
s.summary = 'The bare bones necessary for Spree.'
|
12
10
|
s.description = 'The bare bones necessary for Spree.'
|
13
|
-
s.homepage = 'http://spreecommerce.org'
|
14
|
-
s.license = 'BSD-3-Clause'
|
15
|
-
|
16
|
-
s.metadata = {
|
17
|
-
"bug_tracker_uri" => "https://github.com/spree/spree/issues",
|
18
|
-
"changelog_uri" => "https://github.com/spree/spree/releases/tag/v#{s.version}",
|
19
|
-
"documentation_uri" => "https://guides.spreecommerce.org/",
|
20
|
-
"source_code_uri" => "https://github.com/spree/spree/tree/v#{s.version}",
|
21
|
-
}
|
22
11
|
|
23
12
|
s.required_ruby_version = '>= 2.5.0'
|
24
13
|
s.required_rubygems_version = '>= 1.8.23'
|
25
14
|
|
15
|
+
s.author = 'Sean Schofield'
|
16
|
+
s.email = 'sean@spreecommerce.com'
|
17
|
+
s.homepage = 'http://spreecommerce.org'
|
18
|
+
s.license = 'BSD-3-Clause'
|
19
|
+
|
26
20
|
s.files = `git ls-files`.split("\n").reject { |f| f.match(/^spec/) && !f.match(/^spec\/fixtures/) }
|
27
21
|
s.require_path = 'lib'
|
28
22
|
|
@@ -34,7 +28,7 @@ Gem::Specification.new do |s|
|
|
34
28
|
s.add_dependency 'ffaker', '~> 2.9'
|
35
29
|
s.add_dependency 'friendly_id', '>= 5.2.1', '< 5.4.0'
|
36
30
|
s.add_dependency 'highline', '~> 2.0.0' # Necessary for the install generator
|
37
|
-
s.add_dependency 'kaminari', '
|
31
|
+
s.add_dependency 'kaminari', '>= 1.0.1', '< 1.2.0'
|
38
32
|
s.add_dependency 'money', '~> 6.13'
|
39
33
|
s.add_dependency 'monetize', '~> 1.9'
|
40
34
|
s.add_dependency 'paranoia', '~> 2.4.2'
|
@@ -45,10 +39,10 @@ Gem::Specification.new do |s|
|
|
45
39
|
s.add_dependency 'state_machines-activerecord', '~> 0.6'
|
46
40
|
s.add_dependency 'state_machines-activemodel', '~> 0.7'
|
47
41
|
s.add_dependency 'stringex'
|
48
|
-
s.add_dependency 'twitter_cldr', '
|
42
|
+
s.add_dependency 'twitter_cldr', '>= 4.3', '< 6.0'
|
49
43
|
s.add_dependency 'sprockets', '~> 3.7'
|
50
44
|
s.add_dependency 'sprockets-rails'
|
51
|
-
s.add_dependency 'mini_magick', '
|
45
|
+
s.add_dependency 'mini_magick', '>= 4.9.4', '< 4.11.0'
|
52
46
|
s.add_dependency 'image_processing', '~> 1.2'
|
53
47
|
|
54
48
|
s.add_development_dependency 'email_spec', '~> 2.2'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spree_core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.
|
4
|
+
version: 4.1.0.rc1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sean Schofield
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-01-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemerchant
|
@@ -144,16 +144,22 @@ dependencies:
|
|
144
144
|
name: kaminari
|
145
145
|
requirement: !ruby/object:Gem::Requirement
|
146
146
|
requirements:
|
147
|
-
- - "
|
147
|
+
- - ">="
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: 1.0.1
|
150
|
+
- - "<"
|
148
151
|
- !ruby/object:Gem::Version
|
149
|
-
version: 1.2.
|
152
|
+
version: 1.2.0
|
150
153
|
type: :runtime
|
151
154
|
prerelease: false
|
152
155
|
version_requirements: !ruby/object:Gem::Requirement
|
153
156
|
requirements:
|
154
|
-
- - "
|
157
|
+
- - ">="
|
155
158
|
- !ruby/object:Gem::Version
|
156
|
-
version: 1.
|
159
|
+
version: 1.0.1
|
160
|
+
- - "<"
|
161
|
+
- !ruby/object:Gem::Version
|
162
|
+
version: 1.2.0
|
157
163
|
- !ruby/object:Gem::Dependency
|
158
164
|
name: money
|
159
165
|
requirement: !ruby/object:Gem::Requirement
|
@@ -298,16 +304,22 @@ dependencies:
|
|
298
304
|
name: twitter_cldr
|
299
305
|
requirement: !ruby/object:Gem::Requirement
|
300
306
|
requirements:
|
301
|
-
- - "
|
307
|
+
- - ">="
|
302
308
|
- !ruby/object:Gem::Version
|
303
309
|
version: '4.3'
|
310
|
+
- - "<"
|
311
|
+
- !ruby/object:Gem::Version
|
312
|
+
version: '6.0'
|
304
313
|
type: :runtime
|
305
314
|
prerelease: false
|
306
315
|
version_requirements: !ruby/object:Gem::Requirement
|
307
316
|
requirements:
|
308
|
-
- - "
|
317
|
+
- - ">="
|
309
318
|
- !ruby/object:Gem::Version
|
310
319
|
version: '4.3'
|
320
|
+
- - "<"
|
321
|
+
- !ruby/object:Gem::Version
|
322
|
+
version: '6.0'
|
311
323
|
- !ruby/object:Gem::Dependency
|
312
324
|
name: sprockets
|
313
325
|
requirement: !ruby/object:Gem::Requirement
|
@@ -340,16 +352,22 @@ dependencies:
|
|
340
352
|
name: mini_magick
|
341
353
|
requirement: !ruby/object:Gem::Requirement
|
342
354
|
requirements:
|
343
|
-
- - "
|
355
|
+
- - ">="
|
344
356
|
- !ruby/object:Gem::Version
|
345
357
|
version: 4.9.4
|
358
|
+
- - "<"
|
359
|
+
- !ruby/object:Gem::Version
|
360
|
+
version: 4.11.0
|
346
361
|
type: :runtime
|
347
362
|
prerelease: false
|
348
363
|
version_requirements: !ruby/object:Gem::Requirement
|
349
364
|
requirements:
|
350
|
-
- - "
|
365
|
+
- - ">="
|
351
366
|
- !ruby/object:Gem::Version
|
352
367
|
version: 4.9.4
|
368
|
+
- - "<"
|
369
|
+
- !ruby/object:Gem::Version
|
370
|
+
version: 4.11.0
|
353
371
|
- !ruby/object:Gem::Dependency
|
354
372
|
name: image_processing
|
355
373
|
requirement: !ruby/object:Gem::Requirement
|
@@ -394,7 +412,6 @@ files:
|
|
394
412
|
- app/assets/images/noimage/small.png
|
395
413
|
- app/assets/javascripts/spree.js
|
396
414
|
- app/controllers/spree/base_controller.rb
|
397
|
-
- app/finders/spree/addresses/find.rb
|
398
415
|
- app/finders/spree/countries/find.rb
|
399
416
|
- app/finders/spree/credit_cards/find.rb
|
400
417
|
- app/finders/spree/line_items/find_by_variant.rb
|
@@ -402,6 +419,8 @@ files:
|
|
402
419
|
- app/finders/spree/orders/find_current.rb
|
403
420
|
- app/finders/spree/products/find.rb
|
404
421
|
- app/finders/spree/taxons/find.rb
|
422
|
+
- app/finders/spree/variants/option_types_finder.rb
|
423
|
+
- app/finders/spree/variants/visible_finder.rb
|
405
424
|
- app/helpers/spree/base_helper.rb
|
406
425
|
- app/helpers/spree/products_helper.rb
|
407
426
|
- app/mailers/spree/base_mailer.rb
|
@@ -601,9 +620,10 @@ files:
|
|
601
620
|
- app/models/spree/zone.rb
|
602
621
|
- app/models/spree/zone_member.rb
|
603
622
|
- app/paginators/spree/shared/paginate.rb
|
604
|
-
- app/
|
605
|
-
- app/
|
606
|
-
- app/
|
623
|
+
- app/presenters/spree/product_summary_presenter.rb
|
624
|
+
- app/presenters/spree/variant_presenter.rb
|
625
|
+
- app/presenters/spree/variants/option_types_presenter.rb
|
626
|
+
- app/presenters/spree/variants/options_presenter.rb
|
607
627
|
- app/services/spree/cart/add_item.rb
|
608
628
|
- app/services/spree/cart/create.rb
|
609
629
|
- app/services/spree/cart/estimate_shipping_rates.rb
|
@@ -922,6 +942,9 @@ files:
|
|
922
942
|
- db/migrate/20181024100754_add_deleted_at_to_spree_credit_cards.rb
|
923
943
|
- db/migrate/20190305121659_add_iso_and_iso3_validation_on_presence_and_uniqueness.rb
|
924
944
|
- db/migrate/20190523092729_add_user_id_and_deleted_at_to_spree_addresses.rb
|
945
|
+
- db/migrate/20191005121504_add_store_id_to_payment_methods.rb
|
946
|
+
- db/migrate/20191016134113_add_deafult_value_for_store_default_currency.rb
|
947
|
+
- db/migrate/20200102141311_add_social_to_spree_stores.rb
|
925
948
|
- db/seeds.rb
|
926
949
|
- lib/friendly_id/slug_rails5_patch.rb
|
927
950
|
- lib/generators/spree/custom_user/custom_user_generator.rb
|
@@ -929,6 +952,7 @@ files:
|
|
929
952
|
- lib/generators/spree/custom_user/templates/initializer.rb.tt
|
930
953
|
- lib/generators/spree/custom_user/templates/migration.rb.tt
|
931
954
|
- lib/generators/spree/dummy/dummy_generator.rb
|
955
|
+
- lib/generators/spree/dummy/templates/initializers/bullet.rb
|
932
956
|
- lib/generators/spree/dummy/templates/initializers/devise.rb
|
933
957
|
- lib/generators/spree/dummy/templates/rails/application.rb
|
934
958
|
- lib/generators/spree/dummy/templates/rails/boot.rb
|
@@ -941,6 +965,8 @@ files:
|
|
941
965
|
- lib/generators/spree/dummy_model/templates/model.rb.tt
|
942
966
|
- lib/generators/spree/install/install_generator.rb
|
943
967
|
- lib/generators/spree/install/templates/config/initializers/spree.rb
|
968
|
+
- lib/generators/spree/install/templates/config/initializers/spree_storefront.rb
|
969
|
+
- lib/generators/spree/install/templates/config/spree_storefront.yml
|
944
970
|
- lib/generators/spree/install/templates/vendor/assets/javascripts/spree/backend/all.js
|
945
971
|
- lib/generators/spree/install/templates/vendor/assets/javascripts/spree/frontend/all.js
|
946
972
|
- lib/generators/spree/install/templates/vendor/assets/stylesheets/spree/backend/all.css
|
@@ -969,7 +995,6 @@ files:
|
|
969
995
|
- lib/spree/core/search/base.rb
|
970
996
|
- lib/spree/core/token_generator.rb
|
971
997
|
- lib/spree/core/version.rb
|
972
|
-
- lib/spree/database_type_utilities.rb
|
973
998
|
- lib/spree/dependencies_helper.rb
|
974
999
|
- lib/spree/i18n.rb
|
975
1000
|
- lib/spree/i18n/base.rb
|
@@ -1061,12 +1086,8 @@ files:
|
|
1061
1086
|
homepage: http://spreecommerce.org
|
1062
1087
|
licenses:
|
1063
1088
|
- BSD-3-Clause
|
1064
|
-
metadata:
|
1065
|
-
|
1066
|
-
changelog_uri: https://github.com/spree/spree/releases/tag/v4.0.7
|
1067
|
-
documentation_uri: https://guides.spreecommerce.org/
|
1068
|
-
source_code_uri: https://github.com/spree/spree/tree/v4.0.7
|
1069
|
-
post_install_message:
|
1089
|
+
metadata: {}
|
1090
|
+
post_install_message:
|
1070
1091
|
rdoc_options: []
|
1071
1092
|
require_paths:
|
1072
1093
|
- lib
|
@@ -1081,8 +1102,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1081
1102
|
- !ruby/object:Gem::Version
|
1082
1103
|
version: 1.8.23
|
1083
1104
|
requirements: []
|
1084
|
-
rubygems_version: 3.
|
1085
|
-
signing_key:
|
1105
|
+
rubygems_version: 3.0.3
|
1106
|
+
signing_key:
|
1086
1107
|
specification_version: 4
|
1087
1108
|
summary: The bare bones necessary for Spree.
|
1088
1109
|
test_files: []
|
@@ -1,39 +0,0 @@
|
|
1
|
-
module Spree
|
2
|
-
module Account
|
3
|
-
module Addresses
|
4
|
-
class Base
|
5
|
-
prepend Spree::ServiceModule::Base
|
6
|
-
|
7
|
-
private
|
8
|
-
|
9
|
-
attr_accessor :country
|
10
|
-
|
11
|
-
def fill_country_and_state_ids(params)
|
12
|
-
replace_country_iso_with_id(params)
|
13
|
-
fill_state_id(params)
|
14
|
-
end
|
15
|
-
|
16
|
-
def replace_country_iso_with_id(params)
|
17
|
-
iso = params[:country_iso]
|
18
|
-
return params unless iso.present?
|
19
|
-
|
20
|
-
country = Spree::Country.by_iso(iso)
|
21
|
-
params[:country_id] = country&.id
|
22
|
-
params.delete(:country_iso)
|
23
|
-
params
|
24
|
-
end
|
25
|
-
|
26
|
-
def fill_state_id(params)
|
27
|
-
state_name = params[:state_name]
|
28
|
-
return params unless state_name.present?
|
29
|
-
|
30
|
-
country ||= Spree::Country.find(params[:country_id]) if params[:country_id].present?
|
31
|
-
return params unless country
|
32
|
-
|
33
|
-
params[:state_id] = country.states.find_by(name: state_name)&.id
|
34
|
-
params
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
module Spree
|
2
|
-
module Account
|
3
|
-
module Addresses
|
4
|
-
class Create < ::Spree::Account::Addresses::Base
|
5
|
-
def call(user:, address_params:)
|
6
|
-
fill_country_and_state_ids(address_params)
|
7
|
-
|
8
|
-
address = user.addresses.new(address_params)
|
9
|
-
if address.save
|
10
|
-
success(address)
|
11
|
-
else
|
12
|
-
failure(address)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
module Spree
|
2
|
-
module Account
|
3
|
-
module Addresses
|
4
|
-
class Update < ::Spree::Account::Addresses::Base
|
5
|
-
def call(address:, address_params:)
|
6
|
-
address_params[:country_id] ||= address.country_id
|
7
|
-
fill_country_and_state_ids(address_params)
|
8
|
-
|
9
|
-
if address.update(address_params)
|
10
|
-
success(address)
|
11
|
-
else
|
12
|
-
failure(address)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|