From 929515c13e5ed3c5845593b3395d81a1bb3fb8ce Mon Sep 17 00:00:00 2001 From: Bolo Michelin <72155+bolom@users.noreply.github.com> Date: Wed, 26 Nov 2025 18:32:22 -0400 Subject: [PATCH 1/3] Fix virtual account pattern to match actual API response --- lib/bridge_api/util.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/bridge_api/util.rb b/lib/bridge_api/util.rb index 84bf8d5..5905003 100644 --- a/lib/bridge_api/util.rb +++ b/lib/bridge_api/util.rb @@ -17,7 +17,7 @@ module Util RESOURCE_PATTERNS = { 'wallet' => { all: %i[id chain address] }, 'customer' => { all: %i[id], any: %i[email name customer_type] }, - 'virtual_account' => { all: %i[id account_number] }, + 'virtual_account' => { all: %i[id], any: %i[status customer_id source_deposit_instructions] }, 'transaction_history' => { all: %i[id], any: %i[amount transaction_date] }, 'kyc_link' => { all: %i[id redirect_url] }, 'webhook' => { all: %i[id url status] }, From 3c39ddf3050801e55f7d2384f7f20a2fdea38fe8 Mon Sep 17 00:00:00 2001 From: Bolo Michelin <72155+bolom@users.noreply.github.com> Date: Mon, 1 Dec 2025 10:42:26 -0400 Subject: [PATCH 2/3] Add test for virtual account pattern matching Introduces a test script to verify that sample virtual account data is correctly converted to a VirtualAccount object using BridgeApi::Util.convert_to_bridged_object. The script checks object type and accessor methods to ensure pattern matching works as expected. --- test_virtual_account_pattern.rb | 57 +++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 test_virtual_account_pattern.rb diff --git a/test_virtual_account_pattern.rb b/test_virtual_account_pattern.rb new file mode 100644 index 0000000..c9a7b43 --- /dev/null +++ b/test_virtual_account_pattern.rb @@ -0,0 +1,57 @@ +#!/usr/bin/env ruby +# frozen_string_literal: true + +require_relative 'lib/bridge_api' + +# Sample virtual account data from the production error +sample_data = { + id: "7f444e4d-9fbe-4a49-8f4c-cb084cf7ebde", + status: "activated", + developer_fee_percent: "0.0", + customer_id: "f558b609-403f-4e88-8815-a1bc69c57159", + created_at: "2025-11-24T02:44:09.939Z", + source_deposit_instructions: { + currency: "eur", + iban: "LU774080000043534573", + bic: "BCIRLULL", + account_holder_name: "Bridge Building Sp. Z.o.o.", + bank_name: "Banking Circle S.A.", + bank_address: "2 Boulevard de la Foire, L-1528 Luxembourg", + bank_beneficiary_name: "Bridge Building Sp. Z.o.o.", + bank_beneficiary_address: "2 Boulevard de la Foire, L-1528 Luxembourg", + payment_rails: ["sepa"] + }, + destination: { + currency: "usdc", + payment_rail: "polygon", + address: "0xfa7ba087278f5aa5a466746e712273912da85dc2" + } +} + +puts "Testing virtual account pattern matching..." +puts "=" * 60 + +# Test the conversion +result = BridgeApi::Util.convert_to_bridged_object(sample_data, resource_hint: 'virtual_account') + +puts "Input data class: #{sample_data.class}" +puts "Result class: #{result.class}" +puts "Expected class: BridgeApi::Resources::VirtualAccount" +puts "" + +if result.is_a?(BridgeApi::Resources::VirtualAccount) + puts "✅ SUCCESS! Data converted to VirtualAccount object" + puts "" + puts "Testing accessor methods:" + puts " result.id: #{result.id}" + puts " result.status: #{result.status}" + puts " result.developer_fee_percent: #{result.developer_fee_percent}" + puts " result.customer_id: #{result.customer_id}" + puts " result.source_deposit_instructions: #{result.source_deposit_instructions.class}" + puts "" + puts "✅ All accessor methods work correctly!" +else + puts "❌ FAILED! Data is still a #{result.class}" + puts "This means the pattern matching didn't work." + exit 1 +end From 8c378c445b3f829b1c786489c27f209576e2b09c Mon Sep 17 00:00:00 2001 From: Bolo Michelin <72155+bolom@users.noreply.github.com> Date: Mon, 1 Dec 2025 10:49:24 -0400 Subject: [PATCH 3/3] Add execute permission to test_virtual_account_pattern.rb Co-authored-by: Qwen-Coder --- test_virtual_account_pattern.rb | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 test_virtual_account_pattern.rb diff --git a/test_virtual_account_pattern.rb b/test_virtual_account_pattern.rb old mode 100644 new mode 100755