spree_cm_commissioner 1.18.0.pre.pre2 → 1.18.0
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/Gemfile.lock +1 -1
- data/app/controllers/concerns/spree_cm_commissioner/content_cachable.rb +1 -2
- data/app/controllers/spree/api/v2/storefront/guests_controller.rb +14 -21
- data/app/controllers/spree/api/v2/tenant/cart_controller.rb +1 -1
- data/app/controllers/spree_cm_commissioner/well_known_controller.rb +18 -20
- data/config/routes.rb +1 -2
- data/lib/spree_cm_commissioner/version.rb +1 -1
- metadata +4 -5
- data/app/interactors/spree_cm_commissioner/universal_link_fetcher.rb +0 -54
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2c10fd2782b1a1ac7ecab5d27e02a49212f8e816f8f2325fadbcd717fe9882e9
|
4
|
+
data.tar.gz: 3b1b296e3403e5dd040063c19a3ac4952afafb617af17cd2ca924ea8df25de23
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1f31cf8a9073664246d505c0494b2da2dc6565ec14c57fae06f34320039a478af4d8a1e0ee5eb1e68c42a5de37baf393bee0e791f7d9dfb8fd2b66356f143566
|
7
|
+
data.tar.gz: e29ba3d6d3e2d8343209260edd69117fe67c14ea1c20c13891b6cd9930f044467daa7b2fffaff51ab27db42e98eb7f43a85254e33a4644927e3eb61a1e9d742f
|
data/Gemfile.lock
CHANGED
@@ -6,9 +6,8 @@ module SpreeCmCommissioner
|
|
6
6
|
after_action :set_cache_control_for_cdn
|
7
7
|
end
|
8
8
|
|
9
|
-
# Override This Method based on your UseCase
|
10
9
|
def max_age
|
11
|
-
ENV.fetch('CONTENT_CACHE_MAX_AGE',
|
10
|
+
ENV.fetch('CONTENT_CACHE_MAX_AGE', '180')
|
12
11
|
end
|
13
12
|
|
14
13
|
def set_cache_control_for_cdn
|
@@ -38,7 +38,20 @@ module Spree
|
|
38
38
|
def update
|
39
39
|
spree_authorize! :update, spree_current_order, order_token
|
40
40
|
|
41
|
-
|
41
|
+
if guest_params[:guest_dynamic_fields_attributes]
|
42
|
+
resource.guest_dynamic_fields.destroy_all
|
43
|
+
|
44
|
+
guest_params[:guest_dynamic_fields_attributes].each do |attr|
|
45
|
+
field = resource.guest_dynamic_fields.build(attr.except(:id))
|
46
|
+
|
47
|
+
if field.dynamic_field.requires_dynamic_field_options?
|
48
|
+
option = field.dynamic_field.dynamic_field_options.find_by(id: field.value)
|
49
|
+
field.dynamic_field_option = option if option
|
50
|
+
end
|
51
|
+
|
52
|
+
field.save!
|
53
|
+
end
|
54
|
+
end
|
42
55
|
|
43
56
|
resource.assign_attributes(guest_params.except(:guest_dynamic_fields_attributes))
|
44
57
|
|
@@ -83,26 +96,6 @@ module Spree
|
|
83
96
|
guest_dynamic_fields_attributes: %i[id dynamic_field_id dynamic_field_option_id value _destroy]
|
84
97
|
)
|
85
98
|
end
|
86
|
-
|
87
|
-
def update_dynamic_fields
|
88
|
-
resource.guest_dynamic_fields.destroy_all
|
89
|
-
|
90
|
-
dynamic_fields_attrs = guest_params[:guest_dynamic_fields_attributes]
|
91
|
-
|
92
|
-
resource.guest_dynamic_fields = dynamic_fields_attrs.map do |attr|
|
93
|
-
build_dynamic_field(attr)
|
94
|
-
end
|
95
|
-
end
|
96
|
-
|
97
|
-
def build_dynamic_field(attr)
|
98
|
-
field = resource.guest_dynamic_fields.build(attr.except(:id))
|
99
|
-
|
100
|
-
if field.dynamic_field.requires_dynamic_field_options?
|
101
|
-
field.dynamic_field_option = field.dynamic_field.dynamic_field_options.find_by(id: field.value)
|
102
|
-
end
|
103
|
-
|
104
|
-
field
|
105
|
-
end
|
106
99
|
end
|
107
100
|
end
|
108
101
|
end
|
@@ -48,7 +48,7 @@ module Spree
|
|
48
48
|
quantity: add_item_params[:quantity],
|
49
49
|
public_metadata: add_item_params[:public_metadata],
|
50
50
|
private_metadata: add_item_params[:private_metadata],
|
51
|
-
options: add_item_params[:options]
|
51
|
+
options: add_item_params[:options]
|
52
52
|
)
|
53
53
|
|
54
54
|
render_order(result)
|
@@ -3,31 +3,19 @@ module SpreeCmCommissioner
|
|
3
3
|
before_action :identify_request_source
|
4
4
|
rescue_from StandardError, with: :handle_error
|
5
5
|
|
6
|
-
def
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
end
|
13
|
-
|
14
|
-
private
|
15
|
-
|
16
|
-
def render_universal_link(universal_link)
|
17
|
-
result = SpreeCmCommissioner::UniversalLinkFetcher.new(
|
18
|
-
universal_link: universal_link,
|
19
|
-
store: @store,
|
20
|
-
tenant: @tenant,
|
21
|
-
refresh: params[:_refresh].to_s == 'true'
|
22
|
-
).call
|
23
|
-
|
24
|
-
if result[:success]
|
25
|
-
render json: result[:data]
|
6
|
+
def show
|
7
|
+
case params[:id]
|
8
|
+
when 'assetlinks.json'
|
9
|
+
render_preference(:preferred_assetlinks)
|
10
|
+
when 'apple-app-site-association'
|
11
|
+
render_preference(:preferred_apple_app_site_association)
|
26
12
|
else
|
27
13
|
render_not_found
|
28
14
|
end
|
29
15
|
end
|
30
16
|
|
17
|
+
private
|
18
|
+
|
31
19
|
def identify_request_source
|
32
20
|
host = params[:original_host].presence || request.host.downcase
|
33
21
|
|
@@ -37,6 +25,16 @@ module SpreeCmCommissioner
|
|
37
25
|
@tenant = result.tenant
|
38
26
|
end
|
39
27
|
|
28
|
+
def render_preference(preference_key)
|
29
|
+
if @store&.send(preference_key).present?
|
30
|
+
render json: @store.send(preference_key)
|
31
|
+
elsif @tenant&.send(preference_key).present?
|
32
|
+
render json: @tenant.send(preference_key)
|
33
|
+
else
|
34
|
+
render_not_found
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
40
38
|
def render_not_found
|
41
39
|
render json: { error: 'Not found' }, status: :not_found
|
42
40
|
end
|
data/config/routes.rb
CHANGED
@@ -669,6 +669,5 @@ Rails.application.routes.draw do
|
|
669
669
|
get 'o/:id', to: 'spree_cm_commissioner/orders#show', as: 'order'
|
670
670
|
get 'li/:id', to: 'spree_cm_commissioner/line_item_qr_images#show', as: 'line_item_qr_image'
|
671
671
|
get 'g/:id', to: 'spree_cm_commissioner/guest_cards#show', as: 'guest_cards'
|
672
|
-
get '.well-known
|
673
|
-
get '.well-known/apple-app-site-association', to: 'spree_cm_commissioner/well_known#apple_app_site_association'
|
672
|
+
get '.well-known/:id', to: 'spree_cm_commissioner/well_known#show', constraints: { id: /(assetlinks\.json|apple-app-site-association)/ }
|
674
673
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spree_cm_commissioner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.18.0
|
4
|
+
version: 1.18.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- You
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-07-
|
11
|
+
date: 2025-07-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: spree
|
@@ -1116,7 +1116,6 @@ files:
|
|
1116
1116
|
- app/interactors/spree_cm_commissioner/telegram_web_app_vendor_user_checker.rb
|
1117
1117
|
- app/interactors/spree_cm_commissioner/transactional_email_sender.rb
|
1118
1118
|
- app/interactors/spree_cm_commissioner/unique_device_token_cron_executor.rb
|
1119
|
-
- app/interactors/spree_cm_commissioner/universal_link_fetcher.rb
|
1120
1119
|
- app/interactors/spree_cm_commissioner/update_payment_gateway_status.rb
|
1121
1120
|
- app/interactors/spree_cm_commissioner/user_contact_updater.rb
|
1122
1121
|
- app/interactors/spree_cm_commissioner/user_device_token_deregister.rb
|
@@ -2673,9 +2672,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
2673
2672
|
version: '2.7'
|
2674
2673
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
2675
2674
|
requirements:
|
2676
|
-
- - "
|
2675
|
+
- - ">="
|
2677
2676
|
- !ruby/object:Gem::Version
|
2678
|
-
version:
|
2677
|
+
version: '0'
|
2679
2678
|
requirements:
|
2680
2679
|
- none
|
2681
2680
|
rubygems_version: 3.4.1
|
@@ -1,54 +0,0 @@
|
|
1
|
-
module SpreeCmCommissioner
|
2
|
-
class UniversalLinkFetcher < BaseInteractor
|
3
|
-
delegate :universal_link, :store, :tenant, :refresh, to: :context
|
4
|
-
|
5
|
-
def call
|
6
|
-
return not_found unless resource
|
7
|
-
|
8
|
-
data = load_cached_preference(resource)
|
9
|
-
return not_found if data.blank?
|
10
|
-
|
11
|
-
{ success: true, data: data }
|
12
|
-
end
|
13
|
-
|
14
|
-
private
|
15
|
-
|
16
|
-
def resource
|
17
|
-
@resource ||= store.presence || tenant
|
18
|
-
end
|
19
|
-
|
20
|
-
def load_cached_preference(resource)
|
21
|
-
preference_key = preference_key_for(universal_link)
|
22
|
-
return nil unless preference_key && resource.respond_to?(preference_key)
|
23
|
-
|
24
|
-
updated_at = resource.try(:updated_at)&.to_i || 'no_updated_at'
|
25
|
-
cache_key = build_cache_key(universal_link, resource, updated_at)
|
26
|
-
|
27
|
-
CmAppLogger.log(label: 'LOOKING_UP_CACHE', data: { cache_key: cache_key })
|
28
|
-
|
29
|
-
Rails.cache.delete(cache_key) if refresh
|
30
|
-
|
31
|
-
Rails.cache.fetch(cache_key, expires_in: 1.day, force: refresh) do
|
32
|
-
CmAppLogger.log(label: 'CACHE_MISS', data: { cache_key: cache_key })
|
33
|
-
resource.public_send(preference_key).presence
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
def build_cache_key(universal_link, resource, updated_at)
|
38
|
-
"well_known:#{universal_link}:#{resource.class.name}:#{resource.id}:#{updated_at}"
|
39
|
-
end
|
40
|
-
|
41
|
-
def preference_key_for(universal_link)
|
42
|
-
case universal_link
|
43
|
-
when 'assetlinks.json'
|
44
|
-
:preferred_assetlinks
|
45
|
-
when 'apple-app-site-association'
|
46
|
-
:preferred_apple_app_site_association
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
def not_found
|
51
|
-
{ success: false, error: 'Not found' }
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|