mirror of
https://github.com/we-promise/sure.git
synced 2026-04-11 00:04:47 +00:00
* 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>
33 lines
969 B
Ruby
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
|