Files
sure/app/models/plaid_account/importer.rb
LPW d98711d4ea Rename raw_investments_payload to raw_holdings_payload for Plaid accounts (#760)
* refactor: rename `raw_investments_payload` to `raw_holdings_payload`

- Update references and models to use consistent naming.
- Adjust migrations, tests, and encryption setup accordingly.

* fix: improve safety when accessing raw_holdings_payload keys

- Use `dig` with safe navigation to prevent potential nil errors.
- Add support for decryption from the old column name `raw_investments_payload`.
- Adjust related methods and calculations for consistency.

---------

Co-authored-by: luckyPipewrench <luckypipewrench@proton.me>
2026-01-24 11:16:26 +01:00

33 lines
969 B
Ruby

class PlaidAccount::Importer
def initialize(plaid_account, account_snapshot:)
@plaid_account = plaid_account
@account_snapshot = account_snapshot
end
def import
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
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_holdings_snapshot!(account_snapshot.investments_data)
end
def import_liabilities
plaid_account.upsert_plaid_liabilities_snapshot!(account_snapshot.liabilities_data)
end
end