23 lines
		
	
	
		
			688 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			688 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php declare(strict_types=1);
 | 
						|
 | 
						|
namespace App\Services\CaptchaLog;
 | 
						|
 | 
						|
use App\Dto\HttpUserData;
 | 
						|
use App\Enums\CaptchaLogType;
 | 
						|
use App\Models\Captcha;
 | 
						|
use App\Models\CaptchaLog;
 | 
						|
use Illuminate\Support\Str;
 | 
						|
 | 
						|
final readonly class CaptchaLogHandler
 | 
						|
{
 | 
						|
    public function handleStore(Captcha $captcha, CaptchaLogType $captchaLogType, HttpUserData $httpUserData): CaptchaLog
 | 
						|
    {
 | 
						|
        return $captcha->captchaLogs()->create([
 | 
						|
            'type' => $captchaLogType,
 | 
						|
            'ip' => $httpUserData->getClientIp(),
 | 
						|
            'user_agent' => Str::limit($httpUserData->getUserAgent(), 255, ''),
 | 
						|
            'referer' => Str::limit($httpUserData->getReferer(), 10000, ''),
 | 
						|
        ]);
 | 
						|
    }
 | 
						|
}
 |