From ce728f3f7b23be94408a5d129893fadfa167392d Mon Sep 17 00:00:00 2001 From: chadicus Date: Fri, 15 Nov 2024 08:54:28 -0500 Subject: [PATCH 1/2] Update requirement for traderinteractive/filter-strings --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index fdbfdd5..0a68314 100644 --- a/composer.json +++ b/composer.json @@ -36,7 +36,7 @@ "traderinteractive/filter-dates": "^4.0", "traderinteractive/filter-floats": "^4.0", "traderinteractive/filter-ints": "^4.0", - "traderinteractive/filter-strings": "^4.0" + "traderinteractive/filter-strings": "^4.1" }, "require-dev": { "phpunit/phpunit": "^9.0", From 5eb938340be51919364fc06853ddaef68af26d85 Mon Sep 17 00:00:00 2001 From: chadicus Date: Fri, 15 Nov 2024 09:01:37 -0500 Subject: [PATCH 2/2] Add 'uuid' filter alias --- README.md | 10 ++++++++++ src/Filterer.php | 2 ++ tests/FiltererTest.php | 18 +++++++++++++++++- 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 3c077ff..673ec98 100644 --- a/README.md +++ b/README.md @@ -722,6 +722,16 @@ $value = \TraderInteractive\Filter\TimeOfDayFilter::filter('12:15:23'); assert($value === '12:15:23'); ``` +#### UuidFilter::filter +Aliased in the filterer as `uuid`, this will filter a given string values as a valid UUID. + +The following ensures the `$value` is a valid UUID v4 formatted string. Disallowing null values, nil UUIDs and UUID version other than v4 + +```php +$value = \TraderInteractive\Filter\UuidFilter::filter('2c02b87a-97ec-4de0-8c50-6721a29c150f', false, false, [4]); +assert($value === '2c02b87a-97ec-4de0-8c50-6721a29c150f'); +``` + #### XmlFilter::filter Aliased in the filter as `xml`, this will ensure the given string value is valid XML, returning the original value. diff --git a/src/Filterer.php b/src/Filterer.php index 93c1bb7..19a14f8 100644 --- a/src/Filterer.php +++ b/src/Filterer.php @@ -10,6 +10,7 @@ use TraderInteractive\Filter\Json; use TraderInteractive\Filter\PhoneFilter; use TraderInteractive\Filter\TimeOfDayFilter; +use TraderInteractive\Filter\UuidFilter; use TraderInteractive\Filter\XmlFilter; /** @@ -54,6 +55,7 @@ final class Filterer implements FiltererInterface 'translate' => '\\TraderInteractive\\Filter\\Strings::translate', 'uint' => '\\TraderInteractive\\Filter\\UnsignedInt::filter', 'url' => '\\TraderInteractive\\Filter\\Url::filter', + 'uuid' => UuidFilter::class . '::filter', 'xml' => XmlFilter::class . '::filter', 'xml-extract' => XmlFilter::class . '::extract', 'xml-validate' => XmlFilter::class . '::validate', diff --git a/tests/FiltererTest.php b/tests/FiltererTest.php index a36c2a9..e6b1d88 100644 --- a/tests/FiltererTest.php +++ b/tests/FiltererTest.php @@ -548,7 +548,23 @@ function (int $input, int $fieldOneValue) : int { null, [], ], - + ], + 'uuid' => [ + 'spec' => [ + 'field' => [['uuid', false, false, [4]]], + ], + 'input' => [ + 'field' => '2c02b87a-97ec-4de0-8c50-6721a29c150f', + ], + 'options' => [], + 'result' => [ + true, + [ + 'field' => '2c02b87a-97ec-4de0-8c50-6721a29c150f', + ], + null, + [], + ], ], ]; }