class F2ynab::Import::Csv::Default

Constants

FORMATS

Public Class Methods

new(ynab_client, path) click to toggle source
# File lib/f2ynab/import/csv/default.rb, line 17
def initialize(ynab_client, path)
  @path = path
  @ynab_client = ynab_client
  @import_id_creator = ::F2ynab::YNAB::ImportIdCreator.new
end

Public Instance Methods

import() click to toggle source
# File lib/f2ynab/import/csv/default.rb, line 23
def import
  transactions_to_create = []

  ::CSV.foreach(@path, headers: true) do |transaction|
    transaction = transaction.to_h.symbolize_keys
    amount = (transaction[:amount].to_f * 1000).to_i
    date = Date.parse(transaction[:date])

    transactions_to_create << {
      id: @import_id_creator.import_id(amount, date),
      amount: amount,
      payee_name: transaction[:description],
      date: date,
    }
  end

  ::F2ynab::YNAB::BulkTransactionCreator.new(@ynab_client, transactions_to_create).create
end