Attempt to refresh account list from auth page

This commit is contained in:
David Bomba 2022-09-07 15:24:08 +10:00
parent 3542e35da0
commit d6039cec3a
2 changed files with 109 additions and 63 deletions

View File

@ -31,6 +31,7 @@ class YodleeController extends BaseController
$company = $request->getCompany(); $company = $request->getCompany();
if($company->account->bank_integration_account_id){ if($company->account->bank_integration_account_id){
$flow = 'edit'; $flow = 'edit';
@ -54,6 +55,9 @@ class YodleeController extends BaseController
$yodlee = new Yodlee($token); $yodlee = new Yodlee($token);
if($request->has('window_closed') && $request->input("window_closed") == "true")
$this->getAccounts($company, $token);
$data = [ $data = [
'access_token' => $yodlee->getAccessToken(), 'access_token' => $yodlee->getAccessToken(),
'fasttrack_url' => $yodlee->getFastTrackUrl(), 'fasttrack_url' => $yodlee->getFastTrackUrl(),
@ -61,10 +65,43 @@ class YodleeController extends BaseController
'flow' => $flow, 'flow' => $flow,
'company' => $company, 'company' => $company,
'account' => $company->account, 'account' => $company->account,
'completed' => $request->has('window_closed') ? true : false,
]; ];
return view('bank.yodlee.auth', $data); return view('bank.yodlee.auth', $data);
} }
private function getAccounts($company, $token)
{
$yodlee = new Yodlee($token);
$accounts = $yodlee->getAccounts();
foreach($accounts as $account)
{
if(!BankIntegration::where('bank_account_id', $account['id'])->where('company_id', $company->id)->exists())
{
$bank_integration = new BankIntegration();
$bank_integration->company_id = $company->id;
$bank_integration->account_id = $company->account_id;
$bank_integration->user_id = $company->owner()->id;
$bank_integration->bank_account_id = $account['id'];
$bank_integration->bank_account_type = $account['account_type'];
$bank_integration->bank_account_name = $account['account_name'];
$bank_integration->bank_account_status = $account['account_status'];
$bank_integration->bank_account_number = $account['account_number'];
$bank_integration->provider_id = $account['provider_id'];
$bank_integration->provider_name = $account['provider_name'];
$bank_integration->nickname = $account['nickname'];
$bank_integration->balance = $account['current_balance'];
$bank_integration->currency = $account['account_currency'];
$bank_integration->save();
}
}
}
} }

View File

@ -55,14 +55,9 @@
@endif @endif
</div> </div>
<div id="cta" class="mb-4" x-data="{ open: false }"> <div id="cta" class="mb-4" x-data="{ open: false }">
<button @click="open = !open" x-show="!open" type="submit" class="button button-primary bg-blue-600 my-4" id="btn-fastlink">{{ ctrans('texts.add_bank_account') }} <button @click="open = !open" x-show="!open" type="submit" class="button button-primary bg-blue-600 my-4" id="btn-fastlink">{{ ctrans('texts.add_bank_account') }}</button>
</button>
<div x-show="open" class="fixed top-0 left-0 right-0 bottom-0 w-full h-screen z-50 overflow-hidden bg-gray-700 opacity-75 flex flex-col items-center justify-center"> <div x-show="open" class="fixed top-0 left-0 right-0 bottom-0 w-full h-screen z-50 overflow-hidden bg-gray-700 opacity-75 flex flex-col items-center justify-center">
<div class="loader ease-linear rounded-full border-4 border-t-4 border-gray-200 h-12 w-12 mb-4"></div> <div class="loader ease-linear rounded-full border-4 border-t-4 border-gray-200 h-12 w-12 mb-4"></div>
@ -73,7 +68,7 @@
</div> </div>
<div id="completed" class="mb-4"> <div id="completed" class="mb-4">
<a class="button button-primary bg-blue-600 my-4" href="https://invoicing.co">Return to admin portal.</a> <a class="button button-primary bg-blue-600 my-4" href="{{ config('ninja.app_url') }}">Return to admin portal.</a>
</div> </div>
</div> </div>
@ -89,6 +84,16 @@
(function (window) { (function (window) {
//Open FastLink //Open FastLink
@if($completed)
var completed = document.getElementById('completed');
completed.style.display = "block"; //block
var hideme = document.getElementById('cta');
hideme.style.display = "none";
@endif
var fastlinkBtn = document.getElementById('btn-fastlink'); var fastlinkBtn = document.getElementById('btn-fastlink');
fastlinkBtn.addEventListener( fastlinkBtn.addEventListener(
'click', 'click',
@ -118,6 +123,9 @@
var completed = document.getElementById('completed'); var completed = document.getElementById('completed');
completed.style.display = "block"; //block completed.style.display = "block"; //block
window.location.href = window.location.pathname+"?"+$.param({'window_closed':'true'})
}, },
onEvent: function (data) { onEvent: function (data) {
// will be called on intermittent status update. // will be called on intermittent status update.
@ -131,6 +139,7 @@
}, },
false); false);
}(window)); }(window));
</script> </script>
@endpush @endpush