Class: ShopifyApp::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/shopify_app/configuration.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration.



54
55
56
57
58
59
60
61
62
# File 'lib/shopify_app/configuration.rb', line 54

def initialize
  @root_url = "/"
  @myshopify_domain = "myshopify.com"
  @scripttags_manager_queue_name = Rails.application.config.active_job.queue_name
  @webhooks_manager_queue_name = Rails.application.config.active_job.queue_name
  @disable_webpacker = ENV["SHOPIFY_APP_DISABLE_WEBPACKER"].present?

  log_callback_controller_method_deprecation
end

Instance Attribute Details

#after_authenticate_jobObject

Returns the value of attribute after_authenticate_job.



19
20
21
# File 'lib/shopify_app/configuration.rb', line 19

def after_authenticate_job
  @after_authenticate_job
end

#api_keyObject

Returns the value of attribute api_key.



9
10
11
# File 'lib/shopify_app/configuration.rb', line 9

def api_key
  @api_key
end

#api_versionObject

Returns the value of attribute api_version.



20
21
22
# File 'lib/shopify_app/configuration.rb', line 20

def api_version
  @api_version
end

#application_nameObject

Shopify App settings. These values should match the configuration for the app in your Shopify Partners page. Change your settings in ‘config/initializers/shopify_app.rb`



8
9
10
# File 'lib/shopify_app/configuration.rb', line 8

def application_name
  @application_name
end

#billingObject

takes a ShopifyApp::BillingConfiguration object



49
50
51
# File 'lib/shopify_app/configuration.rb', line 49

def billing
  @billing
end

#check_session_expiry_dateObject

Returns the value of attribute check_session_expiry_date.



23
24
25
# File 'lib/shopify_app/configuration.rb', line 23

def check_session_expiry_date
  @check_session_expiry_date
end

#custom_post_authenticate_tasksObject

customize post authenticate tasks



33
34
35
# File 'lib/shopify_app/configuration.rb', line 33

def custom_post_authenticate_tasks
  @custom_post_authenticate_tasks
end

#disable_webpackerObject

ability to have webpacker installed but not used in this gem and the generators



43
44
45
# File 'lib/shopify_app/configuration.rb', line 43

def disable_webpacker
  @disable_webpacker
end

#embedded_appObject Also known as: embedded_app?

Returns the value of attribute embedded_app.



15
16
17
# File 'lib/shopify_app/configuration.rb', line 15

def embedded_app
  @embedded_app
end

#embedded_redirect_urlObject

Returns the value of attribute embedded_redirect_url.



30
31
32
# File 'lib/shopify_app/configuration.rb', line 30

def embedded_redirect_url
  @embedded_redirect_url
end

#log_levelObject

Returns the value of attribute log_level.



24
25
26
# File 'lib/shopify_app/configuration.rb', line 24

def log_level
  @log_level
end

#login_callback_urlObject



68
69
70
71
# File 'lib/shopify_app/configuration.rb', line 68

def 
  # Not including @root_url to keep historic behaviour
  @login_callback_url || File.join("auth/shopify/callback")
end

#login_urlObject



64
65
66
# File 'lib/shopify_app/configuration.rb', line 64

def 
  @login_url || File.join(@root_url, "login")
end

#myshopify_domainObject

configure myshopify domain for local shopify development



40
41
42
# File 'lib/shopify_app/configuration.rb', line 40

def myshopify_domain
  @myshopify_domain
end

#new_embedded_auth_strategyObject

Enables new authorization flow using token exchange



52
53
54
# File 'lib/shopify_app/configuration.rb', line 52

def new_embedded_auth_strategy
  @new_embedded_auth_strategy
end

#old_secretObject

Returns the value of attribute old_secret.



11
12
13
# File 'lib/shopify_app/configuration.rb', line 11

def old_secret
  @old_secret
end

#reauth_on_access_scope_changesObject

Returns the value of attribute reauth_on_access_scope_changes.



22
23
24
# File 'lib/shopify_app/configuration.rb', line 22

def reauth_on_access_scope_changes
  @reauth_on_access_scope_changes
end

#root_urlObject

customise urls



27
28
29
# File 'lib/shopify_app/configuration.rb', line 27

def root_url
  @root_url
end

#scopeObject

Returns the value of attribute scope.



12
13
14
# File 'lib/shopify_app/configuration.rb', line 12

def scope
  @scope
end

#scripttagsObject

Returns the value of attribute scripttags.



18
19
20
# File 'lib/shopify_app/configuration.rb', line 18

def scripttags
  @scripttags
end

#scripttags_manager_queue_nameObject

customise ActiveJob queue names



36
37
38
# File 'lib/shopify_app/configuration.rb', line 36

def scripttags_manager_queue_name
  @scripttags_manager_queue_name
end

#secretObject

Returns the value of attribute secret.



10
11
12
# File 'lib/shopify_app/configuration.rb', line 10

def secret
  @secret
end

#shop_access_scopesObject



123
124
125
# File 'lib/shopify_app/configuration.rb', line 123

def shop_access_scopes
  @shop_access_scopes || scope
end

#user_access_scopesObject



127
128
129
# File 'lib/shopify_app/configuration.rb', line 127

def user_access_scopes
  @user_access_scopes || scope
end

#webhook_jobs_namespaceObject

allow namespacing webhook jobs



46
47
48
# File 'lib/shopify_app/configuration.rb', line 46

def webhook_jobs_namespace
  @webhook_jobs_namespace
end

#webhooksObject

Returns the value of attribute webhooks.



17
18
19
# File 'lib/shopify_app/configuration.rb', line 17

def webhooks
  @webhooks
end

#webhooks_manager_queue_nameObject

Returns the value of attribute webhooks_manager_queue_name.



37
38
39
# File 'lib/shopify_app/configuration.rb', line 37

def webhooks_manager_queue_name
  @webhooks_manager_queue_name
end

Instance Method Details

#has_scripttags?Boolean

Returns:

  • (Boolean)


115
116
117
# File 'lib/shopify_app/configuration.rb', line 115

def has_scripttags?
  scripttags.present?
end

#has_webhooks?Boolean

Returns:

  • (Boolean)


111
112
113
# File 'lib/shopify_app/configuration.rb', line 111

def has_webhooks?
  webhooks.present?
end

#online_token_configured?Boolean

Returns:

  • (Boolean)


135
136
137
# File 'lib/shopify_app/configuration.rb', line 135

def online_token_configured?
  !ShopifyApp.configuration.user_session_repository.blank? && ShopifyApp::SessionRepository.user_storage.present?
end

#post_authenticate_tasksObject



139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
# File 'lib/shopify_app/configuration.rb', line 139

def post_authenticate_tasks
  @post_authenticate_tasks || begin
    if custom_post_authenticate_tasks
      custom_class = if custom_post_authenticate_tasks.respond_to?(:safe_constantize)
        custom_post_authenticate_tasks.safe_constantize
      else
        custom_post_authenticate_tasks
      end
    end

    task_class = custom_class || ShopifyApp::Auth::PostAuthenticateTasks

    [
      :perform,
    ].each do |method|
      raise(
        ::ShopifyApp::ConfigurationError,
        "Missing method - '#{method}' for custom_post_authenticate_tasks",
      ) unless task_class.respond_to?(method)
    end

    task_class
  end
end

#requires_billing?Boolean

Returns:

  • (Boolean)


119
120
121
# File 'lib/shopify_app/configuration.rb', line 119

def requires_billing?
  billing.present?
end

#shop_access_scopes_strategyObject



89
90
91
92
93
# File 'lib/shopify_app/configuration.rb', line 89

def shop_access_scopes_strategy
  return ShopifyApp::AccessScopes::NoopStrategy unless reauth_on_access_scope_changes

  ShopifyApp::AccessScopes::ShopStrategy
end

#shop_session_repositoryObject



85
86
87
# File 'lib/shopify_app/configuration.rb', line 85

def shop_session_repository
  ShopifyApp::SessionRepository.shop_storage
end

#shop_session_repository=(klass) ⇒ Object



81
82
83
# File 'lib/shopify_app/configuration.rb', line 81

def shop_session_repository=(klass)
  ShopifyApp::SessionRepository.shop_storage = klass
end

#use_new_embedded_auth_strategy?Boolean

Returns:

  • (Boolean)


131
132
133
# File 'lib/shopify_app/configuration.rb', line 131

def use_new_embedded_auth_strategy?
  new_embedded_auth_strategy && embedded_app?
end

#user_access_scopes_strategyObject



103
104
105
106
107
108
109
# File 'lib/shopify_app/configuration.rb', line 103

def user_access_scopes_strategy
  return @user_access_scopes_strategy if @user_access_scopes_strategy

  return ShopifyApp::AccessScopes::NoopStrategy unless reauth_on_access_scope_changes

  ShopifyApp::AccessScopes::UserStrategy
end

#user_access_scopes_strategy=(class_name) ⇒ Object



95
96
97
98
99
100
101
# File 'lib/shopify_app/configuration.rb', line 95

def user_access_scopes_strategy=(class_name)
  unless class_name.is_a?(String)
    raise ConfigurationError, "Invalid user access scopes strategy - expected a string"
  end

  @user_access_scopes_strategy = class_name.safe_constantize
end

#user_session_repositoryObject



77
78
79
# File 'lib/shopify_app/configuration.rb', line 77

def user_session_repository
  ShopifyApp::SessionRepository.user_storage
end

#user_session_repository=(klass) ⇒ Object



73
74
75
# File 'lib/shopify_app/configuration.rb', line 73

def user_session_repository=(klass)
  ShopifyApp::SessionRepository.user_storage = klass
end