Class: Spree::DigitalLink
- Inherits:
-
Base
- Object
- ApplicationRecord
- Base
- Spree::DigitalLink
show all
- Includes:
- Security::DigitalLinks, Webhooks::HasWebhooks
- Defined in:
- app/models/spree/digital_link.rb
Instance Method Summary
collapse
Methods inherited from Base
belongs_to_required_by_default, for_store, has_many_inversing, json_api_columns, json_api_permitted_attributes, json_api_type, page, spree_base_scopes, spree_base_uniqueness_scope
#clear_preferences, #default_preferences, #defined_preferences, #deprecated_preferences, #get_preference, #has_preference!, #has_preference?, #preference_default, #preference_deprecated, #preference_type, #set_preference
Instance Method Details
#access_limit_exceeded? ⇒ Boolean
35
36
37
38
39
40
41
|
# File 'app/models/spree/digital_link.rb', line 35
def access_limit_exceeded?
if line_item.order.store.limit_digital_download_count
access_counter >= line_item.order.store.digital_asset_authorized_clicks
else
false
end
end
|
#authorizable? ⇒ Boolean
23
24
25
|
# File 'app/models/spree/digital_link.rb', line 23
def authorizable?
!(expired? || access_limit_exceeded?)
end
|
#authorize! ⇒ Object
This method should be called when a download is initiated. It returns true
or false
depending on whether the authorization is granted.
45
46
47
|
# File 'app/models/spree/digital_link.rb', line 45
def authorize!
authorizable? && increment!(:access_counter, touch: true) ? true : false
end
|
#expired? ⇒ Boolean
27
28
29
30
31
32
33
|
# File 'app/models/spree/digital_link.rb', line 27
def expired?
if line_item.order.store.limit_digital_download_days
created_at <= line_item.order.store.digital_asset_authorized_days.day.ago
else
false
end
end
|
#reset! ⇒ Object
49
50
51
52
53
|
# File 'app/models/spree/digital_link.rb', line 49
def reset!
self.access_counter = 0
self.created_at = Time.current
save!
end
|