From 8f1c416b888d2d3ea58e40fe1c4d96ea735ad576 Mon Sep 17 00:00:00 2001 From: Leandro Date: Fri, 5 Jun 2020 18:43:06 -0300 Subject: [PATCH] Melhorias na geracao de collection para postman --- .editorconfig | 2 +- .../BodyParameters/GetFromFormRequest.php | 4 ++-- .../Strategies/Responses/UseApiResourceTags.php | 4 ++-- src/Writing/PostmanCollectionWriter.php | 16 ++++++++++++++++ 4 files changed, 21 insertions(+), 5 deletions(-) diff --git a/.editorconfig b/.editorconfig index 1492202b..1da3b023 100644 --- a/.editorconfig +++ b/.editorconfig @@ -6,7 +6,7 @@ end_of_line = lf insert_final_newline = true indent_style = space indent_size = 4 -trim_trailing_whitespace = true +trim_trailing_whitespace = false [*.md] trim_trailing_whitespace = false diff --git a/src/Extracting/Strategies/BodyParameters/GetFromFormRequest.php b/src/Extracting/Strategies/BodyParameters/GetFromFormRequest.php index cfe89f07..1dbfc4c7 100644 --- a/src/Extracting/Strategies/BodyParameters/GetFromFormRequest.php +++ b/src/Extracting/Strategies/BodyParameters/GetFromFormRequest.php @@ -136,7 +136,7 @@ public function getBodyParametersFromValidationRules(array $validationRules, arr // Make sure the user-specified description comes first. $userSpecifiedDescription = $userSpecifiedParameterInfo['description'] ?? ''; $validationDescription = trim($parameterData['description'] ?: ''); - $fullDescription = trim($userSpecifiedDescription . ' ' . trim($validationDescription)); + $fullDescription = trim($userSpecifiedDescription . ($userSpecifiedDescription && $validationDescription?'
':' ') . trim($validationDescription)); // Let's have our sentences end with full stops, like civilized people.🙂 $parameterData['description'] = $fullDescription ? rtrim($fullDescription, '.') . '.' : $fullDescription; @@ -368,7 +368,7 @@ protected function parseRule($rule, &$parameterData) break; case 'min_words': $parameterData['type'] = $parameterData['type'] ?: 'number'; - $parameterData['description'] .= "*O campo precisa conter no minimo {$arguments[0]} ".plural('palavra.','palavras.',$arguments[0]).' '; + $this->changeDescription($parameterData,"*O campo precisa conter no minimo {$arguments[0]} ".plural('palavra.','palavras.',$arguments[0]).' '); break; case 'digits': $parameterData['type'] = $parameterData['type'] ?: 'number'; diff --git a/src/Extracting/Strategies/Responses/UseApiResourceTags.php b/src/Extracting/Strategies/Responses/UseApiResourceTags.php index 6c305cef..27d013f0 100644 --- a/src/Extracting/Strategies/Responses/UseApiResourceTags.php +++ b/src/Extracting/Strategies/Responses/UseApiResourceTags.php @@ -151,9 +151,9 @@ private function getClassToBeTransformedAndAttributes(array $tags): array $relations = []; $pagination = []; if ($modelTag) { - ['content' => $type, 'attributes' => $attributes] = a::parseIntoContentAndAttributes($modelTag->getContent(), ['states', 'with', 'paginate','relations','useFactory']); + ['content' => $type, 'attributes' => $attributes] = a::parseIntoContentAndAttributes($modelTag->getContent(), ['states', 'with', 'paginate','relations','Use-Factory']); $states = $attributes['states'] ? explode(',', $attributes['states']) : []; - $useFactory = !!$attributes['useFactory']; + $useFactory = !!$attributes['Use-Factory']; $relations = $attributes['with'] ? explode(',', $attributes['with']) : []; if(empty($relations)){ $relations = $attributes['relations'] ? explode(',', $attributes['relations']) : []; diff --git a/src/Writing/PostmanCollectionWriter.php b/src/Writing/PostmanCollectionWriter.php index 76120d46..518e58a8 100644 --- a/src/Writing/PostmanCollectionWriter.php +++ b/src/Writing/PostmanCollectionWriter.php @@ -105,6 +105,21 @@ protected function resolvePostmanEvents($route) ->values() ->all(); } + + + + + + protected function parseFormDataParameters(array &$route){ + foreach ($route['cleanBodyParameters'] as $key => $value) { + if(is_array($value)){ + foreach($value as $subkey => $subval){ + $route['cleanBodyParameters']["{$key}[$subkey]"] = $subval; + } + unset($route['cleanBodyParameters'][$key]); + } + } + } protected function getBodyData(array $route): array { @@ -122,6 +137,7 @@ protected function getBodyData(array $route): array switch ($mode) { case 'formdata': + $this->parseFormDataParameters($route); foreach ($route['cleanBodyParameters'] as $key => $value) { $params = [ 'key' => $key,