Skip to content

Commit 19ff75c

Browse files
authored
Merge pull request #6 from KaririCode-Framework/develop
fix and enhance trait tests
2 parents c8bcd1a + 23c8aa8 commit 19ff75c

22 files changed

+1104
-172
lines changed

.gitattributes

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,5 @@
1414
/phpstan.neon export-ignore
1515
/phpunit.xml export-ignore
1616
/psalm.xml export-ignore
17-
/Makefile export-ignore
17+
/Makefile export-ignore
18+
/composer.lock

composer.lock

Lines changed: 74 additions & 16 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Contract/SanitizationResult.php

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,7 @@
66

77
interface SanitizationResult
88
{
9-
public function addError(string $property, string $errorKey, string $message): void;
10-
11-
public function setSanitizedData(string $property, mixed $value): void;
12-
13-
public function hasErrors(): bool;
9+
public function isValid(): bool;
1410

1511
public function getErrors(): array;
1612

src/Contract/SanitizationResultProcessor.php

Lines changed: 0 additions & 19 deletions
This file was deleted.

src/Processor/DefaultSanitizationResultProcessor.php

Lines changed: 0 additions & 44 deletions
This file was deleted.

src/Result/SanitizationResult.php

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace KaririCode\Sanitizer\Result;
6+
7+
use KaririCode\ProcessorPipeline\Result\ProcessingResultCollection;
8+
use KaririCode\Sanitizer\Contract\SanitizationResult as SanitizationResultcontract;
9+
10+
final class SanitizationResult implements SanitizationResultcontract
11+
{
12+
public function __construct(
13+
private readonly ProcessingResultCollection $results
14+
) {
15+
}
16+
17+
public function isValid(): bool
18+
{
19+
return !$this->results->hasErrors();
20+
}
21+
22+
public function getErrors(): array
23+
{
24+
return $this->results->getErrors();
25+
}
26+
27+
public function getSanitizedData(): array
28+
{
29+
return $this->results->getProcessedData();
30+
}
31+
32+
public function toArray(): array
33+
{
34+
return $this->results->toArray();
35+
}
36+
}

src/SanitizationResult.php

Lines changed: 0 additions & 59 deletions
This file was deleted.

src/Sanitizer.php

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,38 +6,43 @@
66

77
use KaririCode\Contract\Processor\ProcessorRegistry;
88
use KaririCode\Contract\Sanitizer\Sanitizer as SanitizerContract;
9+
use KaririCode\ProcessorPipeline\Handler\ProcessorAttributeHandler;
910
use KaririCode\ProcessorPipeline\ProcessorBuilder;
1011
use KaririCode\PropertyInspector\AttributeAnalyzer;
11-
use KaririCode\PropertyInspector\AttributeHandler;
1212
use KaririCode\PropertyInspector\Utility\PropertyInspector;
1313
use KaririCode\Sanitizer\Attribute\Sanitize;
14-
use KaririCode\Sanitizer\Contract\SanitizationResult;
15-
use KaririCode\Sanitizer\Processor\DefaultSanitizationResultProcessor;
14+
use KaririCode\Sanitizer\Contract\SanitizationResult as SanitizationResultContract;
15+
use KaririCode\Sanitizer\Result\SanitizationResult;
1616

17-
class Sanitizer implements SanitizerContract
17+
final class Sanitizer implements SanitizerContract
1818
{
1919
private const IDENTIFIER = 'sanitizer';
2020

21-
private ProcessorBuilder $builder;
21+
private readonly ProcessorBuilder $builder;
2222

2323
public function __construct(
2424
private readonly ProcessorRegistry $registry
2525
) {
2626
$this->builder = new ProcessorBuilder($this->registry);
2727
}
2828

29-
public function sanitize(mixed $object): SanitizationResult
29+
public function sanitize(mixed $object): SanitizationResultContract
3030
{
31-
$attributeHandler = new AttributeHandler(self::IDENTIFIER, $this->builder);
31+
$attributeHandler = new ProcessorAttributeHandler(
32+
self::IDENTIFIER,
33+
$this->builder
34+
);
35+
3236
$propertyInspector = new PropertyInspector(
3337
new AttributeAnalyzer(Sanitize::class)
3438
);
3539

36-
$propertyInspector->inspect($object, $attributeHandler);
40+
/** @var PropertyAttributeHandler */
41+
$handler = $propertyInspector->inspect($object, $attributeHandler);
3742
$attributeHandler->applyChanges($object);
3843

39-
$resultProcessor = new DefaultSanitizationResultProcessor();
40-
41-
return $resultProcessor->process($attributeHandler);
44+
return new SanitizationResult(
45+
$handler->getProcessingResults()
46+
);
4247
}
4348
}

0 commit comments

Comments
 (0)