<?php | |
// src/User/Message/CreateUserMessage.php | |
namespace App\User\Message; | |
use Assert\Assert; | |
use Symfony\Component\HttpFoundation\Request; | |
/** | |
* Class CreateUserMessage | |
* | |
* @package App\User\Message | |
* @author DEVŌT <devot.team> | |
*/ | |
class CreateUserMessage | |
{ | |
/** | |
* CreateUserMessage constructor | |
* | |
* @param int $id | |
*/ | |
private function __construct(private int $id) | |
{ | |
} | |
/** | |
* @param Request $request | |
* @return CreateUserMessage | |
*/ | |
public static function fromRequest(Request $request): self | |
{ | |
$body = $request->request; | |
/** @var string $id */ | |
$id = $body->get('id'); | |
$assert = Assert::lazy(); | |
$assert->that($id, self::class) | |
->notBlank() | |
->integer(); | |
$assert->verifyNow(); | |
return new self($id); | |
} | |
/** | |
* @return int | |
*/ | |
public function id(): int | |
{ | |
return $this->id; | |
} | |
} |