Class: Nihaopay::Transactions::Capture

Inherits:
Base
  • Object
show all
Defined in:
lib/nihaopay/transactions/capture.rb

Direct Known Subclasses

Cancel, Refund

Constant Summary

Constants included from Queryable

Queryable::TIME_FORMAT

Constants included from Api

Api::LIVE_HOST, Api::TEST_HOST, Api::VERSION

Instance Attribute Summary collapse

Attributes inherited from Base

#amount, #currency, #note, #reference, #status, #time, #token, #transaction_id, #type

Class Method Summary collapse

Methods inherited from Base

build, build_from_response!, #cancel, #capture, #initialize, #partial_capture, #partial_refund, #refund, #release, request_body, request_headers

Methods included from Queryable

included

Methods included from Api

included

Constructor Details

This class inherits a constructor from Nihaopay::Transactions::Base

Instance Attribute Details

#capture_transaction_idObject

Returns the value of attribute capture_transaction_id.



4
5
6
# File 'lib/nihaopay/transactions/capture.rb', line 4

def capture_transaction_id
  @capture_transaction_id
end

#capturedObject

Returns the value of attribute captured.



4
5
6
# File 'lib/nihaopay/transactions/capture.rb', line 4

def captured
  @captured
end

Class Method Details

.request_params(options = {}) ⇒ Object



19
20
21
22
23
# File 'lib/nihaopay/transactions/capture.rb', line 19

def request_params(options = {})
  params = Nihaopay::HashUtil.slice(options, *valid_options)
  params[:reserved] = { 'sub_mid' => options[:sub_mid].to_s }.to_json if options.key?(:sub_mid)
  params
end

.request_url(transaction_id) ⇒ Object



15
16
17
# File 'lib/nihaopay/transactions/capture.rb', line 15

def request_url(transaction_id)
  "#{base_url}/transactions/#{transaction_id}/capture"
end

.response_keys_mapObject



33
34
35
# File 'lib/nihaopay/transactions/capture.rb', line 33

def response_keys_map
  { id: :transaction_id, transaction_id: :capture_transaction_id }
end

.start(transaction_id, amount, currency, options = {}) ⇒ Object



7
8
9
10
11
12
13
# File 'lib/nihaopay/transactions/capture.rb', line 7

def start(transaction_id, amount, currency, options = {})
  @token = options.delete(:token)
  url = request_url(transaction_id)
  params = request_params(options.merge(amount: amount, currency: currency))
  response = HTTParty.post(url, headers: request_headers, body: request_body(params))
  build_from_response!(response)
end

.valid_attributesObject



29
30
31
# File 'lib/nihaopay/transactions/capture.rb', line 29

def valid_attributes
  %i[transaction_id status captured capture_transaction_id time].freeze
end

.valid_optionsObject



25
26
27
# File 'lib/nihaopay/transactions/capture.rb', line 25

def valid_options
  %i[amount currency].freeze
end