Class: Bing::Ads::API::V11::Data::ReportRequest

Inherits:
Object
  • Object
show all
Defined in:
lib/bing/ads/api/v11/data/report_request.rb

Overview

Bing::Ads::API::V11::Data::ReportRequest

Constant Summary collapse

KEYS_ORDER =
[
  :exclude_column_headers,
  :exclude_report_footer,
  :exclude_report_header,
  :format,
  :language,
  :report_name,
  :return_only_complete_data,
  :aggregation,
  :columns,
  :filter,
  :scope,
  :time
]

Class Method Summary collapse

Class Method Details

.prepare(type, report_request_raw) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/bing/ads/api/v11/data/report_request.rb', line 27

def prepare(type, report_request_raw)
  report_request_raw[:columns] = prepare_columns(
    columns: report_request_raw[:columns],
    type: type.to_s.classify
  )

  report_request_raw[:scope] = prepare_scope(
    account_ids: report_request_raw[:account_ids]
  )

  report_request_raw[:time] = prepare_time_period(
    from_date: report_request_raw[:from_date],
    to_date:   report_request_raw[:to_date]
  )

  report_request_raw.except!(:from_date, :to_date, :account_ids)

  report_request = Bing::Ads::Utils.sort_keys(report_request_raw, KEYS_ORDER)
  namespace_identifier = Bing::Ads::API::V11::NAMESPACE_IDENTIFIER
  {
    report_request: Bing::Ads::Utils.camelcase_keys(report_request),
    :attributes! => {
      report_request: {
        "xmlns:i" => "http://www.w3.org/2001/XMLSchema-instance",
        "i:type" => "#{namespace_identifier}:#{type.to_s.classify}ReportRequest"
      }
    }
  }
end