class Beanstream::ReportingAPI
Public Instance Methods
reports_url()
click to toggle source
# File lib/beanstream/reporting_api.rb, line 6 def reports_url "#{Beanstream.api_base_url()}/reports" end
search_transactions(start_date, end_date, start_row, end_row, criteria=nil)
click to toggle source
# File lib/beanstream/reporting_api.rb, line 10 def search_transactions(start_date, end_date, start_row, end_row, criteria=nil) if !start_date.is_a?(Time) raise InvalidRequestException.new(0, 0, "start_date must be of type Time in ReportingApi.search_transactions", 0) end if !end_date.is_a?(Time) raise InvalidRequestException.new(0, 0, "end_date must be of type Time in ReportingApi.search_transactions", 0) end if criteria != nil && !criteria.kind_of?(Array) && !criteria.is_a?(Beanstream::Criteria) puts "criteria was of type: #{criteria.class}" raise InvalidRequestException.new(0, 0, "criteria must be of type Array<Critiera> or Criteria in ReportingApi.search_transactions", 0) end if criteria.is_a?(Beanstream::Criteria) #make it an array criteria = Array[criteria] end startD = start_date.strftime "%Y-%m-%dT%H:%M:%S" endD = end_date.strftime "%Y-%m-%dT%H:%M:%S" criteria_hash = Array[] if criteria != nil && criteria.length > 0 for c in criteria criteria_hash << c.to_hash end end query = { "name" => "Search", "start_date" => startD, "end_date" => endD, "start_row" => start_row, "end_row" => end_row, "criteria" => criteria_hash } puts "\n\nReport search query #{query}\n\n" val = transaction_post("POST", reports_url, Beanstream.merchant_id, Beanstream.reporting_api_key, query) results = val['records'] end