Class: PayTrace::RecurringTransaction
- Inherits:
-
Object
- Object
- PayTrace::RecurringTransaction
- Defined in:
- lib/paytrace/recurring_transaction.rb
Constant Summary collapse
- CREATE_METHOD =
"CreateRecur"
- DELETE_METHOD =
"DeleteRecur"
- UPDATE_METHOD =
"UpdateRecur"
- EXPORT_APPROVED_METHOD =
"ExportCustomerRecur"
- EXPORT_SCHEDULED_METHOD =
"ExportRecur"
Instance Attribute Summary collapse
-
#amount ⇒ Object
readonly
Returns the value of attribute amount.
-
#current_count ⇒ Object
readonly
Returns the value of attribute current_count.
-
#customer_id ⇒ Object
readonly
Returns the value of attribute customer_id.
-
#description ⇒ Object
readonly
Returns the value of attribute description.
-
#id ⇒ Object
readonly
Returns the value of attribute id.
-
#next ⇒ Object
readonly
Returns the value of attribute next.
-
#repeat ⇒ Object
readonly
Returns the value of attribute repeat.
-
#total_count ⇒ Object
readonly
Returns the value of attribute total_count.
Class Method Summary collapse
- .create(params = {}) ⇒ Object
- .delete(params = {}) ⇒ Object
- .export_approved(params = {}) ⇒ Object
- .export_scheduled(params = {}) ⇒ Object
- .parse_response(response) ⇒ Object
- .set_request_data(method, params) ⇒ Object
- .update(params = {}) ⇒ Object
Instance Method Summary collapse
-
#initialize(raw_response) ⇒ RecurringTransaction
constructor
A new instance of RecurringTransaction.
- #inspect ⇒ Object
Constructor Details
#initialize(raw_response) ⇒ RecurringTransaction
Returns a new instance of RecurringTransaction.
13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/paytrace/recurring_transaction.rb', line 13 def initialize(raw_response) response_map = Hash[raw_response.split('+').map {|pair| pair.split('=')}] @id = response_map["RECURID"].to_i @amount = response_map["AMOUNT"].to_f @customer_id = response_map["CUSTID"] @next = response_map["NEXT"] @total_count = response_map["TOTALCOUNT"].to_i @current_count = response_map["CURRENTCOUNT"].to_i @repeat = response_map["REPEAT"].to_i @description = response_map["DESCRIPTION"] end |
Instance Attribute Details
#amount ⇒ Object (readonly)
Returns the value of attribute amount.
5 6 7 |
# File 'lib/paytrace/recurring_transaction.rb', line 5 def amount @amount end |
#current_count ⇒ Object (readonly)
Returns the value of attribute current_count.
5 6 7 |
# File 'lib/paytrace/recurring_transaction.rb', line 5 def current_count @current_count end |
#customer_id ⇒ Object (readonly)
Returns the value of attribute customer_id.
5 6 7 |
# File 'lib/paytrace/recurring_transaction.rb', line 5 def customer_id @customer_id end |
#description ⇒ Object (readonly)
Returns the value of attribute description.
5 6 7 |
# File 'lib/paytrace/recurring_transaction.rb', line 5 def description @description end |
#id ⇒ Object (readonly)
Returns the value of attribute id.
5 6 7 |
# File 'lib/paytrace/recurring_transaction.rb', line 5 def id @id end |
#next ⇒ Object (readonly)
Returns the value of attribute next.
5 6 7 |
# File 'lib/paytrace/recurring_transaction.rb', line 5 def next @next end |
#repeat ⇒ Object (readonly)
Returns the value of attribute repeat.
5 6 7 |
# File 'lib/paytrace/recurring_transaction.rb', line 5 def repeat @repeat end |
#total_count ⇒ Object (readonly)
Returns the value of attribute total_count.
5 6 7 |
# File 'lib/paytrace/recurring_transaction.rb', line 5 def total_count @total_count end |
Class Method Details
.create(params = {}) ⇒ Object
37 38 39 |
# File 'lib/paytrace/recurring_transaction.rb', line 37 def self.create(params = {}) parse_response(set_request_data(CREATE_METHOD, params)) end |
.delete(params = {}) ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/paytrace/recurring_transaction.rb', line 41 def self.delete(params = {}) request = PayTrace::API::Request.new request.set_param(:method, DELETE_METHOD) if params[:recur_id] request.set_param(:recur_id, params[:recur_id]) else request.set_param(:customer_id, params[:customer_id]) end gateway = PayTrace::API::Gateway.new parse_response(gateway.send_request(request)) end |
.export_approved(params = {}) ⇒ Object
33 34 35 |
# File 'lib/paytrace/recurring_transaction.rb', line 33 def self.export_approved(params = {}) set_request_data(EXPORT_APPROVED_METHOD, params) end |
.export_scheduled(params = {}) ⇒ Object
29 30 31 |
# File 'lib/paytrace/recurring_transaction.rb', line 29 def self.export_scheduled(params = {}) parse_response(set_request_data(EXPORT_SCHEDULED_METHOD, params)) end |
.parse_response(response) ⇒ Object
58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/paytrace/recurring_transaction.rb', line 58 def self.parse_response(response) unless response.has_errors? values = response.values if values.has_key?("RECURRINGPAYMENT") new(values["RECURRINGPAYMENT"]) else values["RECURID"] end end end |
.set_request_data(method, params) ⇒ Object
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/paytrace/recurring_transaction.rb', line 70 def self.set_request_data(method, params) request = PayTrace::API::Request.new request.set_param(:method, method) request.set_param(:recur_id, params[:recur_id]) request.set_param(:customer_id, params[:customer_id]) request.set_param(:recur_frequency, params[:recur_frequency]) request.set_param(:recur_start, params[:recur_start]) request.set_param(:recur_count, params[:recur_count]) request.set_param(:amount, params[:amount]) request.set_param(:transaction_type, params[:transaction_type]) request.set_param(:description, params[:description]) request.set_param(:recur_receipt, params[:recur_receipt]) request.set_param(:recur_type, params[:recur_type]) gateway = PayTrace::API::Gateway.new gateway.send_request(request) end |
.update(params = {}) ⇒ Object
54 55 56 |
# File 'lib/paytrace/recurring_transaction.rb', line 54 def self.update(params = {}) parse_response(set_request_data(UPDATE_METHOD, params)) end |
Instance Method Details
#inspect ⇒ Object
25 26 27 |
# File 'lib/paytrace/recurring_transaction.rb', line 25 def inspect "<RecurringTransaction:#{@id},customer id:#{@customer_id},amount: #{@amount},next: #{@next}>" end |