Class: ShopifyApp::Generators::UserModelGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Includes:
Rails::Generators::Migration
Defined in:
lib/generators/shopify_app/user_model/user_model_generator.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.next_migration_number(dir) ⇒ Object

for generating a timestamp when using ‘create_migration`



85
86
87
# File 'lib/generators/shopify_app/user_model/user_model_generator.rb', line 85

def next_migration_number(dir)
  ActiveRecord::Generators::Base.next_migration_number(dir)
end

Instance Method Details

#create_expires_at_storage_in_user_modelObject



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/generators/shopify_app/user_model/user_model_generator.rb', line 43

def create_expires_at_storage_in_user_model
  expires_at_column_prompt = <<~PROMPT
    It is highly recommended that apps record the User session expiry date. \
    This will allow to check if the session has expired and re-authenticate \
    without a first call to Shopify.

    After running the migration, the `check_session_expiry_date` configuration can be enabled.

    The following migration will add an `expires_at` column to the User model. \
    Do you want to include this migration? [y/n]
  PROMPT

  if new_shopify_cli_app? || Rails.env.test? || yes?(expires_at_column_prompt)
    migration_template(
      "db/migrate/add_user_expires_at_column.erb",
      "db/migrate/add_user_expires_at_column.rb",
    )
  end
end

#create_scopes_storage_in_user_modelObject



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/generators/shopify_app/user_model/user_model_generator.rb', line 22

def create_scopes_storage_in_user_model
  scopes_column_prompt = <<~PROMPT
    It is highly recommended that apps record the access scopes granted by \
    merchants during app installation. See app/models/user.rb to modify how \
    access scopes are stored and retrieved.

    [WARNING] You will need to update the access_scopes accessors in the User model \
    to allow shopify_app to store and retrieve scopes when going through OAuth.

    The following migration will add an `access_scopes` column to the User model. \
    Do you want to include this migration? [y/n]
  PROMPT

  if new_shopify_cli_app? || Rails.env.test? || yes?(scopes_column_prompt)
    migration_template(
      "db/migrate/add_user_access_scopes_column.erb",
      "db/migrate/add_user_access_scopes_column.rb",
    )
  end
end

#create_user_fixturesObject



67
68
69
# File 'lib/generators/shopify_app/user_model/user_model_generator.rb', line 67

def create_user_fixtures
  copy_file("users.yml", "test/fixtures/users.yml")
end

#create_user_migrationObject



18
19
20
# File 'lib/generators/shopify_app/user_model/user_model_generator.rb', line 18

def create_user_migration
  migration_template("db/migrate/create_users.erb", "db/migrate/create_users.rb")
end

#create_user_modelObject



14
15
16
# File 'lib/generators/shopify_app/user_model/user_model_generator.rb', line 14

def create_user_model
  copy_file("user.rb", "app/models/user.rb")
end

#update_shopify_app_initializerObject



63
64
65
# File 'lib/generators/shopify_app/user_model/user_model_generator.rb', line 63

def update_shopify_app_initializer
  gsub_file("config/initializers/shopify_app.rb", "ShopifyApp::InMemoryUserSessionStore", "User")
end