mirror of
https://github.com/System-End/theseus.git
synced 2026-04-19 23:32:49 +00:00
35 lines
853 B
Ruby
35 lines
853 B
Ruby
class HCB::TransferService
|
|
attr_reader :hcb_payment_account, :amount_cents, :name, :memo, :errors
|
|
|
|
def initialize(hcb_payment_account:, amount_cents:, name:, memo: nil)
|
|
@hcb_payment_account = hcb_payment_account
|
|
@amount_cents = amount_cents
|
|
@name = name
|
|
@memo = memo
|
|
@errors = []
|
|
end
|
|
|
|
def call
|
|
return failure("No HCB payment account provided") unless hcb_payment_account
|
|
return failure("Amount must be positive") unless amount_cents.positive?
|
|
|
|
transfer = hcb_payment_account.create_disbursement!(
|
|
amount_cents: amount_cents,
|
|
name: name,
|
|
memo: memo,
|
|
)
|
|
|
|
transfer
|
|
rescue HCBV4::APIError => e
|
|
failure("HCB disbursement failed: #{e.message}")
|
|
rescue => e
|
|
failure("Transfer failed: #{e.message}")
|
|
end
|
|
|
|
private
|
|
|
|
def failure(message)
|
|
@errors << message
|
|
false
|
|
end
|
|
end
|