Revived API /api/v1/captcha.

Now a new captcha is created to check for a bot.
This commit is contained in:
2023-09-19 14:27:33 +06:00
parent 56cd409301
commit 27046e6674
22 changed files with 525 additions and 101 deletions

View File

@@ -0,0 +1,28 @@
<?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;
}
}