From dde1c9b1e7c2b93cb4f27eed93b268aa563a5e0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rom=C3=A1n=20Gutierrez?= Date: Tue, 27 Aug 2024 17:24:23 +0200 Subject: [PATCH] feat: allow greater or equal validation (#279) Signed-off-by: romanetar --- .../Factories/EventTypeValidationRulesFactory.php | 4 ++-- app/Providers/AppServiceProvider.php | 15 ++++++++++++++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/Apis/Protected/Summit/Factories/EventTypeValidationRulesFactory.php b/app/Http/Controllers/Apis/Protected/Summit/Factories/EventTypeValidationRulesFactory.php index 7248d18b3..7594254a1 100644 --- a/app/Http/Controllers/Apis/Protected/Summit/Factories/EventTypeValidationRulesFactory.php +++ b/app/Http/Controllers/Apis/Protected/Summit/Factories/EventTypeValidationRulesFactory.php @@ -75,11 +75,11 @@ public static function build(array $data, $update = false){ 'use_speakers' => 'sometimes|boolean', 'are_speakers_mandatory' => 'sometimes|boolean|required_with:use_speakers', 'min_speakers' => 'sometimes|integer|required_with:use_speakers', - 'max_speakers' => 'sometimes|integer|required_with:use_speakers|greater_than_field:min_speakers', + 'max_speakers' => 'sometimes|integer|required_with:use_speakers|greater_or_equal_than_field:min_speakers', 'use_moderator' => 'sometimes|boolean', 'is_moderator_mandatory' => 'sometimes|boolean|required_with:use_moderator', 'min_moderators' => 'sometimes|integer|required_with:use_moderator', - 'max_moderators' => 'sometimes|integer|required_with:use_moderator|greater_than_field:min_moderators', + 'max_moderators' => 'sometimes|integer|required_with:use_moderator|greater_or_equal_than_field:min_moderators', 'should_be_available_on_cfp' => 'sometimes|boolean', 'moderator_label' => 'sometimes|string', 'allow_custom_ordering' => 'sometimes|boolean', diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 11d81766f..380d9c7e8 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -523,7 +523,7 @@ public function boot() Validator::extend('greater_than_field', function ($attribute, $value, $parameters, $validator) { $validator->addReplacer('greater_than_field', function ($message, $attribute, $rule, $parameters) use ($validator) { - return sprintf("%s should be greather than %s", $attribute, $parameters[0]); + return sprintf("%s should be greater than %s", $attribute, $parameters[0]); }); $data = $validator->getData(); if (is_null($value) || intval($value) == 0) return true; @@ -534,6 +534,19 @@ public function boot() return true; }); + Validator::extend('greater_or_equal_than_field', function ($attribute, $value, $parameters, $validator) { + $validator->addReplacer('greater_or_equal_than_field', function ($message, $attribute, $rule, $parameters) use ($validator) { + return sprintf("%s should be greater or equal than %s", $attribute, $parameters[0]); + }); + $data = $validator->getData(); + if (is_null($value) || intval($value) == 0) return true; + if (isset($data[$parameters[0]])) { + $compare_to = $data[$parameters[0]]; + return intval($compare_to) <= intval($value); + } + return true; + }); + Validator::extend('valid_epoch', function ($attribute, $value, $parameters, $validator) { $validator->addReplacer('valid_epoch', function ($message, $attribute, $rule, $parameters) use ($validator) { return sprintf("%s should be a valid epoch value", $attribute);