Transform accounts

This commit is contained in:
David Bomba 2022-08-08 09:15:31 +10:00
parent dc176aa3f8
commit b7fbfe6531
3 changed files with 72 additions and 46 deletions

View File

@ -12,61 +12,79 @@
namespace App\Helpers\Bank\Yodlee\Transformer; namespace App\Helpers\Bank\Yodlee\Transformer;
/** /**
[account] => Array [0] => stdClass Object
( (
[0] => stdClass Object [CONTAINER] => bank
( [providerAccountId] => 11308693
[CONTAINER] => bank [accountName] => My CD - 8878
[providerAccountId] => 11308693 [accountStatus] => ACTIVE
[accountName] => My CD - 8878 [accountNumber] => xxxx8878
[accountStatus] => ACTIVE [aggregationSource] => USER
[accountNumber] => xxxx8878 [isAsset] => 1
[aggregationSource] => USER [balance] => stdClass Object
[isAsset] => 1 (
[balance] => stdClass Object [currency] => USD
( [amount] => 49778.07
[currency] => USD )
[amount] => 49778.07
)
[id] => 12331861 [id] => 12331861
[includeInNetWorth] => 1 [includeInNetWorth] => 1
[providerId] => 18769 [providerId] => 18769
[providerName] => Dag Site Captcha [providerName] => Dag Site Captcha
[isManual] => [isManual] =>
[currentBalance] => stdClass Object [currentBalance] => stdClass Object
( (
[currency] => USD [currency] => USD
[amount] => 49778.07 [amount] => 49778.07
) )
[accountType] => CD [accountType] => CD
[displayedName] => LORETTA [displayedName] => LORETTA
[createdDate] => 2022-07-28T06:55:33Z [createdDate] => 2022-07-28T06:55:33Z
[lastUpdated] => 2022-07-28T06:56:09Z [lastUpdated] => 2022-07-28T06:56:09Z
[dataset] => Array [dataset] => Array
( (
[0] => stdClass Object [0] => stdClass Object
( (
[name] => BASIC_AGG_DATA [name] => BASIC_AGG_DATA
[additionalStatus] => AVAILABLE_DATA_RETRIEVED [additionalStatus] => AVAILABLE_DATA_RETRIEVED
[updateEligibility] => ALLOW_UPDATE [updateEligibility] => ALLOW_UPDATE
[lastUpdated] => 2022-07-28T06:55:50Z [lastUpdated] => 2022-07-28T06:55:50Z
[lastUpdateAttempt] => 2022-07-28T06:55:50Z [lastUpdateAttempt] => 2022-07-28T06:55:50Z
) )
) )
) )
) )
*/ */
class AccountTransformer class AccountTransformer
{ {
public static function transform(array $account) public function transform($yodlee_account){
$data = [];
foreach($yodlee_account->account as $account)
{
$data[] = $this->transformAccount($account);
}
return $data;
}
public function transformAccount($account)
{ {
nlog($account);
return [ return [
'id' => $account->id,
'account_type' => $account->CONTAINER,
'account_name' => $account->accountName,
'account_status' => $account->accountStatus,
'account_number' => $account->accountNumber,
'current_balance' => property_exists($account, 'currentBalance') ? $account->currentBalance->amount : 0,
'account_currency' => property_exists($account, 'currency') ? $account->currentBalance->currency : '',
]; ];
} }
} }

View File

@ -11,6 +11,7 @@
namespace App\Helpers\Bank\Yodlee; namespace App\Helpers\Bank\Yodlee;
use App\Helpers\Bank\Yodlee\Transformer\AccountTransformer;
use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Http;
class Yodlee class Yodlee
@ -137,8 +138,13 @@ class Yodlee
$response = Http::withHeaders($this->getHeaders(["Authorization" => "Bearer {$token}"]))->get($this->getEndpoint(). "/accounts", $params); $response = Http::withHeaders($this->getHeaders(["Authorization" => "Bearer {$token}"]))->get($this->getEndpoint(). "/accounts", $params);
if($response->successful())
return $response->object(); if($response->successful()){
$at = new AccountTransformer();
return $at->transform($response->object());
// return $response->object();
}
if($response->failed()) if($response->failed())
return $response->body(); return $response->body();

View File

@ -350,7 +350,9 @@ class YodleeApiTest extends TestCase
$accounts = $yodlee->getAccounts(); $accounts = $yodlee->getAccounts();
$this->assertIsArray($accounts->account); nlog($accounts);
$this->assertIsArray($accounts);
} }