Skip to content

Commit a2a73d7

Browse files
committed
http action parameters validation support
1 parent 07ebce9 commit a2a73d7

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

src/Factory/Server/Validator.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,25 @@
66

77
use Psr\Http\Message\ServerRequestInterface;
88
use SimpleAsFuck\ApiToolkit\Model\Server\RequestRules;
9+
use SimpleAsFuck\Validator\Model\RuleChain;
10+
use SimpleAsFuck\Validator\Model\Validated;
11+
use SimpleAsFuck\Validator\Rule\String\StringRule;
912

1013
final class Validator
1114
{
1215
public static function make(ServerRequestInterface $request): RequestRules
1316
{
1417
return new RequestRules(new ApiValidationException(), $request);
1518
}
19+
20+
/**
21+
* @param non-empty-string $name
22+
* @return StringRule
23+
*/
24+
public static function parameter(?string $value, string $name): StringRule
25+
{
26+
/** @var Validated<mixed> $value */
27+
$value = new Validated($value);
28+
return new StringRule(new ApiValidationException(), new RuleChain(), $value, 'Url path parameter: '.$name);
29+
}
1630
}

src/Factory/Symfony/Validator.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66

77
use GuzzleHttp\Psr7\HttpFactory;
88
use SimpleAsFuck\ApiToolkit\Model\Server\RequestRules;
9+
use SimpleAsFuck\Validator\Model\RuleChain;
10+
use SimpleAsFuck\Validator\Model\Validated;
11+
use SimpleAsFuck\Validator\Rule\String\StringRule;
912
use Symfony\Bridge\PsrHttpMessage\Factory\PsrHttpFactory;
1013
use Symfony\Component\HttpFoundation\Request;
1114

@@ -18,4 +21,15 @@ public static function make(Request $request): RequestRules
1821
$request = $factory->createRequest($request);
1922
return new RequestRules(new BadRequestException(), $request);
2023
}
24+
25+
/**
26+
* @param non-empty-string $name
27+
* @return StringRule
28+
*/
29+
public static function parameter(?string $value, string $name): StringRule
30+
{
31+
/** @var Validated<mixed> $value */
32+
$value = new Validated($value);
33+
return new StringRule(new BadRequestException(), new RuleChain(), $value, 'Url path parameter: '.$name);
34+
}
2135
}

0 commit comments

Comments
 (0)