service-captcha/app/Services/Captcha/CaptchaHandler.php

29 lines
877 B
PHP
Raw Normal View History

<?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->id, CaptchaLogType::Created, $httpUserData);
return $captcha;
}
}