class Embulk::Input::YahooAds::Client

Public Class Methods

new(account_id, auth_config) click to toggle source
# File lib/embulk/input/yahoo_ads/client.rb, line 5
def initialize(account_id, auth_config)
  @account_id = account_id
  @auth_config = auth_config
  @locationService = LocationService.build(account_id, auth_config)
end

Public Instance Methods

invoke(service_name, action, params) click to toggle source
# File lib/embulk/input/yahoo_ads/client.rb, line 11
def invoke(service_name, action, params)
  s = self.service(service_name)
  ::Embulk.logger.info "SOAP Request: #{s.wsdl.document}"
  s.call(action, params).body
end
service(name) click to toggle source
# File lib/embulk/input/yahoo_ads/client.rb, line 17
def service(name)
  ::Savon::Client.new({
    wsdl: "https://#{@auth_config.location}/services/#{@auth_config.version}/#{name}?wsdl",
    endpoint: "https://#{@locationService.invoke}/services/#{@auth_config.version}/#{name}",
    namespace: @auth_config.namespace,
      soap_header: {
      "tns:RequestHeader": {
        "tns:license": @auth_config.license,
        "tns:apiAccountId": @auth_config.api_account,
        "tns:apiAccountPassword": @auth_config.api_password,
      }
    }
  })
end