FIX AI categorization & Twelvedata currency (#354)

* FIX AI categorization

* FIX twelve data API

Looking at api docs we were using the wrong field, currency is in meta tag.
This commit is contained in:
soky srm
2025-11-19 19:30:28 +01:00
committed by GitHub
parent 61eb611529
commit 1234fd5568
5 changed files with 10 additions and 11 deletions

View File

@@ -45,9 +45,8 @@ class Family::AutoCategorizer
category_id,
source: "ai"
)
transaction.lock_attr!(:category_id)
end
transaction.lock_attr!(:category_id)
end
end

View File

@@ -50,11 +50,9 @@ class Family::AutoMerchantDetector
merchant_id,
source: "ai"
)
# We lock the attribute so that this Rule doesn't try to run again
transaction.lock_attr!(:merchant_id)
end
# We lock the attribute so that this Rule doesn't try to run again
transaction.lock_attr!(:merchant_id)
end
end

View File

@@ -187,7 +187,7 @@ class Provider::TwelveData < Provider
symbol: symbol,
date: date.to_date,
price: price,
currency: parsed.dig("currency"),
currency: parsed.dig("meta", "currency") || parsed.dig("currency"),
exchange_operating_mic: exchange_operating_mic
)
end.compact

View File

@@ -33,8 +33,9 @@ class Family::AutoCategorizerTest < ActiveSupport::TestCase
assert_equal test_category, txn2.reload.category
assert_nil txn3.reload.category
# After auto-categorization, all transactions are locked and no longer enrichable
assert_equal 0, @account.transactions.reload.enrichable(:category_id).count
# After auto-categorization, only successfully categorized transactions are locked
# txn3 remains enrichable since it didn't get a category (allows retry)
assert_equal 1, @account.transactions.reload.enrichable(:category_id).count
end
private

View File

@@ -34,8 +34,9 @@ class Family::AutoMerchantDetectorTest < ActiveSupport::TestCase
assert_equal "https://cdn.brandfetch.io/chipotle.com/icon/fallback/lettermark/w/40/h/40?c=123", txn2.reload.merchant.logo_url
assert_nil txn3.reload.merchant
# After auto-detection, all transactions are locked and no longer enrichable
assert_equal 0, @account.transactions.reload.enrichable(:merchant_id).count
# After auto-detection, only successfully detected transactions are locked
# txn3 remains enrichable since it didn't get a merchant (allows retry)
assert_equal 1, @account.transactions.reload.enrichable(:merchant_id).count
end
private