class BraspagRest::Sale
Attributes
errors[R]
Public Class Methods
find(request_id, payment_id)
click to toggle source
# File lib/braspag-rest/sale.rb, line 15 def self.find(request_id, payment_id) response = BraspagRest::Request.get_sale(request_id, payment_id) new(response.parsed_body.merge('RequestId' => request_id)) end
find_by_order_id(request_id, order_id)
click to toggle source
# File lib/braspag-rest/sale.rb, line 21 def self.find_by_order_id(request_id, order_id) response = BraspagRest::Request.get_sales_for_merchant_order_id(request_id, order_id) payments = response.parsed_body['Payments'] Array(payments).map { |payment| BraspagRest::Sale.find(request_id, payment['PaymentId']) } end
Public Instance Methods
cancel(amount = nil)
click to toggle source
# File lib/braspag-rest/sale.rb, line 40 def cancel(amount = nil) response = BraspagRest::Request.void(request_id, payment.id, amount) if response.success? reload else initialize_errors(response.parsed_body) end response.success? end
capture(amount = nil)
click to toggle source
# File lib/braspag-rest/sale.rb, line 52 def capture(amount = nil) response = BraspagRest::Request.capture(request_id, payment.id, (amount || payment.amount)) if response.success? self.payment.initialize_attributes(response.parsed_body) else initialize_errors(response.parsed_body) and return false end payment.captured? end
reload()
click to toggle source
# File lib/braspag-rest/sale.rb, line 64 def reload if !request_id.nil? && payment && !payment.id.nil? reloaded_reference = self.class.find(request_id, payment.id) self.initialize_attributes(reloaded_reference.inverse_attributes) end self end
save()
click to toggle source
# File lib/braspag-rest/sale.rb, line 28 def save response = BraspagRest::Request.authorize(request_id, inverse_attributes) if response.success? initialize_attributes(response.parsed_body) else initialize_errors(response.parsed_body) and return false end true end
Private Instance Methods
initialize_errors(errors)
click to toggle source
# File lib/braspag-rest/sale.rb, line 75 def initialize_errors(errors) @errors = errors.map { |error| { code: error['Code'], message: error['Message'] } } end