29 lines
		
	
	
		
			877 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			877 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->id, CaptchaLogType::Created, $httpUserData);
 | 
						|
 | 
						|
        return $captcha;
 | 
						|
    }
 | 
						|
}
 |