Describe the bug
When a balance performs a transaction, the Typesense upsert does not include the metadata field. As a result, when the balance is reindexed after the transaction, the existing metadata in Typesense is overwritten and becomes empty.
To Reproduce
Steps to reproduce the behavior:
- Create two new balances:
curl -X POST 'http://localhost:5001/balances' \
-d '{
"ledger_id": "general_ledger_id",
"currency": "USD",
"meta_data": {
"field": "test_value"
}
}'
- Call search to confirm that the balances are indexed with the metadata
curl -X POST 'http://localhost:5001/search/balances' \
-d '{ "q": "*" }'
- Create a transaction between both balances.
curl -X POST 'http://localhost:5001/transactions
-d '{
"amount": 12091.12,
"currency": "USD",
"precision": 100,
"reference": "ref-001",
"source": "bln_19c0bcd8-e136-4a89-91b3-5be4066b68c4",
"destination": "bln_a603ab29-7f3d-40f9-9752-8f04e197ddd9",
"description": "Bug test",
"allow_overdraft": true
}'
- Check the balances via Search again.
- You'll see that the balances' metadata is now empty/overwritten although other fields are correct.
Expected behavior
The metadata should persist when updating a balance record in Typesense after creating a transaction.
Describe the bug
When a balance performs a transaction, the Typesense upsert does not include the metadata field. As a result, when the balance is reindexed after the transaction, the existing metadata in Typesense is overwritten and becomes empty.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The metadata should persist when updating a balance record in Typesense after creating a transaction.