class GoodData::Bricks::RestForceMiddleware

Constants

DEFAULT_VERSION

Public Class Methods

create_client(params) click to toggle source
# File lib/gooddata/bricks/middleware/restforce_middleware.rb, line 36
def self.create_client(params)
  downloader_config = params['config']['downloader']['salesforce']
  credentials = prepare_credentials(params)

  client = if credentials
             credentials[:client_id] = downloader_config['client_id']
             credentials[:client_secret] = downloader_config['client_secret']

             host = downloader_config['host']
             credentials[:host] = host if host
             credentials[:api_version] = downloader_config['api_version'] || DEFAULT_VERSION

             Restforce.log = true if params['GDC_LOGGER']

             Restforce.new(credentials)
           end
  params.merge('salesforce_client' => client)
end
prepare_credentials(downloader_config) click to toggle source
# File lib/gooddata/bricks/middleware/restforce_middleware.rb, line 17
def self.prepare_credentials(downloader_config)
  username = downloader_config['username']
  password = downloader_config['password']
  token = downloader_config['token']
  oauth_refresh_token = downloader_config['oauth_refresh_token']

  if username && password && token
    {
      username: username,
      password: password,
      security_token: token
    }
  elsif oauth_refresh_token && !oauth_refresh_token.empty?
    {
      refresh_token: oauth_refresh_token
    }
  end
end

Public Instance Methods

call(params) click to toggle source
# File lib/gooddata/bricks/middleware/restforce_middleware.rb, line 55
def call(params)
  params = self.class.create_client(params)
  @app.call(params)
end