mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-08-05 05:25:24 +02:00
35 lines
1,020 B
Ruby
35 lines
1,020 B
Ruby
|
class PlaidAccount::Importer
|
||
|
def initialize(plaid_account, account_snapshot:)
|
||
|
@plaid_account = plaid_account
|
||
|
@account_snapshot = account_snapshot
|
||
|
end
|
||
|
|
||
|
def import
|
||
|
PlaidAccount.transaction do
|
||
|
import_account_info
|
||
|
import_transactions if account_snapshot.transactions_data.present?
|
||
|
import_investments if account_snapshot.investments_data.present?
|
||
|
import_liabilities if account_snapshot.liabilities_data.present?
|
||
|
end
|
||
|
end
|
||
|
|
||
|
private
|
||
|
attr_reader :plaid_account, :account_snapshot
|
||
|
|
||
|
def import_account_info
|
||
|
plaid_account.upsert_plaid_snapshot!(account_snapshot.account_data)
|
||
|
end
|
||
|
|
||
|
def import_transactions
|
||
|
plaid_account.upsert_plaid_transactions_snapshot!(account_snapshot.transactions_data)
|
||
|
end
|
||
|
|
||
|
def import_investments
|
||
|
plaid_account.upsert_plaid_investments_snapshot!(account_snapshot.investments_data)
|
||
|
end
|
||
|
|
||
|
def import_liabilities
|
||
|
plaid_account.upsert_plaid_liabilities_snapshot!(account_snapshot.liabilities_data)
|
||
|
end
|
||
|
end
|