From 663b938269cd2475a4471c3ad722e31ee5f300ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Skowro=C5=84ski?= Date: Sun, 7 Jan 2024 17:33:43 +0100 Subject: [PATCH] Improve handling of empty values in validators --- src/Form/Dlc/Dto/DlcFormDto.php | 1 + src/Validator/Dlc/SteamStoreArma3DlcUrlValidator.php | 3 +++ src/Validator/Dlc/UniqueDirectoryDlcValidator.php | 6 +++++- src/Validator/Mod/UniqueDirectoryModValidator.php | 6 +++++- src/Validator/ModGroup/UniqueModGroupNameValidator.php | 6 +++++- src/Validator/ModList/UniqueModListNameValidator.php | 6 +++++- src/Validator/User/UniqueUserSteamIdValidator.php | 6 +++++- src/Validator/UserGroup/UniqueUserGroupNameValidator.php | 6 +++++- 8 files changed, 34 insertions(+), 6 deletions(-) diff --git a/src/Form/Dlc/Dto/DlcFormDto.php b/src/Form/Dlc/Dto/DlcFormDto.php index e56695f1..f9360f74 100644 --- a/src/Form/Dlc/Dto/DlcFormDto.php +++ b/src/Form/Dlc/Dto/DlcFormDto.php @@ -25,6 +25,7 @@ class DlcFormDto extends AbstractFormDto #[Assert\Length(min: 1, max: 255)] protected ?string $description = null; + #[Assert\NotBlank] protected ?string $url = null; #[Assert\NotBlank] diff --git a/src/Validator/Dlc/SteamStoreArma3DlcUrlValidator.php b/src/Validator/Dlc/SteamStoreArma3DlcUrlValidator.php index 064aa217..8f30c74a 100644 --- a/src/Validator/Dlc/SteamStoreArma3DlcUrlValidator.php +++ b/src/Validator/Dlc/SteamStoreArma3DlcUrlValidator.php @@ -36,6 +36,9 @@ public function validate(mixed $value, Constraint $constraint): void } $url = $value->getUrl(); + if ('' === $url || null === $url) { + return; + } try { $appId = SteamHelper::appUrlToAppId($url); diff --git a/src/Validator/Dlc/UniqueDirectoryDlcValidator.php b/src/Validator/Dlc/UniqueDirectoryDlcValidator.php index 2c4c854f..04e5f6ff 100644 --- a/src/Validator/Dlc/UniqueDirectoryDlcValidator.php +++ b/src/Validator/Dlc/UniqueDirectoryDlcValidator.php @@ -23,8 +23,12 @@ public function validate(mixed $value, Constraint $constraint): void } $directory = $value->getDirectory(); + if ('' === $directory || null === $directory) { + return; + } + $id = $value->getId(); - if (!$directory || $this->isColumnValueUnique(Dlc::class, ['directory' => $directory], $id)) { + if ($this->isColumnValueUnique(Dlc::class, ['directory' => $directory], $id)) { return; } diff --git a/src/Validator/Mod/UniqueDirectoryModValidator.php b/src/Validator/Mod/UniqueDirectoryModValidator.php index 15624d53..70266a76 100644 --- a/src/Validator/Mod/UniqueDirectoryModValidator.php +++ b/src/Validator/Mod/UniqueDirectoryModValidator.php @@ -23,8 +23,12 @@ public function validate(mixed $value, Constraint $constraint): void } $directory = $value->getDirectory(); + if ('' === $directory || null === $directory) { + return; + } + $id = $value->getId(); - if (!$directory || $this->isColumnValueUnique(DirectoryMod::class, ['directory' => $directory], $id)) { + if ($this->isColumnValueUnique(DirectoryMod::class, ['directory' => $directory], $id)) { return; } diff --git a/src/Validator/ModGroup/UniqueModGroupNameValidator.php b/src/Validator/ModGroup/UniqueModGroupNameValidator.php index 6c254ca2..7261dc0c 100644 --- a/src/Validator/ModGroup/UniqueModGroupNameValidator.php +++ b/src/Validator/ModGroup/UniqueModGroupNameValidator.php @@ -23,8 +23,12 @@ public function validate(mixed $value, Constraint $constraint): void } $name = $value->getName(); + if ('' === $name || null === $name) { + return; + } + $id = $value->getId(); - if (!$name || $this->isColumnValueUnique(ModGroup::class, ['name' => $name], $id)) { + if ($this->isColumnValueUnique(ModGroup::class, ['name' => $name], $id)) { return; } diff --git a/src/Validator/ModList/UniqueModListNameValidator.php b/src/Validator/ModList/UniqueModListNameValidator.php index e31e9e98..2ce9638c 100644 --- a/src/Validator/ModList/UniqueModListNameValidator.php +++ b/src/Validator/ModList/UniqueModListNameValidator.php @@ -23,8 +23,12 @@ public function validate(mixed $value, Constraint $constraint): void } $name = $value->getName(); + if ('' === $name || null === $name) { + return; + } + $id = $value->getId(); - if (!$name || $this->isColumnValueUnique(ModList::class, ['name' => $name], $id)) { + if ($this->isColumnValueUnique(ModList::class, ['name' => $name], $id)) { return; } diff --git a/src/Validator/User/UniqueUserSteamIdValidator.php b/src/Validator/User/UniqueUserSteamIdValidator.php index 3f5b3471..0990f11c 100644 --- a/src/Validator/User/UniqueUserSteamIdValidator.php +++ b/src/Validator/User/UniqueUserSteamIdValidator.php @@ -24,8 +24,12 @@ public function validate(mixed $value, Constraint $constraint): void } $steamId = $value->getSteamId(); + if (null === $steamId) { + return; + } + $id = $value->getId(); - if (!$steamId || $this->isColumnValueUnique(User::class, ['steamId' => $steamId], $id)) { + if ($this->isColumnValueUnique(User::class, ['steamId' => $steamId], $id)) { return; } diff --git a/src/Validator/UserGroup/UniqueUserGroupNameValidator.php b/src/Validator/UserGroup/UniqueUserGroupNameValidator.php index 97166473..418ba815 100644 --- a/src/Validator/UserGroup/UniqueUserGroupNameValidator.php +++ b/src/Validator/UserGroup/UniqueUserGroupNameValidator.php @@ -23,8 +23,12 @@ public function validate(mixed $value, Constraint $constraint): void } $name = $value->getName(); + if ('' === $name || null === $name) { + return; + } + $id = $value->getId(); - if (!$name || $this->isColumnValueUnique(UserGroup::class, ['name' => $name], $id)) { + if ($this->isColumnValueUnique(UserGroup::class, ['name' => $name], $id)) { return; }