class SodaXmlTeam::Client

Client for interacting with API

Public Class Methods

new(username, password) click to toggle source
# File lib/soda_xml_team/client.rb, line 10
def initialize(username, password)
  @auth = { username: username, password: password }
  @dir = File.dirname __FILE__
end

Public Instance Methods

content_finder(options = {}) click to toggle source

Content Finder retrieves an RSS feed of desired data

# File lib/soda_xml_team/client.rb, line 17
def content_finder(options = {})
  response = HTTParty.get(
    SodaXmlTeam::Address.build(
      'get_listing',
      options
    ),
    basic_auth: @auth,
    ssl_ca_file: "#{@dir}/../ca-certificates.crt",
    ssl_version: :SSLv3
  )
  feed = Nokogiri::XML(response.body)

  documents = []
  feed.css('item').each do |item|
    record = {}

    # Parse for document ID
    link = item.css('link').inner_text
    document_id = link.gsub(/(.*)?doc-ids=/i, '')

    record[:title] = item.css('title').inner_text
    record[:link] = link
    record[:document_id] = document_id
    record[:date] = DateTime.parse(item.xpath('./dc:date').inner_text)
    item.xpath('./sportsml:sports-content-codes').each do |sportscontent|
      sportscontent.xpath('./sportsml:sports-content-code').each do |c|
        record[c['code-type'].to_sym] = c['code-key']
      end
    end

    documents << record
  end

  documents
end
get_document(options = {}) click to toggle source

Get Document retrieves a parsed XML instance of a given document

# File lib/soda_xml_team/client.rb, line 71
def get_document(options = {})
  response = HTTParty.get(
    SodaXmlTeam::Address.build(
      'get_document',
      options
    ),
    basic_auth: @auth,
    ssl_ca_file: "#{@dir}/../ca-certificates.crt",
    ssl_version: :SSLv3
  )
  Nokogiri::XML(response.body)
end
get_listing(options = {}) click to toggle source

Deprecated: Please use `content_finder` instead

# File lib/soda_xml_team/client.rb, line 55
def get_listing(options = {})
  warn '[DEPRECATION] `get_listing` is deprecated. Please use `content_finder` instead.'
  response = HTTParty.get(
    SodaXmlTeam::Address.build(
      'get_listing',
      options
    ),
    basic_auth: @auth,
    ssl_ca_file: "#{@dir}/../ca-certificates.crt",
    ssl_version: :SSLv3
  )
  Nokogiri::XML(response.body)
end