diff --git a/app/models/security/price.rb b/app/models/security/price.rb index cbec42b3..3341a448 100644 --- a/app/models/security/price.rb +++ b/app/models/security/price.rb @@ -3,6 +3,8 @@ class Security::Price < ApplicationRecord belongs_to :security + validates :price, :currency, presence: true + class << self def find_price(security:, date:, cache: true) result = find_by(security:, date:) diff --git a/db/schema.rb b/db/schema.rb index d9d597d7..48a76165 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -119,7 +119,7 @@ ActiveRecord::Schema[7.2].define(version: 2024_10_30_121302) do t.boolean "is_active", default: true, null: false t.date "last_sync_date" t.uuid "institution_id" - t.virtual "classification", type: :string, as: "\nCASE\n WHEN ((accountable_type)::text = ANY (ARRAY[('Loan'::character varying)::text, ('CreditCard'::character varying)::text, ('OtherLiability'::character varying)::text])) THEN 'liability'::text\n ELSE 'asset'::text\nEND", stored: true + t.virtual "classification", type: :string, as: "\nCASE\n WHEN ((accountable_type)::text = ANY ((ARRAY['Loan'::character varying, 'CreditCard'::character varying, 'OtherLiability'::character varying])::text[])) THEN 'liability'::text\n ELSE 'asset'::text\nEND", stored: true t.uuid "import_id" t.string "mode" t.index ["accountable_id", "accountable_type"], name: "index_accounts_on_accountable_id_and_accountable_type" diff --git a/test/models/security/price_test.rb b/test/models/security/price_test.rb index 7ac65ac9..d5021242 100644 --- a/test/models/security/price_test.rb +++ b/test/models/security/price_test.rb @@ -36,7 +36,7 @@ class Security::PriceTest < ActiveSupport::TestCase .returns( OpenStruct.new( success?: true, - prices: [ { date: tomorrow, price: expected_price } ] + prices: [ { date: tomorrow, price: expected_price, currency: "USD" } ] ) ) @@ -89,7 +89,7 @@ class Security::PriceTest < ActiveSupport::TestCase mic_code: security.exchange_mic, start_date: 2.days.ago.to_date, end_date: 2.days.ago.to_date) - .returns(OpenStruct.new(success?: true, prices: [ { date: 2.days.ago.to_date, price: missing_price } ])) + .returns(OpenStruct.new(success?: true, prices: [ { date: 2.days.ago.to_date, price: missing_price, currency: "USD" } ])) .once price1 = security_prices(:one) # AAPL today