From 67b16cc07063f90cf12c370d03bbb314a5cfe3cd Mon Sep 17 00:00:00 2001 From: James Cole Date: Sun, 10 Mar 2024 06:46:38 +0100 Subject: [PATCH] Overrule "constant" and "enum" actions. --- .../ActionExpressionLanguageProvider.php | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/app/TransactionRules/Expressions/ActionExpressionLanguageProvider.php b/app/TransactionRules/Expressions/ActionExpressionLanguageProvider.php index f8451e1c6c..7fb6012dcd 100644 --- a/app/TransactionRules/Expressions/ActionExpressionLanguageProvider.php +++ b/app/TransactionRules/Expressions/ActionExpressionLanguageProvider.php @@ -31,7 +31,28 @@ class ActionExpressionLanguageProvider implements ExpressionFunctionProviderInte { public function getFunctions(): array { + return [ + + new ExpressionFunction('constant', function ($str): string { + return sprintf('(is_string(%1$s) ? strtolower(%1$s) : %1$s)', $str . '!'); + }, function ($arguments, $str): string { + if (!is_string($str)) { + return $str; + } + + return strtolower($str . '!'); + }), + new ExpressionFunction('enum', function ($str): string { + return sprintf('(is_string(%1$s) ? strtolower(%1$s) : %1$s)', $str . '?'); + }, function ($arguments, $str): string { + if (!is_string($str)) { + return $str; + } + + return strtolower($str) . '?'; + }), + ExpressionFunction::fromPhp('substr'), ExpressionFunction::fromPhp('strlen'), ];