Обновил библиотеку
Проинтегрировал теги
This commit is contained in:
parent
7d38924dbd
commit
e3a2e933f1
16
composer.lock
generated
16
composer.lock
generated
@ -346,16 +346,16 @@
|
||||
},
|
||||
{
|
||||
"name": "rinsvent/data2dto",
|
||||
"version": "v0.0.2",
|
||||
"version": "v0.0.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Rinsvent/data2dto.git",
|
||||
"reference": "5ece49e3308b7a93147814ab865fe33bdf751798"
|
||||
"reference": "10f1937434ff8e38b21ad54963488e40a4ad2a7d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Rinsvent/data2dto/zipball/5ece49e3308b7a93147814ab865fe33bdf751798",
|
||||
"reference": "5ece49e3308b7a93147814ab865fe33bdf751798",
|
||||
"url": "https://api.github.com/repos/Rinsvent/data2dto/zipball/10f1937434ff8e38b21ad54963488e40a4ad2a7d",
|
||||
"reference": "10f1937434ff8e38b21ad54963488e40a4ad2a7d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -371,7 +371,7 @@
|
||||
"codeception/module-asserts": "^1.0.0",
|
||||
"codeception/module-phpbrowser": "^1.0.0"
|
||||
},
|
||||
"type": "project",
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"tests\\": "tests/",
|
||||
@ -380,14 +380,14 @@
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"proprietary"
|
||||
"MIT"
|
||||
],
|
||||
"description": "Convert data to dto object",
|
||||
"support": {
|
||||
"issues": "https://github.com/Rinsvent/data2dto/issues",
|
||||
"source": "https://github.com/Rinsvent/data2dto/tree/v0.0.2"
|
||||
"source": "https://github.com/Rinsvent/data2dto/tree/v0.0.4"
|
||||
},
|
||||
"time": "2021-08-10T05:59:27+00:00"
|
||||
"time": "2021-08-15T08:40:09+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/cache",
|
||||
|
@ -3,12 +3,10 @@
|
||||
namespace Rinsvent\RequestBundle\EventListener;
|
||||
|
||||
use Rinsvent\Data2DTO\Data2DtoConverter;
|
||||
use Rinsvent\Data2DTO\Resolver\TransformerResolverStorage;
|
||||
use Rinsvent\RequestBundle\Annotation\RequestDTO;
|
||||
use Rinsvent\RequestBundle\DTO\Error;
|
||||
use Rinsvent\RequestBundle\DTO\ErrorCollection;
|
||||
use Rinsvent\AttributeExtractor\MethodExtractor;
|
||||
use Rinsvent\RequestBundle\Service\Transformer\ServiceResolver;
|
||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\HttpKernel\Event\RequestEvent;
|
||||
@ -36,7 +34,15 @@ class RequestListener
|
||||
|
||||
/** @var RequestDTO $requestDTO */
|
||||
while ($requestDTO = $methodExtractor->fetch(RequestDTO::class)) {
|
||||
$requestDTOInstance = $this->grabRequestDTO($requestDTO, $request->getContent(), $request->query->all(), $request->request->all(), $request->headers->all());
|
||||
$requestDTOInstance = $this->grabRequestDTO(
|
||||
$requestDTO,
|
||||
$request->get('_route'),
|
||||
$request->getContent(),
|
||||
$request->query->all(),
|
||||
$request->request->all(),
|
||||
$request->headers->all(),
|
||||
$request->server->all(),
|
||||
);
|
||||
|
||||
$errorCollection = $this->validate($requestDTOInstance);
|
||||
if ($errorCollection->hasErrors()) {
|
||||
@ -76,8 +82,15 @@ class RequestListener
|
||||
return $errorCollection;
|
||||
}
|
||||
|
||||
protected function grabRequestDTO(RequestDTO $requestDTO, string $content, array $queryParameters = [], array $parameters = [], array $headers = [])
|
||||
{
|
||||
protected function grabRequestDTO(
|
||||
RequestDTO $requestDTO,
|
||||
string $routeName,
|
||||
string $content,
|
||||
array $queryParameters = [],
|
||||
array $parameters = [],
|
||||
array $headers = [],
|
||||
array $server = [],
|
||||
) {
|
||||
$data = [];
|
||||
try {
|
||||
$contentData = json_decode($content, true);
|
||||
@ -88,10 +101,13 @@ class RequestListener
|
||||
$data += $queryParameters;
|
||||
$data += $parameters;
|
||||
$data = $this->grabDataByJsonPath($data, $requestDTO->jsonPath);
|
||||
$data += $headers;
|
||||
|
||||
$data2dtoConverter = new Data2DtoConverter();
|
||||
return $data2dtoConverter->convert($data, $requestDTO->className);
|
||||
$result = $data2dtoConverter->convert($data, $requestDTO->className, ['default', 'request', 'source_body', 'route_' . $routeName]);
|
||||
$result = $data2dtoConverter->convert($headers, $requestDTO->className, ['default', 'request', 'source_headers', 'route_' . $routeName], $result);
|
||||
$result = $data2dtoConverter->convert($server, $requestDTO->className, ['default', 'request', 'source_server', 'route_' . $routeName], $result);
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
private function grabDataByJsonPath(array $data, string $jsonPath): array
|
||||
|
Loading…
Reference in New Issue
Block a user