UserLanguageDto.php 694 B

1234567891011121314151617181920212223242526272829303132
  1. <?php
  2. namespace App\DataTransferObjects;
  3. use App\Http\Requests\UserLanguageRequest;
  4. use App\Enums\UserLanguageSource;
  5. readonly class UserLanguageDto
  6. {
  7. public function __construct(
  8. public string $language,
  9. ) {
  10. }
  11. public static function fromRequest(UserLanguageRequest $request): self
  12. {
  13. return new self(
  14. language: $request->validated('language'),
  15. );
  16. }
  17. public static function fromString(string $language): self
  18. {
  19. if (!UserLanguageSource::isValid($language)) {
  20. throw new \InvalidArgumentException('Invalid language');
  21. }
  22. return new self(
  23. language: $language,
  24. );
  25. }
  26. }