Class: PagSeguro::Query
Constant Summary
Constants inherited
from Transaction
Transaction::PAGSEGURO_ADDITION_OF_FUNDS, Transaction::PAGSEGURO_APPROVED, Transaction::PAGSEGURO_AVAILABLE, Transaction::PAGSEGURO_BONUS, Transaction::PAGSEGURO_CANCELLED, Transaction::PAGSEGURO_CHARGE, Transaction::PAGSEGURO_DISPUTED, Transaction::PAGSEGURO_IN_ANALYSIS, Transaction::PAGSEGURO_PAYMENT, Transaction::PAGSEGURO_PROCESSING, Transaction::PAGSEGURO_RETURNED, Transaction::PAGSEGURO_TRANSFER
Instance Attribute Summary
Attributes inherited from Transaction
#data
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Transaction
#addition_of_funds?, #approved?, #available?, #bonus?, #cancelled?, #charge?, #date, #discount_amount, #disputed?, #extra_amount, #fee_amount, #gross_amount, #id, #in_analysis?, #installment_count, #item_count, #items, #net_amount, #payment?, #payment_method, #processing?, #returned?, #sender, #shipping, #status, status_for, #transaction_id, transactions_url, #transfer?, #type
Constructor Details
#initialize(email, token, transaction_code) ⇒ Query
4
5
6
7
8
9
|
# File 'lib/pag_seguro/query.rb', line 4
def initialize(email, token, transaction_code)
raise "Needs a transaction code" if transaction_code.blank?
raise "Needs an email" if email.blank?
raise "Needs a token" if token.blank?
@data = transaction_data(email, token, transaction_code)
end
|
Class Method Details
.find(email, token, options = {}) ⇒ Object
11
12
13
14
15
16
17
18
19
|
# File 'lib/pag_seguro/query.rb', line 11
def self.find(email, token, options={})
url = Transaction.transactions_url
url += "/abandoned" if options[:abandoned]
transactions_data = Nokogiri::XML(RestClient.get url, params: search_params(email, token, options))
transactions_data.css("transaction").map do |transaction_xml|
Transaction.new(transaction_xml)
end
end
|
.parse_dates(options = {}) ⇒ Object
29
30
31
32
33
34
35
36
37
38
39
|
# File 'lib/pag_seguro/query.rb', line 29
def self.parse_dates(options={})
initial_date = (options[:initial_date] || Time.now - 1.day).to_time
final_date = (options[:final_date] || initial_date + 1.day).to_time
raise "Invalid initial date. Must be bigger than 6 months ago" if initial_date < 6.months.ago
raise "Invalid end date. Must be less than today" if final_date > Date.today.end_of_day
raise "Invalid end date. Must be bigger than initial date" if final_date < initial_date
raise "Invalid end date. Must not differ from initial date in more than 30 days" if (final_date.to_date - initial_date.to_date) > 30
return initial_date.to_time.iso8601, final_date.to_time.iso8601
end
|
.search_params(email, token, options = {}) ⇒ Object
21
22
23
24
25
26
27
|
# File 'lib/pag_seguro/query.rb', line 21
def self.search_params(email, token, options={})
params = {email: email, token: token}
params[:initialDate], params[:finalDate] = parse_dates(options)
params[:page] = options[:page] if options[:page]
params[:maxPageResults] = options[:max_page_results] if options[:max_page_results]
params
end
|