Class: SportsSouth::Image

Inherits:
Base
  • Object
show all
Defined in:
lib/sports_south/image.rb

Constant Summary collapse

API_URL =
'http://webservices.theshootingwarehouse.com/smart/images.asmx'

Constants inherited from Base

Base::CONTENT_TYPE, Base::TIMEOUT, Base::USER_AGENT

Class Method Summary collapse

Class Method Details

.list_new_pictures(options = {}) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/sports_south/image.rb', line 30

def self.list_new_pictures(options = {})
  requires!(options, :username, :password)

  http, request = get_http_and_request(API_URL, '/ListNewPictures')

  request.set_form_data(form_params(options).merge({
    DateFrom: (options[:date_from] || (DateTime.now - 1).strftime('%m/%d/%Y'))
  }))

  response = http.request(request)
  xml_doc  = Nokogiri::XML(sanitize_response(response))

  xml_doc.css('Table').map { |node| { item_number: content_for(node, 'ITEMNO') } }
end

.urls(item_number, options = {}) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/sports_south/image.rb', line 6

def self.urls(item_number, options = {})
  requires!(options, :username, :password)

  http, request = get_http_and_request(API_URL, '/GetPictureURLs')

  request.set_form_data(form_params(options).merge({
    ItemNumber: item_number
  }))

  response = http.request(request)
  xml_doc  = Nokogiri::XML(sanitize_response(response))

  raise SportsSouth::NotAuthenticated if not_authenticated?(xml_doc)

  images = Hash.new

  xml_doc.css('Table').each do |image|
    size = content_for(image, 'ImageSize').to_sym
    images[size] = content_for(image, 'Link')
  end

  images
end