Sha256: a94cf425daf689f2ae29afcfe2994fec19e600d2dd50b9654fbabcfd2b57d622

Contents?: true

Size: 1.46 KB

Versions: 16

Compression:

Stored size: 1.46 KB

Contents

require 'date'
require_relative 'base_client'
require 'rest-client'

class AdopsReportScrapper::IndexexchangeClient < AdopsReportScrapper::BaseClient
  def date_supported?(date = nil)
    _date = date || @date
    return true if _date < (Date.today + 1)
    false
  end

  def init_client
  end

  def before_quit_with_error
  end

  private

  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
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
adops_report_scrapper-0.2.52 lib/adops_report_scrapper/indexexchange_client.rb
adops_report_scrapper-0.2.51 lib/adops_report_scrapper/indexexchange_client.rb
adops_report_scrapper-0.2.50 lib/adops_report_scrapper/indexexchange_client.rb
adops_report_scrapper-0.2.49 lib/adops_report_scrapper/indexexchange_client.rb
adops_report_scrapper-0.2.48 lib/adops_report_scrapper/indexexchange_client.rb
adops_report_scrapper-0.2.46 lib/adops_report_scrapper/indexexchange_client.rb
adops_report_scrapper-0.2.45 lib/adops_report_scrapper/indexexchange_client.rb
adops_report_scrapper-0.2.44 lib/adops_report_scrapper/indexexchange_client.rb
adops_report_scrapper-0.2.43 lib/adops_report_scrapper/indexexchange_client.rb
adops_report_scrapper-0.2.42 lib/adops_report_scrapper/indexexchange_client.rb
adops_report_scrapper-0.2.41 lib/adops_report_scrapper/indexexchange_client.rb
adops_report_scrapper-0.2.40 lib/adops_report_scrapper/indexexchange_client.rb
adops_report_scrapper-0.2.39 lib/adops_report_scrapper/indexexchange_client.rb
adops_report_scrapper-0.2.38 lib/adops_report_scrapper/indexexchange_client.rb
adops_report_scrapper-0.2.37 lib/adops_report_scrapper/indexexchange_client.rb
adops_report_scrapper-0.2.35 lib/adops_report_scrapper/indexexchange_client.rb