From a5d2ac2cb9f2648c974ba6f399f00276da3db91f Mon Sep 17 00:00:00 2001 From: David Bomba Date: Wed, 5 Aug 2020 21:48:53 +1000 Subject: [PATCH] Fixes for fees and settings object --- app/Models/Client.php | 8 ++++++-- tests/Feature/CompanyGatewayTest.php | 12 +++++++++--- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/app/Models/Client.php b/app/Models/Client.php index 7ea45d0e4d29..e68f50a9a901 100644 --- a/app/Models/Client.php +++ b/app/Models/Client.php @@ -475,8 +475,12 @@ class Client extends BaseModel implements HasLocalePreference $valid_gateways = $gateways->filter(function ($method) use ($amount) { - if(isset($method->fees_and_limits)) - $fees_and_limits = $method->fees_and_limits->{"1"}; + if(isset($method->fees_and_limits)){ + //sometimes the key value of the fees and limits object are not static, + //we have to harvest the key value as follows + $properties = array_keys(get_object_vars($method->fees_and_limits)); + $fees_and_limits = $method->fees_and_limits->{$properties[0]}; + } else return true; diff --git a/tests/Feature/CompanyGatewayTest.php b/tests/Feature/CompanyGatewayTest.php index 5ee1de4482d3..ebb994a88349 100644 --- a/tests/Feature/CompanyGatewayTest.php +++ b/tests/Feature/CompanyGatewayTest.php @@ -63,7 +63,11 @@ class CompanyGatewayTest extends TestCase $cg->save(); $this->assertNotNull($cg->fees_and_limits); - $this->assertNotNull($cg->fees_and_limits->{"1"}); + + $properties = array_keys(get_object_vars($cg->fees_and_limits)); + $fees_and_limits = $cg->fees_and_limits->{$properties[0]}; + + $this->assertNotNull($fees_and_limits); //confirm amount filtering works @@ -83,8 +87,10 @@ class CompanyGatewayTest extends TestCase public function checkSieve($cg, $amount) { - if(isset($cg->fees_and_limits)) - $fees_and_limits = $cg->fees_and_limits->{"1"}; + if(isset($cg->fees_and_limits)){ + $properties = array_keys(get_object_vars($cg->fees_and_limits)); + $fees_and_limits = $cg->fees_and_limits->{$properties[0]}; + } else $passes = true;