diff --git a/app/Http/Controllers/BankIntegrationController.php b/app/Http/Controllers/BankIntegrationController.php index d267107ca3c3..b061adc46acf 100644 --- a/app/Http/Controllers/BankIntegrationController.php +++ b/app/Http/Controllers/BankIntegrationController.php @@ -27,7 +27,7 @@ use App\Services\Bank\BankService; use App\Transformers\BankIntegrationTransformer; use App\Utils\Traits\MakesHash; use Illuminate\Http\Request; - +use Illuminate\Support\Facades\Cache; class BankIntegrationController extends BaseController { @@ -572,12 +572,17 @@ class BankIntegrationController extends BaseController $account = auth()->user()->account; + if(Cache::get("throttle_polling:{$account->key}")) + return response()->json(BankIntegration::query()->company(), 200); + $account->bank_integrations->each(function ($bank_integration) use ($account){ ProcessBankTransactions::dispatch($account->bank_integration_account_id, $bank_integration); }); + Cache::put("throttle_polling:{$account->key}", true, 300); + return response()->json(BankIntegration::query()->company(), 200); } diff --git a/routes/api.php b/routes/api.php index 130fb13f67c3..d601bf2bd942 100644 --- a/routes/api.php +++ b/routes/api.php @@ -109,7 +109,7 @@ Route::group(['middleware' => ['throttle:10,1','api_secret_check','email_db']], Route::group(['middleware' => ['throttle:300,1', 'api_db', 'token_auth', 'locale'], 'prefix' => 'api/v1', 'as' => 'api.'], function () { Route::put('accounts/{account}', [AccountController::class, 'update'])->name('account.update'); Route::resource('bank_integrations', BankIntegrationController::class); // name = (clients. index / create / show / update / destroy / edit - Route::post('bank_integrations/refresh_accounts', [BankIntegrationController::class, 'refreshAccounts'])->name('bank_integrations.refresh_accounts')->middleware('throttle:1,1'); + Route::post('bank_integrations/refresh_accounts', [BankIntegrationController::class, 'refreshAccounts'])->name('bank_integrations.refresh_accounts')->middleware('throttle:30,1'); Route::post('bank_integrations/remove_account/{acc_id}', [BankIntegrationController::class, 'removeAccount'])->name('bank_integrations.remove_account'); Route::post('bank_integrations/get_transactions/{acc_id}', [BankIntegrationController::class, 'getTransactions'])->name('bank_integrations.transactions')->middleware('throttle:1,1');