google-dfp-api 0.2.1 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ChangeLog +4 -0
- data/README +17 -2
- data/Rakefile +3 -5
- data/examples/v201101/common/oauth_handling.rb +128 -0
- data/examples/v201101/company_service/create_companies.rb +1 -1
- data/examples/v201101/company_service/get_all_companies.rb +1 -1
- data/examples/v201101/creative_service/create_creatives.rb +1 -1
- data/examples/v201101/creative_service/get_all_creatives.rb +1 -1
- data/examples/v201101/custom_targeting_service/delete_custom_targeting_keys.rb +2 -2
- data/examples/v201101/custom_targeting_service/delete_custom_targeting_values.rb +2 -2
- data/examples/v201101/custom_targeting_service/get_all_custom_targeting_keys_and_values.rb +2 -2
- data/examples/v201101/inventory_service/create_ad_units.rb +1 -1
- data/examples/v201101/inventory_service/deactivate_ad_units.rb +2 -2
- data/examples/v201101/inventory_service/get_ad_units_by_statement.rb +1 -1
- data/examples/v201101/inventory_service/get_all_ad_units.rb +1 -1
- data/examples/v201101/line_item_creative_association_service/deactivate_licas.rb +2 -2
- data/examples/v201101/line_item_creative_association_service/get_all_licas.rb +1 -1
- data/examples/v201101/line_item_service/activate_line_items.rb +2 -2
- data/examples/v201101/line_item_service/create_line_items.rb +2 -2
- data/examples/v201101/line_item_service/get_all_line_items.rb +1 -1
- data/examples/v201101/order_service/approve_orders.rb +2 -2
- data/examples/v201101/order_service/create_orders.rb +1 -1
- data/examples/v201101/order_service/get_all_orders.rb +1 -1
- data/examples/v201101/placement_service/create_placements.rb +3 -3
- data/examples/v201101/placement_service/deactivate_placements.rb +2 -2
- data/examples/v201101/placement_service/get_all_placements.rb +1 -1
- data/examples/v201101/user_service/get_all_users.rb +1 -1
- data/examples/v201103/common/oauth_handling.rb +128 -0
- data/examples/v201103/company_service/create_companies.rb +1 -1
- data/examples/v201103/company_service/get_all_companies.rb +1 -1
- data/examples/v201103/creative_service/create_creatives.rb +1 -1
- data/examples/v201103/creative_service/get_all_creatives.rb +1 -1
- data/examples/v201103/custom_targeting_service/delete_custom_targeting_keys.rb +2 -2
- data/examples/v201103/custom_targeting_service/delete_custom_targeting_values.rb +2 -2
- data/examples/v201103/custom_targeting_service/get_all_custom_targeting_keys_and_values.rb +2 -2
- data/examples/v201103/inventory_service/create_ad_units.rb +1 -1
- data/examples/v201103/inventory_service/deactivate_ad_units.rb +2 -2
- data/examples/v201103/inventory_service/get_ad_units_by_statement.rb +1 -1
- data/examples/v201103/inventory_service/get_all_ad_units.rb +1 -1
- data/examples/v201103/line_item_creative_association_service/deactivate_licas.rb +2 -2
- data/examples/v201103/line_item_creative_association_service/get_all_licas.rb +1 -1
- data/examples/v201103/line_item_service/activate_line_items.rb +2 -2
- data/examples/v201103/line_item_service/create_line_items.rb +2 -2
- data/examples/v201103/line_item_service/get_all_line_items.rb +1 -1
- data/examples/v201103/order_service/approve_orders.rb +2 -2
- data/examples/v201103/order_service/create_orders.rb +1 -1
- data/examples/v201103/order_service/get_all_orders.rb +1 -1
- data/examples/v201103/placement_service/create_placements.rb +3 -3
- data/examples/v201103/placement_service/deactivate_placements.rb +2 -2
- data/examples/v201103/placement_service/get_all_placements.rb +1 -1
- data/examples/v201103/user_service/get_all_users.rb +1 -1
- data/examples/v201104/common/oauth_handling.rb +128 -0
- data/examples/v201104/company_service/create_companies.rb +1 -1
- data/examples/v201104/company_service/get_all_companies.rb +1 -1
- data/examples/v201104/creative_service/create_creatives.rb +1 -1
- data/examples/v201104/creative_service/get_all_creatives.rb +1 -1
- data/examples/v201104/custom_targeting_service/delete_custom_targeting_keys.rb +2 -2
- data/examples/v201104/custom_targeting_service/delete_custom_targeting_values.rb +2 -2
- data/examples/v201104/custom_targeting_service/get_all_custom_targeting_keys_and_values.rb +2 -2
- data/examples/v201104/inventory_service/create_ad_units.rb +1 -1
- data/examples/v201104/inventory_service/deactivate_ad_units.rb +2 -2
- data/examples/v201104/inventory_service/get_ad_units_by_statement.rb +1 -1
- data/examples/v201104/inventory_service/get_all_ad_units.rb +1 -1
- data/examples/v201104/line_item_creative_association_service/deactivate_licas.rb +2 -2
- data/examples/v201104/line_item_creative_association_service/get_all_licas.rb +1 -1
- data/examples/v201104/line_item_service/activate_line_items.rb +2 -2
- data/examples/v201104/line_item_service/create_line_items.rb +1 -1
- data/examples/v201104/line_item_service/get_all_line_items.rb +1 -1
- data/examples/v201104/order_service/approve_orders.rb +2 -2
- data/examples/v201104/order_service/create_orders.rb +1 -1
- data/examples/v201104/order_service/get_all_orders.rb +1 -1
- data/examples/v201104/placement_service/create_placements.rb +3 -3
- data/examples/v201104/placement_service/deactivate_placements.rb +2 -2
- data/examples/v201104/placement_service/get_all_placements.rb +1 -1
- data/examples/v201104/user_service/get_all_users.rb +1 -1
- data/lib/dfp_api.rb +24 -70
- data/lib/dfp_api/api_config.rb +3 -1
- data/lib/dfp_api/client_login_header_handler.rb +56 -0
- data/lib/dfp_api/credential_handler.rb +19 -14
- data/lib/dfp_api/errors.rb +1 -1
- data/lib/dfp_api/v201101/company_service.rb +3 -3
- data/lib/dfp_api/v201101/company_service_registry.rb +9 -4
- data/lib/dfp_api/v201101/creative_service.rb +3 -3
- data/lib/dfp_api/v201101/creative_service_registry.rb +9 -4
- data/lib/dfp_api/v201101/custom_targeting_service.rb +7 -7
- data/lib/dfp_api/v201101/custom_targeting_service_registry.rb +9 -4
- data/lib/dfp_api/v201101/forecast_service.rb +3 -3
- data/lib/dfp_api/v201101/forecast_service_registry.rb +9 -4
- data/lib/dfp_api/v201101/inventory_service.rb +7 -7
- data/lib/dfp_api/v201101/inventory_service_registry.rb +9 -4
- data/lib/dfp_api/v201101/line_item_creative_association_service.rb +7 -7
- data/lib/dfp_api/v201101/line_item_creative_association_service_registry.rb +9 -4
- data/lib/dfp_api/v201101/line_item_service.rb +7 -7
- data/lib/dfp_api/v201101/line_item_service_registry.rb +9 -4
- data/lib/dfp_api/v201101/network_service.rb +7 -7
- data/lib/dfp_api/v201101/network_service_registry.rb +9 -4
- data/lib/dfp_api/v201101/order_service.rb +11 -11
- data/lib/dfp_api/v201101/order_service_registry.rb +9 -4
- data/lib/dfp_api/v201101/placement_service.rb +3 -3
- data/lib/dfp_api/v201101/placement_service_registry.rb +9 -4
- data/lib/dfp_api/v201101/publisher_query_language_service.rb +3 -3
- data/lib/dfp_api/v201101/publisher_query_language_service_registry.rb +9 -4
- data/lib/dfp_api/v201101/report_service.rb +3 -3
- data/lib/dfp_api/v201101/report_service_registry.rb +9 -4
- data/lib/dfp_api/v201101/user_service.rb +7 -7
- data/lib/dfp_api/v201101/user_service_registry.rb +9 -4
- data/lib/dfp_api/v201103/company_service.rb +3 -3
- data/lib/dfp_api/v201103/company_service_registry.rb +9 -4
- data/lib/dfp_api/v201103/creative_service.rb +3 -3
- data/lib/dfp_api/v201103/creative_service_registry.rb +9 -4
- data/lib/dfp_api/v201103/custom_targeting_service.rb +7 -7
- data/lib/dfp_api/v201103/custom_targeting_service_registry.rb +9 -4
- data/lib/dfp_api/v201103/forecast_service.rb +3 -3
- data/lib/dfp_api/v201103/forecast_service_registry.rb +9 -4
- data/lib/dfp_api/v201103/inventory_service.rb +7 -7
- data/lib/dfp_api/v201103/inventory_service_registry.rb +9 -4
- data/lib/dfp_api/v201103/line_item_creative_association_service.rb +7 -7
- data/lib/dfp_api/v201103/line_item_creative_association_service_registry.rb +9 -4
- data/lib/dfp_api/v201103/line_item_service.rb +7 -7
- data/lib/dfp_api/v201103/line_item_service_registry.rb +9 -4
- data/lib/dfp_api/v201103/network_service.rb +7 -7
- data/lib/dfp_api/v201103/network_service_registry.rb +9 -4
- data/lib/dfp_api/v201103/order_service.rb +11 -11
- data/lib/dfp_api/v201103/order_service_registry.rb +9 -4
- data/lib/dfp_api/v201103/placement_service.rb +3 -3
- data/lib/dfp_api/v201103/placement_service_registry.rb +9 -4
- data/lib/dfp_api/v201103/publisher_query_language_service.rb +3 -3
- data/lib/dfp_api/v201103/publisher_query_language_service_registry.rb +9 -4
- data/lib/dfp_api/v201103/report_service.rb +3 -3
- data/lib/dfp_api/v201103/report_service_registry.rb +9 -4
- data/lib/dfp_api/v201103/user_service.rb +7 -7
- data/lib/dfp_api/v201103/user_service_registry.rb +9 -4
- data/lib/dfp_api/v201104/company_service.rb +3 -3
- data/lib/dfp_api/v201104/company_service_registry.rb +9 -4
- data/lib/dfp_api/v201104/creative_service.rb +3 -3
- data/lib/dfp_api/v201104/creative_service_registry.rb +9 -4
- data/lib/dfp_api/v201104/custom_targeting_service.rb +7 -7
- data/lib/dfp_api/v201104/custom_targeting_service_registry.rb +9 -4
- data/lib/dfp_api/v201104/forecast_service.rb +3 -3
- data/lib/dfp_api/v201104/forecast_service_registry.rb +9 -4
- data/lib/dfp_api/v201104/inventory_service.rb +7 -7
- data/lib/dfp_api/v201104/inventory_service_registry.rb +9 -4
- data/lib/dfp_api/v201104/line_item_creative_association_service.rb +7 -7
- data/lib/dfp_api/v201104/line_item_creative_association_service_registry.rb +9 -4
- data/lib/dfp_api/v201104/line_item_service.rb +7 -7
- data/lib/dfp_api/v201104/line_item_service_registry.rb +9 -4
- data/lib/dfp_api/v201104/network_service.rb +7 -7
- data/lib/dfp_api/v201104/network_service_registry.rb +9 -4
- data/lib/dfp_api/v201104/order_service.rb +11 -11
- data/lib/dfp_api/v201104/order_service_registry.rb +9 -4
- data/lib/dfp_api/v201104/placement_service.rb +3 -3
- data/lib/dfp_api/v201104/placement_service_registry.rb +9 -4
- data/lib/dfp_api/v201104/publisher_query_language_service.rb +3 -3
- data/lib/dfp_api/v201104/publisher_query_language_service_registry.rb +9 -4
- data/lib/dfp_api/v201104/report_service.rb +3 -3
- data/lib/dfp_api/v201104/report_service_registry.rb +9 -4
- data/lib/dfp_api/v201104/user_service.rb +7 -7
- data/lib/dfp_api/v201104/user_service_registry.rb +9 -4
- data/test/bugs/test_issue_00000016.rb +6 -5
- data/test/dfp_api/test_dfp_api.rb +29 -7
- metadata +257 -253
@@ -41,7 +41,7 @@ def create_companies()
|
|
41
41
|
company_service = dfp.service(:CompanyService, API_VERSION)
|
42
42
|
|
43
43
|
# Create an array to store local company objects.
|
44
|
-
companies =
|
44
|
+
companies = []
|
45
45
|
ITEM_COUNT.times do |index|
|
46
46
|
companies << {:name => "Advertiser #%d" % index, :type => 'ADVERTISER'}
|
47
47
|
end
|
@@ -42,7 +42,7 @@ def get_all_custom_targeting_keys_and_values()
|
|
42
42
|
|
43
43
|
# Define initial values.
|
44
44
|
offset = 0
|
45
|
-
page =
|
45
|
+
page = {}
|
46
46
|
|
47
47
|
begin
|
48
48
|
# Create a statement to get one page with current offset.
|
@@ -82,7 +82,7 @@ end
|
|
82
82
|
def print_all_values_for_key(custom_targeting_service, custom_targeting_key)
|
83
83
|
# Define initial values.
|
84
84
|
offset = 0
|
85
|
-
page =
|
85
|
+
page = {}
|
86
86
|
|
87
87
|
# Create a statement to get values for given key.
|
88
88
|
statement_text = "WHERE customTargetingKeyId = :key_id LIMIT %d" % PAGE_SIZE
|
@@ -51,7 +51,7 @@ def create_ad_units()
|
|
51
51
|
puts "Using effective root ad unit: %d" % effective_root_ad_unit_id
|
52
52
|
|
53
53
|
# Create an array to store local ad unit objects.
|
54
|
-
ad_units =
|
54
|
+
ad_units = []
|
55
55
|
ITEM_COUNT.times do |index|
|
56
56
|
ad_units << {
|
57
57
|
:name => "Ad_Unit_%d" % index,
|
@@ -61,7 +61,7 @@ def get_ad_units_by_statement()
|
|
61
61
|
page = inventory_service.get_ad_units_by_statement(statement)
|
62
62
|
|
63
63
|
if page[:results]
|
64
|
-
# Print details about each
|
64
|
+
# Print details about each ad unit in results.
|
65
65
|
page[:results].each_with_index do |ad_unit, index|
|
66
66
|
puts "%d) Ad unit ID: %d, name: %s, status: %s." %
|
67
67
|
[index, ad_unit[:id], ad_unit[:name], ad_unit[:status]]
|
@@ -49,7 +49,7 @@ def create_orders()
|
|
49
49
|
trafficker_id = 'INSERT_TRAFFICKER_ID_HERE'.to_i
|
50
50
|
|
51
51
|
# Create an array to store local order objects.
|
52
|
-
orders =
|
52
|
+
orders = []
|
53
53
|
ITEM_COUNT.times do |index|
|
54
54
|
orders << {:name => "Order #%d" % index,
|
55
55
|
:advertiser_id => advertiser_id,
|
@@ -46,21 +46,21 @@ def create_placements()
|
|
46
46
|
skyscraper_ad_unit_placement = {
|
47
47
|
:name => "Skyscraper AdUnit Placement #%d" % (Time.new.to_f * 1000),
|
48
48
|
:description => 'Contains ad units for creatives of size 120x600',
|
49
|
-
:targeted_ad_unit_ids =>
|
49
|
+
:targeted_ad_unit_ids => []
|
50
50
|
}
|
51
51
|
|
52
52
|
# Create local placement object to store medium square ad units.
|
53
53
|
medium_square_ad_unit_placement = {
|
54
54
|
:name => "Medium Square AdUnit Placement #%d" % (Time.new.to_f * 1000),
|
55
55
|
:description => 'Contains ad units for creatives of size 300x250',
|
56
|
-
:targeted_ad_unit_ids =>
|
56
|
+
:targeted_ad_unit_ids => []
|
57
57
|
}
|
58
58
|
|
59
59
|
# Create local placement object to store banner ad units.
|
60
60
|
banner_ad_unit_placement = {
|
61
61
|
:name => "Banner AdUnit Placement #%d" % (Time.new.to_f * 1000),
|
62
62
|
:description => 'Contains ad units for creatives of size 468x60',
|
63
|
-
:targeted_ad_unit_ids =>
|
63
|
+
:targeted_ad_unit_ids => []
|
64
64
|
}
|
65
65
|
|
66
66
|
# Get the first 500 ad units.
|
data/lib/dfp_api.rb
CHANGED
@@ -20,17 +20,17 @@
|
|
20
20
|
# Contains the main classes for the client library. Takes care of all
|
21
21
|
# dependencies.
|
22
22
|
|
23
|
-
gem 'google-ads-common', '~>0.
|
24
|
-
|
23
|
+
gem 'google-ads-common', '~>0.5.0'
|
24
|
+
|
25
|
+
require 'savon'
|
26
|
+
|
25
27
|
require 'ads_common/api'
|
26
|
-
require 'ads_common/
|
27
|
-
require 'ads_common/auth/client_login_handler'
|
28
|
-
require 'ads_common/savon_headers/client_login_header_handler'
|
28
|
+
require 'ads_common/savon_headers/oauth_header_handler'
|
29
29
|
require 'ads_common/savon_headers/simple_header_handler'
|
30
|
-
require 'dfp_api/errors'
|
31
30
|
require 'dfp_api/api_config'
|
32
|
-
require 'dfp_api/
|
31
|
+
require 'dfp_api/client_login_header_handler'
|
33
32
|
require 'dfp_api/credential_handler'
|
33
|
+
require 'dfp_api/errors'
|
34
34
|
|
35
35
|
# Main namespace for all the client library's modules and classes.
|
36
36
|
module DfpApi
|
@@ -46,6 +46,11 @@ module DfpApi
|
|
46
46
|
@credential_handler = DfpApi::CredentialHandler.new(@config)
|
47
47
|
end
|
48
48
|
|
49
|
+
# Getter for the API service configurations.
|
50
|
+
def api_config
|
51
|
+
DfpApi::ApiConfig
|
52
|
+
end
|
53
|
+
|
49
54
|
# Sets the logger to use.
|
50
55
|
def logger=(logger)
|
51
56
|
super(logger)
|
@@ -55,75 +60,24 @@ module DfpApi
|
|
55
60
|
end
|
56
61
|
end
|
57
62
|
|
58
|
-
# Getter for the API service configurations.
|
59
|
-
def api_config
|
60
|
-
DfpApi::ApiConfig
|
61
|
-
end
|
62
|
-
|
63
63
|
private
|
64
64
|
|
65
|
-
# Creates an appropriate authentication handler for each service (reuses the
|
66
|
-
# ClientLogin one to avoid generating multiple tokens unnecessarily).
|
67
|
-
def create_auth_handler(environment, version)
|
68
|
-
if @client_login_handler.nil?
|
69
|
-
auth_server = api_config.auth_server(environment)
|
70
|
-
@client_login_handler =
|
71
|
-
AdsCommon::Auth::ClientLoginHandler.new(config, auth_server,
|
72
|
-
api_config.headers_config[:LOGIN_SERVICE_NAME])
|
73
|
-
end
|
74
|
-
return @client_login_handler
|
75
|
-
end
|
76
|
-
|
77
65
|
# Retrieve DFP HeaderHandlers per credential.
|
78
|
-
def soap_header_handlers(auth_handler, header_list, version)
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
66
|
+
def soap_header_handlers(auth_handler, header_list, version, namespace)
|
67
|
+
handler = nil
|
68
|
+
auth_method = @config.read('authentication.method',
|
69
|
+
'ClientLogin').to_s.upcase.to_sym
|
70
|
+
handler = case auth_method
|
71
|
+
when :CLIENTLOGIN
|
72
|
+
(version == :v201101) ?
|
73
|
+
AdsCommon::SavonHeaders::SimpleHeaderHandler :
|
74
|
+
DfpApi::ClientLoginHeaderHandler
|
75
|
+
when :OAUTH
|
76
|
+
AdsCommon::SavonHeaders::OAuthHeaderHandler
|
87
77
|
end
|
78
|
+
ns = api_config.headers_config[:HEADER_NAMESPACE_PREAMBLE] + version.to_s
|
88
79
|
return [handler.new(@credential_handler, auth_handler,
|
89
80
|
api_config.headers_config[:REQUEST_HEADER], ns, version)]
|
90
81
|
end
|
91
|
-
|
92
|
-
# Handle loading of a single service wrapper. Needs to be implemented on
|
93
|
-
# specific API level.
|
94
|
-
#
|
95
|
-
# Args:
|
96
|
-
# - version: intended API version. Must be a symbol.
|
97
|
-
# - service: name for the intended service. Must be a symbol.
|
98
|
-
#
|
99
|
-
# Returns:
|
100
|
-
# - a wrapper generated for the service.
|
101
|
-
#
|
102
|
-
def prepare_wrapper(version, service)
|
103
|
-
environment = config.read('service.environment')
|
104
|
-
api_config.do_require(version, service)
|
105
|
-
endpoint = api_config.endpoint(environment, version, service)
|
106
|
-
interface_class_name = api_config.interface_name(version, service)
|
107
|
-
endpoint_url = endpoint.nil? ? nil : endpoint.to_s + service.to_s
|
108
|
-
wrapper = class_for_path(interface_class_name).new(endpoint_url)
|
109
|
-
|
110
|
-
auth_handler = create_auth_handler(environment, version)
|
111
|
-
header_list =
|
112
|
-
auth_handler.header_list(@credential_handler.credentials(version))
|
113
|
-
|
114
|
-
soap_handlers = soap_header_handlers(auth_handler, header_list, version)
|
115
|
-
soap_handlers.each do |handler|
|
116
|
-
wrapper.headerhandler << handler
|
117
|
-
end
|
118
|
-
|
119
|
-
return wrapper
|
120
|
-
end
|
121
|
-
|
122
|
-
# Converts complete class path into class object.
|
123
|
-
def class_for_path(path)
|
124
|
-
path.split('::').inject(Kernel) do |scope, const_name|
|
125
|
-
scope.const_get(const_name)
|
126
|
-
end
|
127
|
-
end
|
128
82
|
end
|
129
83
|
end
|
data/lib/dfp_api/api_config.rb
CHANGED
@@ -40,7 +40,7 @@ module DfpApi
|
|
40
40
|
# Set other constants
|
41
41
|
API_NAME = 'DfpApi'
|
42
42
|
API_PATH = 'dfp_api'
|
43
|
-
CLIENT_LIB_VERSION = '0.2.
|
43
|
+
CLIENT_LIB_VERSION = '0.2.2'
|
44
44
|
DEFAULT_CONFIG_FILENAME = 'dfp_api.yml'
|
45
45
|
|
46
46
|
# Configure the services available to each version
|
@@ -65,11 +65,13 @@ module DfpApi
|
|
65
65
|
# Configure the different environments, with the base URL for each one
|
66
66
|
@@environment_config = {
|
67
67
|
:PRODUCTION => {
|
68
|
+
:oauth_scope => 'https://www.google.com/apis/ads/publisher/',
|
68
69
|
:v201101 => 'https://www.google.com/apis/ads/publisher/',
|
69
70
|
:v201103 => 'https://www.google.com/apis/ads/publisher/',
|
70
71
|
:v201104 => 'https://www.google.com/apis/ads/publisher/'
|
71
72
|
},
|
72
73
|
:SANDBOX => {
|
74
|
+
:oauth_scope => 'https://sandbox.google.com/apis/ads/publisher/',
|
73
75
|
:v201101 => 'https://sandbox.google.com/apis/ads/publisher/',
|
74
76
|
:v201103 => 'https://sandbox.google.com/apis/ads/publisher/',
|
75
77
|
:v201104 => 'https://sandbox.google.com/apis/ads/publisher/'
|
@@ -0,0 +1,56 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
#
|
3
|
+
# Authors:: api.dklimkin@gmail.com (Danial Klimkin)
|
4
|
+
#
|
5
|
+
# Copyright:: Copyright 2011, Google Inc. All Rights Reserved.
|
6
|
+
#
|
7
|
+
# License:: Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
+
# you may not use this file except in compliance with the License.
|
9
|
+
# You may obtain a copy of the License at
|
10
|
+
#
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
+
#
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
16
|
+
# implied.
|
17
|
+
# See the License for the specific language governing permissions and
|
18
|
+
# limitations under the License.
|
19
|
+
#
|
20
|
+
# Handles SOAP headers and namespaces definition for ClientLogin type header.
|
21
|
+
|
22
|
+
require 'ads_common/savon_headers/simple_header_handler'
|
23
|
+
|
24
|
+
module DfpApi
|
25
|
+
class ClientLoginHeaderHandler < AdsCommon::SavonHeaders::SimpleHeaderHandler
|
26
|
+
private
|
27
|
+
|
28
|
+
# Generates SOAP request header with login credentials and namespace
|
29
|
+
# definition.
|
30
|
+
#
|
31
|
+
# Args:
|
32
|
+
# - None
|
33
|
+
#
|
34
|
+
# Returns:
|
35
|
+
# - Hash containing a header with filled in credentials
|
36
|
+
#
|
37
|
+
def generate_request_header()
|
38
|
+
headers = @auth_handler.headers(@credential_handler.credentials)
|
39
|
+
return headers.inject({}) do |request_header, (header, value)|
|
40
|
+
if header == :authToken
|
41
|
+
auth_header = prepend_namespace('authentication')
|
42
|
+
request_header[auth_header] = {
|
43
|
+
prepend_namespace('token') => value
|
44
|
+
}
|
45
|
+
request_header[:attributes!] ||= {}
|
46
|
+
request_header[:attributes!][auth_header] = {
|
47
|
+
'xsi:type' => prepend_namespace('ClientLogin'),
|
48
|
+
}
|
49
|
+
else
|
50
|
+
request_header[prepend_namespace(header)] = value
|
51
|
+
end
|
52
|
+
request_header
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|