class Google::Ads::GoogleAds::ServiceLookup
Attributes
config[R]
credentials_or_channel[R]
deprecator[R]
endpoint[R]
logger[R]
lookup_util[R]
name[R]
version[R]
Public Class Methods
new( lookup_util, logger, config, credentials_or_channel, endpoint, deprecator )
click to toggle source
# File lib/google/ads/google_ads/service_lookup.rb, line 8 def initialize( lookup_util, logger, config, credentials_or_channel, endpoint, deprecator ) @lookup_util = lookup_util @logger = logger @config = config @credentials_or_channel = credentials_or_channel @endpoint = endpoint @deprecator = deprecator end
Public Instance Methods
call()
click to toggle source
# File lib/google/ads/google_ads/service_lookup.rb, line 24 def call if logger logging_interceptor = GoogleAds::Interceptors::LoggingInterceptor.new(logger) end error_interceptor = GoogleAds::Interceptors::ErrorInterceptor.new version_alternates = {} Factories::VERSIONS.each do |v| version_alternates[v] = factory_at_version(v, error_interceptor, logging_interceptor) end highest_factory = factory_at_version( Factories::HIGHEST_VERSION, error_interceptor, logging_interceptor, ) VersionAlternate.new(highest_factory, version_alternates) end
Private Instance Methods
factory_at_version(version, error_interceptor, logging_interceptor)
click to toggle source
# File lib/google/ads/google_ads/service_lookup.rb, line 46 def factory_at_version(version, error_interceptor, logging_interceptor) factory = Factories.at_version(version).services.new(**{ logging_interceptor: logging_interceptor, error_interceptor: error_interceptor, deprecation: deprecator }.merge(gax_service_params)) factory end
gax_service_params()
click to toggle source
# File lib/google/ads/google_ads/service_lookup.rb, line 56 def gax_service_params { credentials: credentials_or_channel, metadata: headers, endpoint: endpoint } end
headers()
click to toggle source
# File lib/google/ads/google_ads/service_lookup.rb, line 64 def headers headers = { :"developer-token" => config.developer_token } if config.login_customer_id validate_customer_id(:login_customer_id) # header values must be strings headers[:"login-customer-id"] = config.login_customer_id.to_s end if config.linked_customer_id validate_customer_id(:linked_customer_id) # header values must be strings headers[:"linked-customer-id"] = config.linked_customer_id.to_s end headers end
validate_customer_id(field)
click to toggle source
# File lib/google/ads/google_ads/service_lookup.rb, line 84 def validate_customer_id(field) begin customer_id = -1 if field == :login_customer_id customer_id = Integer(config.login_customer_id) elsif field == :linked_customer_id customer_id = Integer(config.linked_customer_id) else return end rescue ArgumentError => e if e.message.start_with?("invalid value for Integer") raise ArgumentError.new("Invalid value for #{field.to_s}, must be integer") end end if customer_id <= 0 || customer_id > 9_999_999_999 raise ArgumentError.new( "Invalid #{field.to_s}. Must be an integer " \ "0 < x <= 9,999,999,999. Got #{customer_id}" ) end end