Module: ArrowPayments::Transactions
- Included in:
- Client
- Defined in:
- lib/arrow_payments/client/transactions.rb
Instance Method Summary collapse
-
#capture_transaction(id, amount) ⇒ Boolean
Capture an unsettled transaction.
-
#create_transaction(transaction) ⇒ Transaction
Create a new transaction.
-
#transaction(id) ⇒ Transaction
Get transaction details.
-
#transactions(customer_id, status = 'NotSettled') ⇒ Array<Transaction>
Get customer transactions by status.
-
#void_transaction(id) ⇒ Boolean
Void a previously submitted transaction that have not yet settled.
Instance Method Details
#capture_transaction(id, amount) ⇒ Boolean
Capture an unsettled transaction
51 52 53 54 |
# File 'lib/arrow_payments/client/transactions.rb', line 51 def capture_transaction(id, amount) resp = post('/transaction/capture', 'TransactionId' => id, 'Amount' => amount) resp['Success'] == true end |
#create_transaction(transaction) ⇒ Transaction
Create a new transaction
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/arrow_payments/client/transactions.rb', line 27 def create_transaction(transaction) if transaction.kind_of?(Hash) transaction = ArrowPayments::Transaction.new(transaction) end # Set default transaction attributes transaction.transaction_source = 'API' params = transaction.to_source_hash params['Amount'] = params['TotalAmount'] resp = post('/transaction/add', params) if resp['Success'] == true ArrowPayments::Transaction.new(resp) else raise ArrowPayments::Error, resp['Message'] end end |
#transaction(id) ⇒ Transaction
Get transaction details
6 7 8 9 10 |
# File 'lib/arrow_payments/client/transactions.rb', line 6 def transaction(id) Transaction.new(get("/transaction/#{id}")) rescue NotFound nil end |
#transactions(customer_id, status = 'NotSettled') ⇒ Array<Transaction>
Get customer transactions by status
16 17 18 19 20 21 22 23 |
# File 'lib/arrow_payments/client/transactions.rb', line 16 def transactions(customer_id, status='NotSettled') unless Transaction::STATUSES.include?(status) raise ArgumentError, "Invalid status: #{status}" end resp = get("/customer/#{customer_id}/Transactions/#{status}") resp['Transactions'].map { |t| Transaction.new(t) } end |
#void_transaction(id) ⇒ Boolean
Void a previously submitted transaction that have not yet settled
59 60 61 62 |
# File 'lib/arrow_payments/client/transactions.rb', line 59 def void_transaction(id) resp = post('/transaction/void', 'TransactionId' => id) resp['Success'] == true end |