Class: GoodData::Bricks::RestForceMiddleware

Inherits:
Middleware show all
Defined in:
lib/gooddata/bricks/middleware/restforce_middleware.rb

Constant Summary collapse

DEFAULT_VERSION =
'29.0'.freeze

Instance Attribute Summary

Attributes inherited from Middleware

#app

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Middleware

#initialize, #load_defaults

Methods included from Utils

#returning

Constructor Details

This class inherits a constructor from GoodData::Bricks::Middleware

Class Method Details

.create_client(params) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/gooddata/bricks/middleware/restforce_middleware.rb', line 33

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) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/gooddata/bricks/middleware/restforce_middleware.rb', line 14

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

Instance Method Details

#call(params) ⇒ Object



52
53
54
55
# File 'lib/gooddata/bricks/middleware/restforce_middleware.rb', line 52

def call(params)
  params = self.class.create_client(params)
  @app.call(params)
end