diff options
Diffstat (limited to 'src/Http/Validation/ValidatesRequest.php')
-rw-r--r-- | src/Http/Validation/ValidatesRequest.php | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/Http/Validation/ValidatesRequest.php b/src/Http/Validation/ValidatesRequest.php new file mode 100644 index 00000000..33ff76af --- /dev/null +++ b/src/Http/Validation/ValidatesRequest.php @@ -0,0 +1,37 @@ +<?php + +namespace Engelsystem\Http\Validation; + +use Engelsystem\Http\Exceptions\ValidationException; +use Engelsystem\Http\Request; + +trait ValidatesRequest +{ + /** @var Validator */ + protected $validator; + + /** + * @param Request $request + * @param array $rules + * @return array + */ + protected function validate(Request $request, array $rules) + { + if (!$this->validator->validate( + (array)$request->getParsedBody(), + $rules + )) { + throw new ValidationException($this->validator); + } + + return $this->validator->getData(); + } + + /** + * @param Validator $validator + */ + public function setValidator(Validator $validator) + { + $this->validator = $validator; + } +} |