From 7224f1be6f0276ef2f0e82a119279113ab1f5bf1 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sat, 16 Mar 2024 23:06:16 +0100 Subject: [PATCH] Small code cleanup. --- .../Account/AccountRepositoryInterface.php | 4 +- .../Actions/AppendDescription.php | 1 + .../Actions/AppendDescriptionToNotes.php | 1 + app/TransactionRules/Actions/AppendNotes.php | 1 + .../Actions/AppendNotesToDescription.php | 1 + app/TransactionRules/Actions/SetAmount.php | 15 +- .../Actions/SetDescription.php | 1 + .../Engine/SearchRuleEngine.php | 24 ++-- .../Expressions/ActionExpression.php | 128 +++++++++--------- .../ActionExpressionLanguageProvider.php | 2 +- app/Transformers/V2/AccountTransformer.php | 2 +- 11 files changed, 93 insertions(+), 87 deletions(-) diff --git a/app/Repositories/UserGroups/Account/AccountRepositoryInterface.php b/app/Repositories/UserGroups/Account/AccountRepositoryInterface.php index 9442c8f874..f6fea2a606 100644 --- a/app/Repositories/UserGroups/Account/AccountRepositoryInterface.php +++ b/app/Repositories/UserGroups/Account/AccountRepositoryInterface.php @@ -72,7 +72,7 @@ interface AccountRepositoryInterface public function setUser(User $user): void; - public function update(Account $account, array $data): Account; - public function setUserGroup(UserGroup $userGroup): void; + + public function update(Account $account, array $data): Account; } diff --git a/app/TransactionRules/Actions/AppendDescription.php b/app/TransactionRules/Actions/AppendDescription.php index a46623efef..b0c1c2a274 100644 --- a/app/TransactionRules/Actions/AppendDescription.php +++ b/app/TransactionRules/Actions/AppendDescription.php @@ -35,6 +35,7 @@ use FireflyIII\TransactionRules\Traits\RefreshNotesTrait; class AppendDescription implements ActionInterface { use RefreshNotesTrait; + private RuleAction $action; /** diff --git a/app/TransactionRules/Actions/AppendDescriptionToNotes.php b/app/TransactionRules/Actions/AppendDescriptionToNotes.php index fb7b46f53f..ae4c3866fd 100644 --- a/app/TransactionRules/Actions/AppendDescriptionToNotes.php +++ b/app/TransactionRules/Actions/AppendDescriptionToNotes.php @@ -38,6 +38,7 @@ use FireflyIII\TransactionRules\Traits\RefreshNotesTrait; class AppendDescriptionToNotes implements ActionInterface { use RefreshNotesTrait; + private RuleAction $action; /** diff --git a/app/TransactionRules/Actions/AppendNotes.php b/app/TransactionRules/Actions/AppendNotes.php index 3ec1a32c77..a097811ea0 100644 --- a/app/TransactionRules/Actions/AppendNotes.php +++ b/app/TransactionRules/Actions/AppendNotes.php @@ -36,6 +36,7 @@ use FireflyIII\TransactionRules\Traits\RefreshNotesTrait; class AppendNotes implements ActionInterface { use RefreshNotesTrait; + private RuleAction $action; /** diff --git a/app/TransactionRules/Actions/AppendNotesToDescription.php b/app/TransactionRules/Actions/AppendNotesToDescription.php index 6b36165551..235808f1ce 100644 --- a/app/TransactionRules/Actions/AppendNotesToDescription.php +++ b/app/TransactionRules/Actions/AppendNotesToDescription.php @@ -40,6 +40,7 @@ class AppendNotesToDescription implements ActionInterface { use ConvertsDataTypes; use RefreshNotesTrait; + private RuleAction $action; /** diff --git a/app/TransactionRules/Actions/SetAmount.php b/app/TransactionRules/Actions/SetAmount.php index f7209ffe53..47075052b0 100644 --- a/app/TransactionRules/Actions/SetAmount.php +++ b/app/TransactionRules/Actions/SetAmount.php @@ -33,6 +33,7 @@ use FireflyIII\TransactionRules\Traits\RefreshNotesTrait; class SetAmount implements ActionInterface { use RefreshNotesTrait; + private RuleAction $action; /** @@ -105,6 +106,13 @@ class SetAmount implements ActionInterface $this->updateAmount($transaction, $amount); } + private function updateAmount(Transaction $transaction, string $amount): void + { + $transaction->amount = $amount; + $transaction->save(); + $transaction->transactionJournal->touch(); + } + private function updateNegative(TransactionJournal $object, string $amount): void { /** @var null|Transaction $transaction */ @@ -114,11 +122,4 @@ class SetAmount implements ActionInterface } $this->updateAmount($transaction, $amount); } - - private function updateAmount(Transaction $transaction, string $amount): void - { - $transaction->amount = $amount; - $transaction->save(); - $transaction->transactionJournal->touch(); - } } diff --git a/app/TransactionRules/Actions/SetDescription.php b/app/TransactionRules/Actions/SetDescription.php index 0697894a21..599e5e5673 100644 --- a/app/TransactionRules/Actions/SetDescription.php +++ b/app/TransactionRules/Actions/SetDescription.php @@ -34,6 +34,7 @@ use FireflyIII\TransactionRules\Traits\RefreshNotesTrait; class SetDescription implements ActionInterface { use RefreshNotesTrait; + private RuleAction $action; /** diff --git a/app/TransactionRules/Engine/SearchRuleEngine.php b/app/TransactionRules/Engine/SearchRuleEngine.php index 7c02ec9b01..d0c7025ebd 100644 --- a/app/TransactionRules/Engine/SearchRuleEngine.php +++ b/app/TransactionRules/Engine/SearchRuleEngine.php @@ -473,6 +473,18 @@ class SearchRuleEngine implements RuleEngineInterface return false; } + private function addNotes(array $transaction): array + { + $transaction['notes'] = ''; + $dbNote = Note::where('noteable_id', (int)$transaction['transaction_journal_id'])->where('noteable_type', TransactionJournal::class)->first(['notes.*']); + if (null !== $dbNote) { + $transaction['notes'] = $dbNote->text; + } + Log::debug(sprintf('Notes of journal #%d filled in.', $transaction['transaction_journal_id'])); + + return $transaction; + } + /** * Return true if the rule is fired (the collection is larger than zero). * @@ -542,16 +554,4 @@ class SearchRuleEngine implements RuleEngineInterface } } } - - private function addNotes(array $transaction): array - { - $transaction['notes'] = ''; - $dbNote = Note::where('noteable_id', (int)$transaction['transaction_journal_id'])->where('noteable_type', TransactionJournal::class)->first(['notes.*']); - if (null !== $dbNote) { - $transaction['notes'] = $dbNote->text; - } - Log::debug(sprintf('Notes of journal #%d filled in.', $transaction['transaction_journal_id'])); - - return $transaction; - } } diff --git a/app/TransactionRules/Expressions/ActionExpression.php b/app/TransactionRules/Expressions/ActionExpression.php index 40708487fe..98ffb8e83e 100644 --- a/app/TransactionRules/Expressions/ActionExpression.php +++ b/app/TransactionRules/Expressions/ActionExpression.php @@ -29,63 +29,63 @@ use Symfony\Component\ExpressionLanguage\SyntaxError; class ActionExpression { - private static array $NAMES = [ - // 'transaction_group_id', - // 'user_id', - // 'user_group_id', - 'created_at', - 'updated_at', - 'transaction_group_title', - 'group_created_at', - 'group_updated_at', - // 'transaction_journal_id', - // 'transaction_type_id', - 'description', - 'date', - // 'order', - 'transaction_type_type', - // 'source_transaction_id', - 'source_account_id', - // 'reconciled', - 'amount', - // 'currency_id', - 'currency_code', - 'currency_name', - 'currency_symbol', - 'currency_decimal_places', - 'foreign_amount', - // 'foreign_currency_id', - 'foreign_currency_code', - 'foreign_currency_name', - 'foreign_currency_symbol', - 'foreign_currency_decimal_places', - 'destination_account_id', - 'source_account_name', - 'source_account_iban', - 'source_account_type', - 'destination_account_name', - 'destination_account_iban', - 'destination_account_type', - 'category_id', - 'category_name', - 'budget_id', - 'budget_name', - 'tags', - // 'attachments', - 'interest_date', - 'payment_date', - 'invoice_date', - 'book_date', - 'due_date', - 'process_date', - // 'destination_transaction_id', - 'notes', - ]; - + private static array $NAMES + = [ + // 'transaction_group_id', + // 'user_id', + // 'user_group_id', + 'created_at', + 'updated_at', + 'transaction_group_title', + 'group_created_at', + 'group_updated_at', + // 'transaction_journal_id', + // 'transaction_type_id', + 'description', + 'date', + // 'order', + 'transaction_type_type', + // 'source_transaction_id', + 'source_account_id', + // 'reconciled', + 'amount', + // 'currency_id', + 'currency_code', + 'currency_name', + 'currency_symbol', + 'currency_decimal_places', + 'foreign_amount', + // 'foreign_currency_id', + 'foreign_currency_code', + 'foreign_currency_name', + 'foreign_currency_symbol', + 'foreign_currency_decimal_places', + 'destination_account_id', + 'source_account_name', + 'source_account_iban', + 'source_account_type', + 'destination_account_name', + 'destination_account_iban', + 'destination_account_type', + 'category_id', + 'category_name', + 'budget_id', + 'budget_name', + 'tags', + // 'attachments', + 'interest_date', + 'payment_date', + 'invoice_date', + 'book_date', + 'due_date', + 'process_date', + // 'destination_transaction_id', + 'notes', + ]; + private string $expr; private ExpressionLanguage $expressionLanguage; - private string $expr; - private bool $isExpression; - private ?SyntaxError $validationError; + private bool $isExpression; + private ?SyntaxError $validationError; public function __construct(string $expr) { @@ -116,11 +116,6 @@ class ActionExpression } } - private function lintExpression(string $expr): void - { - $this->expressionLanguage->lint($expr, self::$NAMES); - } - private function lint(): void { if (!$this->isExpression) { @@ -130,9 +125,9 @@ class ActionExpression $this->lintExpression(substr($this->expr, 1)); } - public function isValid(): bool + private function lintExpression(string $expr): void { - return null === $this->validationError; + $this->expressionLanguage->lint($expr, self::$NAMES); } public function getValidationError(): ?SyntaxError @@ -140,11 +135,16 @@ class ActionExpression return $this->validationError; } + public function isValid(): bool + { + return null === $this->validationError; + } + private function evaluateExpression(string $expr, array $journal): string { $result = $this->expressionLanguage->evaluate($expr, $journal); - return (string) $result; + return (string)$result; } public function evaluate(array $journal): string diff --git a/app/TransactionRules/Expressions/ActionExpressionLanguageProvider.php b/app/TransactionRules/Expressions/ActionExpressionLanguageProvider.php index f871b3390a..678b54ee2e 100644 --- a/app/TransactionRules/Expressions/ActionExpressionLanguageProvider.php +++ b/app/TransactionRules/Expressions/ActionExpressionLanguageProvider.php @@ -36,7 +36,7 @@ class ActionExpressionLanguageProvider implements ExpressionFunctionProviderInte { $function = function ($arguments, $str): string { if (!is_string($str)) { - return (string) $str; + return (string)$str; } return strtolower($str.'!'); diff --git a/app/Transformers/V2/AccountTransformer.php b/app/Transformers/V2/AccountTransformer.php index 3dd8cd9de2..d3e2a297ef 100644 --- a/app/Transformers/V2/AccountTransformer.php +++ b/app/Transformers/V2/AccountTransformer.php @@ -41,12 +41,12 @@ use Illuminate\Support\Facades\DB; class AccountTransformer extends AbstractTransformer { private array $accountMeta; - private array $lastActivity; private array $accountTypes; private array $balances; private array $convertedBalances; private array $currencies; private TransactionCurrency $default; + private array $lastActivity; /** * @throws FireflyException