Sha256: a3fb0f9ef23e48ec68cb725cdfed0053b4c596e2de6c71f33a9d2006112ad8f9

Contents?: true

Size: 1.06 KB

Versions: 2

Compression:

Stored size: 1.06 KB

Contents

class PowerApi::ExposedApiConfigGenerator < Rails::Generators::Base
  source_root File.expand_path('templates', __dir__)

  class_option(
    :authenticated_resources,
    type: 'array',
    default: [],
    desc: 'define which model or models will be token authenticatable'
  )

  def add_base_controller
    create_file(
      helper.exposed_base_controller_path,
      helper.exposed_base_controller_tpl
    )
  end

  def install_first_version
    generate "power_api:version 1"
  end

  def install_simple_token_auth
    create_file(
      helper.simple_token_auth_initializer_path,
      helper.simple_token_auth_initializer_tpl,
      force: true
    )

    helper.authenticated_resources.each do |resource|
      generate resource.authenticated_resource_migration

      insert_into_file(
        resource.path,
        helper.simple_token_auth_method,
        after: resource.class_definition_line
      )
    end
  end

  private

  def helper
    @helper ||= PowerApi::GeneratorHelpers.new(
      authenticated_resources: options[:authenticated_resources]
    )
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
power_api-2.1.1 lib/generators/power_api/exposed_api_config/exposed_api_config_generator.rb
power_api-2.1.0 lib/generators/power_api/exposed_api_config/exposed_api_config_generator.rb