Class: PagSeguro::Query
- Inherits:
-
Transaction
- Object
- Transaction
- PagSeguro::Query
- Defined in:
- lib/pag_seguro/query.rb
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
Class Method Summary collapse
- .find(email, token, options = {}) ⇒ Object
- .parse_dates(options = {}) ⇒ Object
- .search_params(email, token, options = {}) ⇒ Object
Instance Method Summary collapse
-
#initialize(email, token, transaction_code) ⇒ Query
constructor
A new instance of Query.
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
Returns a new instance of 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, ={}) url = Transaction.transactions_url url += "/abandoned" if [:abandoned] transactions_data = Nokogiri::XML(RestClient.get url, params: search_params(email, token, )) 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(={}) initial_date = ([:initial_date] || Time.now - 1.day).to_time final_date = ([: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, ={}) params = {email: email, token: token} params[:initialDate], params[:finalDate] = parse_dates() params[:page] = [:page] if [:page] params[:maxPageResults] = [:max_page_results] if [:max_page_results] params end |