29 lines
873 B
PHP
29 lines
873 B
PHP
|
<?php declare(strict_types=1);
|
||
|
|
||
|
namespace App\Services\Captcha;
|
||
|
|
||
|
use App\Dto\HttpUserData;
|
||
|
use App\Enums\CaptchaLogType;
|
||
|
use App\Models\Captcha;
|
||
|
use App\Models\CaptchaToken;
|
||
|
use App\Services\CaptchaLog\CaptchaLogHandler;
|
||
|
use App\Services\GenerateTokenCommand\GenerateTokenUuidCommand;
|
||
|
|
||
|
final readonly class CaptchaHandler
|
||
|
{
|
||
|
public function __construct(
|
||
|
private GenerateTokenUuidCommand $uuidCommand,
|
||
|
private CaptchaLogHandler $captchaLogHandler
|
||
|
) { }
|
||
|
|
||
|
public function handleStore(CaptchaToken $captchaToken, HttpUserData $httpUserData): Captcha
|
||
|
{
|
||
|
$captcha = $captchaToken->captchas()->create([
|
||
|
'uuid' => $this->uuidCommand->unique($captchaToken->captchas()->getQuery(), 'uuid')
|
||
|
]);
|
||
|
$this->captchaLogHandler->handleStore($captcha, CaptchaLogType::Created, $httpUserData);
|
||
|
|
||
|
return $captcha;
|
||
|
}
|
||
|
}
|