tell firewall that too many emails were sent
This commit is contained in:
		@@ -3,7 +3,7 @@
 | 
			
		||||
namespace App\Traits;
 | 
			
		||||
 | 
			
		||||
use App\Abstracts\Job;
 | 
			
		||||
use App\Exceptions\Common\TooManyEmailsSent;
 | 
			
		||||
use App\Events\Email\TooManyEmailsSent;
 | 
			
		||||
use App\Traits\Jobs;
 | 
			
		||||
use Illuminate\Support\Facades\RateLimiter;
 | 
			
		||||
 | 
			
		||||
@@ -14,7 +14,7 @@ trait Emails
 | 
			
		||||
    public function sendEmail(Job $job): array
 | 
			
		||||
    {
 | 
			
		||||
        // Check if the user has reached the limit of emails per month
 | 
			
		||||
        $key_per_month = 'email-month:' . user()->id;
 | 
			
		||||
        $key_per_month = 'email-month:' . user_id();
 | 
			
		||||
        $limit_per_month = config('app.throttles.email.month');
 | 
			
		||||
        $decay_per_month = 60 * 60 * 24 * 30;
 | 
			
		||||
 | 
			
		||||
@@ -22,7 +22,7 @@ trait Emails
 | 
			
		||||
 | 
			
		||||
        if ($can_send) {
 | 
			
		||||
            // Check if the user has reached the limit of emails per minute
 | 
			
		||||
            $key_per_minute = 'email-minute:' . user()->id;
 | 
			
		||||
            $key_per_minute = 'email-minute:' . user_id();
 | 
			
		||||
            $limit_per_minute = config('app.throttles.email.minute');
 | 
			
		||||
 | 
			
		||||
            $can_send = RateLimiter::attempt($key_per_minute, $limit_per_minute, fn() => null);
 | 
			
		||||
@@ -31,25 +31,21 @@ trait Emails
 | 
			
		||||
        if ($can_send) {
 | 
			
		||||
            $this->dispatch($job);
 | 
			
		||||
 | 
			
		||||
            $response = [
 | 
			
		||||
            return [
 | 
			
		||||
                'success' => true,
 | 
			
		||||
                'error' => false,
 | 
			
		||||
                'data' => '',
 | 
			
		||||
                'message' => '',
 | 
			
		||||
            ];
 | 
			
		||||
 | 
			
		||||
            return $response;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $response = [
 | 
			
		||||
        event(new TooManyEmailsSent(user_id()));
 | 
			
		||||
 | 
			
		||||
        return [
 | 
			
		||||
            'success' => false,
 | 
			
		||||
            'error' => true,
 | 
			
		||||
            'data' => null,
 | 
			
		||||
            'message' => 'Too many emails sent!',
 | 
			
		||||
        ];
 | 
			
		||||
 | 
			
		||||
        report(new TooManyEmailsSent('Too many emails sent!'));
 | 
			
		||||
 | 
			
		||||
        return $response;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user