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, ''),
|
||
|
]);
|
||
|
}
|
||
|
}
|