class Ynaby::Transaction
Attributes
account[R]
account_name[R]
amount[RW]
approved[R]
category_id[R]
category_name[R]
cleared[R]
date[R]
flag_color[R]
id[RW]
import_id[R]
memo[RW]
payee_id[R]
payee_name[R]
subtransactions[R]
transfer_account_id[R]
transfer_transaction_id[R]
Public Class Methods
new(id: nil, date:, amount:, memo: nil, cleared: nil, approved: nil, flag_color: nil, payee_id: nil, category_id: nil, transfer_account_id: nil, transfer_transaction_id: nil, import_id: nil, account_name: nil, payee_name:, category_name: nil, account:, subtransactions: nil)
click to toggle source
# File lib/ynaby/transaction.rb, line 10 def initialize(id: nil, date:, amount:, memo: nil, cleared: nil, approved: nil, flag_color: nil, payee_id: nil, category_id: nil, transfer_account_id: nil, transfer_transaction_id: nil, import_id: nil, account_name: nil, payee_name:, category_name: nil, account:, subtransactions: nil) @id = id @date = date @amount = amount @memo = memo @cleared = cleared @approved = approved @flag_color = flag_color @payee_id = payee_id @category_id = category_id @transfer_account_id = transfer_account_id @transfer_transaction_id = transfer_transaction_id @import_id = import_id @account_name = account_name @payee_name = payee_name @category_name = category_name @account = account @subtransactions = subtransactions end
parse(object:, account:)
click to toggle source
# File lib/ynaby/transaction.rb, line 87 def self.parse(object:, account:) new( id: object.id, date: object.date, amount: object.amount.to_i, memo: object.memo, cleared: object.cleared, approved: object.approved, flag_color: object.flag_color, payee_id: object.payee_id, category_id: object.category_id, transfer_account_id: object.transfer_account_id, transfer_transaction_id: object.transfer_transaction_id, import_id: object.import_id, account_name: object.account_name, payee_name: object.payee_name, category_name: object.category_name, account: account, subtransactions: object.subtransactions.map(&:to_body) ) end
Public Instance Methods
update()
click to toggle source
# File lib/ynaby/transaction.rb, line 77 def update body = { transaction: upload_hash } response = ynab_client.transactions.update_transaction(budget_id, id, body) self.class.parse(object: response.data.transaction, account: account) end
upload()
click to toggle source
# File lib/ynaby/transaction.rb, line 47 def upload body = { transaction: upload_hash } response = ynab_client.transactions.create_transaction(budget_id, body) self.class.parse(object: response.data.transaction, account: account) end
upload_hash()
click to toggle source
# File lib/ynaby/transaction.rb, line 57 def upload_hash hash = { account_id: @account.id, date: @date.to_date.iso8601, amount: @amount, import_id: @import_id, memo: @memo&.slice(0...50) } if @transfer_account_id && @transfer_transaction_id hash[:transfer_account_id] = @transfer_account_id hash[:transfer_transaction_id] = @transfer_transaction_id else hash[:payee_name] = @payee_name hash[:payee_id] = nil end hash end
Private Instance Methods
api_token()
click to toggle source
# File lib/ynaby/transaction.rb, line 115 def api_token account.api_token end
budget_id()
click to toggle source
# File lib/ynaby/transaction.rb, line 111 def budget_id account.budget.id end