Прокинул теги в валидатор
This commit is contained in:
		
							parent
							
								
									0d805314f1
								
							
						
					
					
						commit
						ccd530eeaa
					
				| @ -31,17 +31,26 @@ class RequestListener | ||||
|         } | ||||
|         $methodExtractor = new MethodExtractor($controller[0], $controller[1]); | ||||
| 
 | ||||
|         $tags = [ | ||||
|             'default', | ||||
|             'request', | ||||
|             'request_body', | ||||
|             'request_headers', | ||||
|             'request_server', | ||||
|             'route_' . $request->get('_route') | ||||
|         ]; | ||||
| 
 | ||||
|         /** @var RequestDTO $requestDTO */ | ||||
|         while ($requestDTO = $methodExtractor->fetch(RequestDTO::class)) { | ||||
|             $requestDTOInstance = $this->grabRequestDTO( | ||||
|                 $requestDTO, | ||||
|                 $request->get('_route'), | ||||
|                 $tags, | ||||
|                 $request->getContent(), | ||||
|                 $request->query->all(), | ||||
|                 $request->request->all() | ||||
|             ); | ||||
| 
 | ||||
|             $errorCollection = $this->validate($requestDTOInstance); | ||||
|             $errorCollection = $this->validate($requestDTOInstance, $tags); | ||||
|             if ($errorCollection->hasErrors()) { | ||||
|                 $event->setResponse(new JsonResponse(['errors' => $errorCollection->format()], Response::HTTP_BAD_REQUEST)); | ||||
|             } else { | ||||
| @ -61,14 +70,15 @@ class RequestListener | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     protected function validate(object $data): ErrorCollection | ||||
|     protected function validate(object $data, array $tags): ErrorCollection | ||||
|     { | ||||
|         $tags = array_merge($tags, ['Default']); | ||||
|         $validator = Validation::createValidatorBuilder() | ||||
|             ->enableAnnotationMapping(true) | ||||
|             ->addDefaultDoctrineAnnotationReader() | ||||
|             ->getValidator(); | ||||
| 
 | ||||
|         $violations = $validator->validate($data); | ||||
|         $violations = $validator->validate($data, null, $tags); | ||||
| 
 | ||||
|         $errorCollection = new ErrorCollection(); | ||||
|         if ($violations->count()) { | ||||
| @ -81,7 +91,7 @@ class RequestListener | ||||
| 
 | ||||
|     protected function grabRequestDTO( | ||||
|         RequestDTO $requestDTO, | ||||
|         string     $routeName, | ||||
|         array      $tags, | ||||
|         string     $content, | ||||
|         array      $queryParameters = [], | ||||
|         array      $parameters = [] | ||||
| @ -101,14 +111,7 @@ class RequestListener | ||||
|         $result = $data2dtoConverter->convert( | ||||
|             $data, | ||||
|             new $requestDTO->className, | ||||
|             [ | ||||
|                 'default', | ||||
|                 'request', | ||||
|                 'request_body', | ||||
|                 'request_headers', | ||||
|                 'request_server', | ||||
|                 'route_' . $routeName | ||||
|             ] | ||||
|             $tags | ||||
|         ); | ||||
| 
 | ||||
|         return $result; | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user