class Suretax::Api::Request
Attributes
business_unit[RW]
client_number[RW]
client_tracking[RW]
data_month[RW]
data_year[RW]
industry_exemption[RW]
items[RW]
response[R]
response_group[RW]
response_type[RW]
return_file_code[RW]
stan[RW]
total_revenue[RW]
validation_key[RW]
Public Class Methods
new(options = {})
click to toggle source
# File lib/suretax/api/request.rb, line 37 def initialize(options = {}) self.return_file_code = "0" self.client_number = options.delete(:client_number) || configuration.client_number self.validation_key = options.delete(:validation_key) || configuration.validation_key default_data_date(options) options.each_pair do |key, value| send("#{key}=", value.to_s) end initialize_items(options) validate! end
Public Instance Methods
params()
click to toggle source
# File lib/suretax/api/request.rb, line 75 def params { "ClientNumber" => client_number, "BusinessUnit" => business_unit || "", "ValidationKey" => validation_key, "DataYear" => data_year, "DataMonth" => data_month, "TotalRevenue" => total_revenue.to_f, "ReturnFileCode" => return_file_code, "ClientTracking" => client_tracking || "", "IndustryExemption" => industry_exemption, "ResponseType" => response_type, "ResponseGroup" => response_group, "STAN" => stan || "", "ItemList" => items.map(&:params) } end
rollback()
click to toggle source
# File lib/suretax/api/request.rb, line 67 def rollback if response CancelRequest.new(transaction: response.transaction, client_number: client_number, validation_key: validation_key, client_tracking: client_tracking).submit end end
submit()
click to toggle source
# File lib/suretax/api/request.rb, line 53 def submit if valid? log_request suretax_response = connection.post(params) @response = Suretax::Api::Response.new(suretax_response.body) else raise(ValidationError, errors.messages.join(", ")) end end
valid?()
click to toggle source
# File lib/suretax/api/request.rb, line 63 def valid? errors.none? end
Private Instance Methods
configuration()
click to toggle source
# File lib/suretax/api/request.rb, line 127 def configuration Suretax.configuration end
connection()
click to toggle source
# File lib/suretax/api/request.rb, line 131 def connection @connection ||= Connection.new end
default_data_date(options)
click to toggle source
# File lib/suretax/api/request.rb, line 95 def default_data_date(options) max_date = configuration.test? ? Date.today.prev_month : Date.today requested_date = begin Date.new(options.delete(:data_year).to_i, options.delete(:data_month).to_i, 1) rescue max_date end data_date = [requested_date, max_date].min self.data_month = data_date.strftime("%m") self.data_year = data_date.strftime("%Y") end
initialize_items(options)
click to toggle source
# File lib/suretax/api/request.rb, line 110 def initialize_items(options) self.items = [] if options[:items].respond_to?(:each) options[:items].each do |item_args| items << RequestItem.new(item_args) end end end
log_request()
click to toggle source
# File lib/suretax/api/request.rb, line 119 def log_request logger&.info "\nSureTax Request sent:\n#{params.inspect}" end
logger()
click to toggle source
# File lib/suretax/api/request.rb, line 123 def logger configuration.logger end