|
16 | 16 | use thofman\KnowledgeBase\Domain\Question\Sanitization\StringSanitizer; |
17 | 17 | use thofman\KnowledgeBase\Domain\Question\Tag; |
18 | 18 | use thofman\KnowledgeBase\Domain\Question\Validation\AlwaysValidValidator; |
| 19 | +use thofman\KnowledgeBase\Domain\Question\Validation\CompositeValidator; |
19 | 20 | use thofman\KnowledgeBase\Domain\Question\Validation\NonEmptyStringValidator; |
20 | 21 | use thofman\KnowledgeBase\Domain\Question\Validation\UrlSchemeHttpsValidator; |
21 | 22 | use thofman\KnowledgeBase\Domain\Question\Validation\UrlValidator; |
@@ -44,20 +45,13 @@ public function execute(InputInterface $input, OutputInterface $output): int |
44 | 45 | $urlQuestion = new Question('Please enter the URL of the article: ', ''); |
45 | 46 | $urlQuestion->setValidator( |
46 | 47 | static function (string $value): string { |
47 | | - $nonEmptyStringValidator = new NonEmptyStringValidator('URL'); |
48 | | - $validationResult = $nonEmptyStringValidator->validate($value); |
49 | | - if (!$validationResult->isValid) { |
50 | | - throw new RuntimeException($validationResult->validationErrorMessage); |
51 | | - } |
52 | | - |
53 | | - $urlValidator = new UrlValidator(); |
54 | | - $validationResult = $urlValidator->validate($value); |
55 | | - if (!$validationResult->isValid) { |
56 | | - throw new RuntimeException($validationResult->validationErrorMessage); |
57 | | - } |
58 | | - |
59 | | - $urlSchemeHttpsValidator = new UrlSchemeHttpsValidator($urlValidator); |
60 | | - $validationResult = $urlSchemeHttpsValidator->validate($value); |
| 48 | + $compositeValidator = new CompositeValidator( |
| 49 | + [ |
| 50 | + new NonEmptyStringValidator('URL'), |
| 51 | + new UrlSchemeHttpsValidator(new UrlValidator()), |
| 52 | + ] |
| 53 | + ); |
| 54 | + $validationResult = $compositeValidator->validate($value); |
61 | 55 | if (!$validationResult->isValid) { |
62 | 56 | throw new RuntimeException($validationResult->validationErrorMessage); |
63 | 57 | } |
|
0 commit comments