Class: GoodData::Bricks::WarehouseMiddleware

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

Overview

Connects to the warehouse (ADS) and enriches parameters with GoodData::Datawarehouse

Instance Attribute Summary

Attributes inherited from Middleware

#app

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

Instance Method Details

#call(params) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/gooddata/bricks/middleware/dwh_middleware.rb', line 15

def call(params)
  if params.key?('ads_client') && (RUBY_PLATFORM == 'java')
    GoodData.logger.info "Setting up ADS connection to #{params['ads_client']['ads_id'] || params['ads_client']['jdbc_url']}"
    raise "ADS middleware needs username either as part of ads_client spec or as a global 'GDC_USERNAME' parameter" unless params['ads_client']['username'] || params['GDC_USERNAME']
    raise "ADS middleware needs password either as part of ads_client spec or as a global 'GDC_PASSWORD' parameter" unless params['ads_client']['password'] || params['GDC_PASSWORD']

    ads = GoodData::Datawarehouse.new(params['ads_client']['username'] || params['GDC_USERNAME'], params['ads_client']['password'] || params['GDC_PASSWORD'], params['ads_client']['ads_id'], jdbc_url: params['ads_client']['jdbc_url'])
    @app.call(params.merge('ads_client' => ads, :ads_client => ads))
  else
    @app.call(params)
  end
end