Class: Paymos::Withdrawals

Inherits:
Resource show all
Defined in:
lib/paymos/client.rb,
sig/paymos.rbs

Instance Method Summary collapse

Methods inherited from Resource

#initialize

Constructor Details

This class inherits a constructor from Paymos::Resource

Instance Method Details

#cancel(withdrawal_id, reason:) ⇒ Withdrawal

Parameters:

  • withdrawal_id (String)
  • reason: (String)

Returns:



269
270
271
272
# File 'lib/paymos/client.rb', line 269

def cancel(withdrawal_id, reason:)
  Withdrawal.from(@client.request('POST', "/v1/withdrawals/#{segment(withdrawal_id)}/cancel",
                                  payload: { reason: validate_reason(reason) }))
end

#create(destination_address:, network:, currency:, amount:, external_order_id:) ⇒ Withdrawal

Parameters:

  • destination_address: (String)
  • network: (String)
  • currency: (String)
  • amount: (String)
  • external_order_id: (String)

Returns:

Raises:

  • (ArgumentError)


252
253
254
255
256
257
258
# File 'lib/paymos/client.rb', line 252

def create(destination_address:, network:, currency:, amount:, external_order_id:)
  values = { destination_address:, network:, currency:, amount:, external_order_id: }
  missing = values.select { |_name, value| !value.is_a?(String) || value.strip.empty? }.keys
  raise ArgumentError, "Required values are missing: #{missing.join(', ')}" unless missing.empty?

  Withdrawal.from(@client.request('POST', '/v1/withdrawals', payload: values))
end

#each(max_pages:, filters) ⇒ void #each(max_pages:, filters) ⇒ Enumerator[Withdrawal, void]

Overloads:

  • #each(max_pages:, filters) ⇒ void

    This method returns an undefined value.

    Parameters:

    • max_pages: (Integer)
    • filters (Object)
  • #each(max_pages:, filters) ⇒ Enumerator[Withdrawal, void]

    Parameters:

    • max_pages: (Integer)
    • filters (Object)

    Returns:

Yields:

Yield Parameters:

Yield Returns:

  • (void)


278
279
280
281
282
# File 'lib/paymos/client.rb', line 278

def each(max_pages: 100, **filters, &block)
  return enum_for(__method__, max_pages: max_pages, **filters) unless block_given?

  Pagination.each(method(:list), filters, max_pages:, &block)
end

#get(withdrawal_id) ⇒ Withdrawal

Parameters:

  • withdrawal_id (String)

Returns:



260
# File 'lib/paymos/client.rb', line 260

def get(withdrawal_id) = Withdrawal.from(@client.request('GET', "/v1/withdrawals/#{segment(withdrawal_id)}"))

#list(limit: nil, cursor: nil, status: nil, external_order_id: nil, created_from: nil, created_to: nil) ⇒ Page[Withdrawal]

Parameters:

  • limit: (Integer, nil) (defaults to: nil)
  • cursor: (String, nil) (defaults to: nil)
  • status: (String, Array[String], nil) (defaults to: nil)
  • external_order_id: (String, nil) (defaults to: nil)
  • created_from: (Integer, nil) (defaults to: nil)
  • created_to: (Integer, nil) (defaults to: nil)

Returns:



262
263
264
265
266
267
# File 'lib/paymos/client.rb', line 262

def list(limit: nil, cursor: nil, status: nil, external_order_id: nil,
         created_from: nil, created_to: nil)
  filters = validate_list_filters({ limit:, cursor:, status:, external_order_id:, created_from:,
                                    created_to: }.compact)
  Page.from(@client.request('GET', '/v1/withdrawals', query: Signing.query(filters)), item_type: Withdrawal)
end

#simulate_completion(withdrawal_id) ⇒ Withdrawal

Parameters:

  • withdrawal_id (String)

Returns:



274
275
276
# File 'lib/paymos/client.rb', line 274

def simulate_completion(withdrawal_id)
  Withdrawal.from(@client.request('POST', "/v1/sandbox/withdrawals/#{segment(withdrawal_id)}/simulate-completion"))
end