Module: StripeMock::RequestHandlers::Transfers

Included in:
Instance
Defined in:
lib/stripe_mock/request_handlers/transfers.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(klass) ⇒ Object



5
6
7
8
9
10
# File 'lib/stripe_mock/request_handlers/transfers.rb', line 5

def Transfers.included(klass)
  klass.add_handler 'post /v1/transfers',             :new_transfer
  klass.add_handler 'get /v1/transfers',              :get_all_transfers
  klass.add_handler 'get /v1/transfers/(.*)',         :get_transfer
  klass.add_handler 'post /v1/transfers/(.*)/cancel', :cancel_transfer
end

Instance Method Details

#cancel_transfer(route, method_url, params, headers) ⇒ Object



46
47
48
49
50
51
# File 'lib/stripe_mock/request_handlers/transfers.rb', line 46

def cancel_transfer(route, method_url, params, headers)
  route =~ method_url
  assert_existence :transfer, $1, transfers[$1]
  t = transfers[$1] ||= Data.mock_transfer(:id => $1)
  t.merge!({:status => "canceled"})
end

#get_all_transfers(route, method_url, params, headers) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/stripe_mock/request_handlers/transfers.rb', line 12

def get_all_transfers(route, method_url, params, headers)
  if recipient = params[:recipient]
    assert_existence :recipient, recipient, recipients[recipient]
  end

  _transfers = transfers.each_with_object([]) do |(_, transfer), array|
    if recipient
      array << transfer if transfer[:recipient] == recipient
    else
      array << transfer
    end
  end

  if params[:limit]
    _transfers = _transfers.first([params[:limit], _transfers.size].min)
  end

  _transfers
end

#get_transfer(route, method_url, params, headers) ⇒ Object



40
41
42
43
44
# File 'lib/stripe_mock/request_handlers/transfers.rb', line 40

def get_transfer(route, method_url, params, headers)
  route =~ method_url
  assert_existence :transfer, $1, transfers[$1]
  transfers[$1] ||= Data.mock_transfer(:id => $1)
end

#new_transfer(route, method_url, params, headers) ⇒ Object



32
33
34
35
36
37
38
# File 'lib/stripe_mock/request_handlers/transfers.rb', line 32

def new_transfer(route, method_url, params, headers)
  id = new_id('tr')
  if params[:bank_account]
    params[:account] = get_bank_by_token(params.delete(:bank_account))
  end
  transfers[id] = Data.mock_transfer(params.merge :id => id)
end