class AdopsReportScrapper::IndexexchangeClient
Public Instance Methods
before_quit_with_error()
click to toggle source
# File lib/adops_report_scrapper/indexexchange_client.rb, line 15 def before_quit_with_error end
date_supported?(date = nil)
click to toggle source
# File lib/adops_report_scrapper/indexexchange_client.rb, line 6 def date_supported?(date = nil) _date = date || @date return true if _date < (Date.today + 1) false end
init_client()
click to toggle source
# File lib/adops_report_scrapper/indexexchange_client.rb, line 12 def init_client end
Private Instance Methods
scrap()
click to toggle source
# File lib/adops_report_scrapper/indexexchange_client.rb, line 20 def scrap date_str = @date.strftime('%Y-%m-%d') response = RestClient.post 'https://auth.indexexchange.com/auth/oauth/token', { 'username' => @login, 'key' => @secret }.to_json, { 'Content-Type' => 'application/json; charset=utf-8' } access_token = JSON.parse(response)['data']['accessToken'] header = { 'Authorization' => "Bearer #{access_token}", 'Content-Type' => 'application/json; charset=utf-8' } response = RestClient.post 'https://api01.indexexchange.com/api/publishers/sites', '', header site_tag_map = JSON.parse(response)['data'].map { |e| [e['siteID'], e['name']] }.to_h response = RestClient.post 'https://api01.indexexchange.com/api/publishers/stats/earnings/open', { 'filters' => { 'startDate' => date_str, 'endDate' => date_str }, 'aggregation' => 'siteID' }.to_json, header data = JSON.parse(response)['data'].each do |datum| datum['siteTagName'] = site_tag_map[datum['aggregateID']] end unless data[0] @data = [] return end header = data[0].keys @data = [header] @data += data.map do |datum| header.map { |key| datum[key] } end end