Skip to content

Commit 3ffc805

Browse files
authored
Merge pull request #43 from rcerljenko/feature/confirmed-rule
Added confirmed rule handler
2 parents 9691400 + 679c78a commit 3ffc805

File tree

1 file changed

+23
-13
lines changed

1 file changed

+23
-13
lines changed

src/Commands/ExportPostmanCommand.php

+23-13
Original file line numberDiff line numberDiff line change
@@ -77,24 +77,34 @@ public function handle(): void
7777
}
7878

7979
if ($this->config['enable_formdata']) {
80-
$rulesParameter = null;
80+
$rulesParameter = collect($reflectionMethod->getParameters())
81+
->filter(function ($value, $key) {
82+
$value = $value->getType();
8183

82-
foreach ($reflectionMethod->getParameters() as $parameter) {
83-
if (! $parameterType = $parameter->getType()) {
84-
continue;
85-
}
86-
87-
$requestClass = $parameterType->getName();
84+
return $value && is_subclass_of($value->getName(), FormRequest::class);
85+
})
86+
->first();
8887

89-
if (is_subclass_of($requestClass, FormRequest::class)) {
90-
$rulesParameter = new $requestClass();
91-
}
88+
if (! $rulesParameter) {
89+
continue;
9290
}
9391

94-
if ($rulesParameter instanceof FormRequest) {
95-
$requestRules = $rulesParameter->rules();
92+
$rulesParameter = $rulesParameter->getType()->getName();
93+
$rulesParameter = new $rulesParameter;
94+
95+
$requestRules = [];
96+
$rules = method_exists($rulesParameter, 'rules') ? $rulesParameter->rules() : [];
9697

97-
$requestRules = array_keys($requestRules);
98+
foreach ($rules as $fieldName => $rule) {
99+
$requestRules[] = $fieldName;
100+
101+
if (is_string($rule)) {
102+
$rule = preg_split('/\s*\|\s*/', $rule);
103+
}
104+
105+
if (in_array('confirmed', $rule)) {
106+
$requestRules[] = $fieldName.'_confirmation';
107+
}
98108
}
99109
}
100110

0 commit comments

Comments
 (0)