add some comments on exceptions

This commit is contained in:
Jérémy Munsch 2021-09-12 00:05:38 +02:00
parent 9c91bb3659
commit 19108c833e
No known key found for this signature in database
GPG key ID: 677E1F9F80C16560
3 changed files with 19 additions and 19 deletions

View file

@ -4,6 +4,12 @@ namespace Kwaadpepper\Enum\Exceptions;
use Exception;
/**
* Is thrown when your enum definition
* contain multiple times the same label value
*
* This should only happen if you override the labels method
*/
class DuplicateLabelsException extends Exception
{
//

View file

@ -4,7 +4,12 @@ namespace Kwaadpepper\Enum\Exceptions;
use Exception;
class DuplicateValuesException extends Exception
/**
* Is thrown when your enum definition
* contain multiple times the same value
*
* This should only happen if you override the values method
*/ class DuplicateValuesException extends Exception
{
//
}

View file

@ -5,11 +5,12 @@ namespace Kwaadpepper\Enum\Rules;
use BadMethodCallException;
use TypeError;
/**
* Custom Rule to validate an enum
*/
class EnumIsValidRule extends BaseEnumRule
{
private $messageType = 0;
/**
* Determine if the validation rule passes.
*
@ -25,11 +26,7 @@ class EnumIsValidRule extends BaseEnumRule
$value = (is_numeric($value) and floatval(intval($value)) === floatval($value)) ?
(int)$value : $value;
forward_static_call([$this->enumClass, 'make'], $value);
} catch (TypeError $e) {
$this->messageType = 1;
return false;
} catch (BadMethodCallException $e) {
$this->messageType = 2;
} catch (TypeError | BadMethodCallException $e) {
return false;
}
return true;
@ -41,16 +38,8 @@ class EnumIsValidRule extends BaseEnumRule
*/
public function message(): string
{
$message = null;
switch ($this->messageType) {
case 1:
$message = trans('enum::enum.isNotValid');
break;
case 2:
$message = trans('enum::enum.notInList', [
'values' => implode(',', forward_static_call([$this->enumClass, 'toValues']))
]);
}
return \is_string($message) ? $message : 'Invalid Enum';
return trans('enum::enum.notInList', [
'values' => implode(',', forward_static_call([$this->enumClass, 'toValues']))
]);
}
}