class Rezgo::Connection

Public Class Methods

new(transcode, api_key, result_type = "raw") click to toggle source
# File lib/rezgo/connection.rb, line 3
def initialize(transcode, api_key, result_type = "raw")
  raise ArgumentError, "Invalid Transcode" unless transcode.downcase.start_with?("p")
  raise ArgumentError, "Invalid API Key" unless api_key.match(/[a-zA-Z0-9]{3}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{3}/i)
  
  @transcode = transcode
  @api_key = api_key
  @result_type = result_type
  @base_url = "https://xml.rezgo.com/xml?"
end

Public Instance Methods

about() click to toggle source
# File lib/rezgo/connection.rb, line 21
def about
  request("about")
end
classification_list() click to toggle source
# File lib/rezgo/connection.rb, line 53
def classification_list
  request("classification_list")
end
commit(opt_args = {}) click to toggle source
# File lib/rezgo/connection.rb, line 33
def commit(opt_args = {})
  request("commit", opt_args)
end
company() click to toggle source
# File lib/rezgo/connection.rb, line 13
def company
  request("company")
end
headers() click to toggle source
# File lib/rezgo/connection.rb, line 17
def headers
  request("headers")
end
modify_bookings(cancel_code, voucher_code) click to toggle source
# File lib/rezgo/connection.rb, line 37
def modify_bookings(cancel_code, voucher_code)
  request("modify_bookings", {:a => "cancel", :cancel_code => cancel_code, :q => voucher_code})
end
month(uid, opt_args = {}) click to toggle source
# File lib/rezgo/connection.rb, line 45
def month(uid, opt_args = {})
  request("month", opt_args.merge(:q => uid))
end
region_list() click to toggle source
# File lib/rezgo/connection.rb, line 49
def region_list
  request("region_list")
end
search_bookings(transaction_code) click to toggle source
# File lib/rezgo/connection.rb, line 41
def search_bookings(transaction_code)
  request("search_bookings", {:q => transaction_code})
end
search_items(opt_args = {}) click to toggle source
# File lib/rezgo/connection.rb, line 25
def search_items(opt_args = {})
  request("search_items", opt_args)
end
tags() click to toggle source
# File lib/rezgo/connection.rb, line 29
def tags
  request("tags")
end

Private Instance Methods

request(request_type, opt_args = {}) click to toggle source
# File lib/rezgo/connection.rb, line 59
def request(request_type, opt_args = {})
  valid_reqs = ["company", "headers", "about", "search_items", "tags", "commit", "modify_bookings", 
                "search_bookings", "month", "region_list", "classification_list"]
  raise ArgumentError, "Invalid Request Type" unless valid_reqs.include?(request_type.downcase)
  
  params = {:key => @api_key, :transcode => @transcode, :i => request_type}
  
  url = @base_url + params.merge(opt_args).to_query
  
  response = open(url).read
  
  @result_type == "raw" ? response : Hash.from_xml(response)["response"]
end