From 5bb049df3430c3f4f960c3e226a20d273134efa7 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Thu, 26 Sep 2024 13:54:06 +1000 Subject: [PATCH] Fixes for 429 --- app/Http/Requests/Invoice/StoreInvoiceRequest.php | 6 ++++-- app/Http/Requests/Payment/StorePaymentRequest.php | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/app/Http/Requests/Invoice/StoreInvoiceRequest.php b/app/Http/Requests/Invoice/StoreInvoiceRequest.php index 4617dd77340a..fecc11b1bbe9 100644 --- a/app/Http/Requests/Invoice/StoreInvoiceRequest.php +++ b/app/Http/Requests/Invoice/StoreInvoiceRequest.php @@ -93,11 +93,13 @@ class StoreInvoiceRequest extends Request /** @var \App\Models\User $user */ $user = auth()->user(); - if(\Illuminate\Support\Facades\Cache::has($this->ip()."|INVOICE|".$this->input('client_id', '')."|".$user->company()->company_key)) { + $client_id = is_string($this->input('client_id', '')) ? $this->input('client_id') : ''; + + if(\Illuminate\Support\Facades\Cache::has($this->ip()."|INVOICE|".$client_id."|".$user->company()->company_key)) { usleep(200000); } - \Illuminate\Support\Facades\Cache::put($this->ip()."|INVOICE|".$this->input('client_id', '')."|".$user->company()->company_key,1); + \Illuminate\Support\Facades\Cache::put($this->ip()."|INVOICE|".$client_id."|".$user->company()->company_key,1); $input = $this->all(); diff --git a/app/Http/Requests/Payment/StorePaymentRequest.php b/app/Http/Requests/Payment/StorePaymentRequest.php index b74c5c09445f..0387396baab6 100644 --- a/app/Http/Requests/Payment/StorePaymentRequest.php +++ b/app/Http/Requests/Payment/StorePaymentRequest.php @@ -80,11 +80,13 @@ class StorePaymentRequest extends Request /** @var \App\Models\User $user */ $user = auth()->user(); - if(\Illuminate\Support\Facades\Cache::has($this->ip()."|".$this->input('amount', 0)."|".$this->input('client_id', '')."|".$user->company()->company_key)) { + $client_id = is_string($this->input('client_id', '')) ? $this->input('client_id') : ''; + + if(\Illuminate\Support\Facades\Cache::has($this->ip()."|".$this->input('amount', 0)."|".$client_id."|".$user->company()->company_key)) { throw new DuplicatePaymentException('Duplicate request.', 429); } - \Illuminate\Support\Facades\Cache::put(($this->ip()."|".$this->input('amount', 0)."|".$this->input('client_id', '')."|".$user->company()->company_key), true, 1); + \Illuminate\Support\Facades\Cache::put(($this->ip()."|".$this->input('amount', 0)."|".$client_id."|".$user->company()->company_key), true, 1); $input = $this->all();