class CJAdvertisers

Public Class Methods

new(params, feed = {}) click to toggle source
# File lib/cj_advertisers.rb, line 8
def initialize(params, feed = {})
  #I think we will probably move towards a place where params can be replaced by
  # a db object
  @params = params
  @feed = feed
end

Public Instance Methods

calculate_total_pages(response) click to toggle source
# File lib/cj_advertisers.rb, line 51
def calculate_total_pages(response)
  doc = Nokogiri::XML(CGI.unescapeHTML(response.body))
  records_per_page = doc.xpath("//advertisers/@records-returned")[0].to_s.to_i
  return (doc.xpath("//advertisers/@total-matched")[0].to_s.to_i / records_per_page) + 1
end
collect_advertisers() click to toggle source
# File lib/cj_advertisers.rb, line 15
def collect_advertisers()
  #Setup the models we'll need
  advert_parser = AdvertiserParser.new
  
  uri = URI("https://advertiser-lookup.api.cj.com/v3/advertiser-lookup") #This can go into vendors table
  headers = {"authorization" => "00b0786d8cc156bc642d3b3531b858efbf445f0b9fac809ce739506268f388170e14eb47e411c5a7fd2b6eebfc333e09821e6a4748fc068e7ebe545f7a43171029/009d71a493cb3f3e6fc627280b8724da29f4af33e8aef84484cb8edb6e35b0fa97592c51e20eea0f63a36101cbe92f47073a28acbb29a293ed27c5884ef3d5a09d"} #this might go into some headings table

  require 'net/https'
  http          = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl  = true if uri.port == 443
  request       = HtmlConnectionHelper.build_request(uri,@params,headers)
  response      = http.request(request)
  
  total_num = calculate_total_pages(response)

  puts "Total pages to grab: " + total_num.to_s
  
  #Go through each page
  
  (1..total_num).each_with_index do |n, index|
    puts "Working on page: " + n.to_s
    
    page_number = {"page-number" => n}
    @params.merge!(page_number)
    
    request   = HtmlConnectionHelper.build_request(uri,@params,headers)
    response  = http.request(request)
    response  = CGI.unescapeHTML(response.body)
    #feed_parser.create_coupons_from_xml(response)
    
    #Go parse the page!
    advert_parser.create_cj_advertiser_from_xml(response)
  end
  
end