Sha256: 78e7fdc4b687b9867f12a5e4bfb777e34a3d378296bdb065c250b887b7df5d93

Contents?: true

Size: 1.19 KB

Versions: 4

Compression:

Stored size: 1.19 KB

Contents

# frozen_string_literal: true

module BingAdsRubySdk
  # Contains the SOAP Request header informations
  class Header
    # @param developer_token
    # @param client_id
    # @param store instance of a store
    def initialize(developer_token:, client_id:, store:)
      @developer_token = developer_token
      @client_id = client_id
      @oauth_store = store
      @customer = {}
    end

    # @return [Hash] Authorization and identification data that will be added to the SOAP header
    def content
      {
        "AuthenticationToken" => auth_handler.fetch_or_refresh,
        "DeveloperToken" =>      developer_token,
        "CustomerId" =>          customer[:customer_id],
        "CustomerAccountId" =>   customer[:account_id]
      }
    end

    def set_customer(account_id:, customer_id:)
      customer[:account_id] = account_id
      customer[:customer_id] = customer_id
      self
    end

    private

    attr_reader :oauth_store, :developer_token, :client_id, :customer

    def auth_handler
      @auth_handler ||= ::BingAdsRubySdk::OAuth2::AuthorizationHandler.new(
        developer_token: developer_token,
        client_id: client_id,
        store: oauth_store
      )
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
bing_ads_ruby_sdk-1.3.0 lib/bing_ads_ruby_sdk/header.rb
bing_ads_ruby_sdk-1.2.0 lib/bing_ads_ruby_sdk/header.rb
bing_ads_ruby_sdk-1.1.1 lib/bing_ads_ruby_sdk/header.rb
bing_ads_ruby_sdk-1.0.0 lib/bing_ads_ruby_sdk/header.rb