diff --git a/.ci/phpstan.neon b/.ci/phpstan.neon index 81ee55ec8b..c29cf42db9 100644 --- a/.ci/phpstan.neon +++ b/.ci/phpstan.neon @@ -16,12 +16,23 @@ parameters: - ../app/Api/V1/Controllers/Data/DestroyController.php - ../app/Console/Commands/Correction/FixAccountTypes.php - ../app/Console/Commands/Upgrade/OtherCurrenciesCorrections.php + - ../app/Exceptions/GracefulNotFoundHandler.php + - + message: '#Function compact\(\) should not be used#' + paths: + - ../app/Generator/Report/Account/MonthReportGenerator.php + - ../app/Generator/Report/Audit/MonthReportGenerator.php + - ../app/Generator/Report/Budget/MonthReportGenerator.php + - ../app/Generator/Report/Category/MonthReportGenerator.php + - ../app/Generator/Report/Standard/MonthReportGenerator.php + - ../app/Generator/Report/Standard/MultiYearReportGenerator.php + - ../app/Generator/Report/Standard/YearReportGenerator.php + - ../app/Generator/Report/Tag/MonthReportGenerator.php paths: - ../app - ../database - ../routes - - ../tests - ../bootstrap/app.php # The level 8 is the highest level. original was 5 diff --git a/.ci/phpstan.sh b/.ci/phpstan.sh index aaff99ea71..e864fe03b8 100755 --- a/.ci/phpstan.sh +++ b/.ci/phpstan.sh @@ -30,6 +30,6 @@ SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) # Do static code analysis. # ./vendor/bin/phpstan analyse -c .ci/phpstan.neon --no-progress -./vendor/bin/phpstan analyse -c .ci/phpstan.neon --error-format=table > phpstan-report.txt +./vendor/bin/phpstan analyse -c .ci/phpstan.neon --no-progress --error-format=table > phpstan-report.txt exit 0 diff --git a/app/Console/Commands/Correction/FixGroupAccounts.php b/app/Console/Commands/Correction/FixGroupAccounts.php index 6cc0ee9b7e..31fa005c63 100644 --- a/app/Console/Commands/Correction/FixGroupAccounts.php +++ b/app/Console/Commands/Correction/FixGroupAccounts.php @@ -68,7 +68,7 @@ class FixGroupAccounts extends Command $handler = new UpdatedGroupEventHandler(); foreach ($groups as $groupId) { $group = TransactionGroup::find($groupId); - $event = new UpdatedTransactionGroup($group); + $event = new UpdatedTransactionGroup($group, true, true); $handler->unifyAccounts($event); } diff --git a/app/Events/StoredTransactionGroup.php b/app/Events/StoredTransactionGroup.php index 880c6b8de7..8a4602dfd4 100644 --- a/app/Events/StoredTransactionGroup.php +++ b/app/Events/StoredTransactionGroup.php @@ -47,7 +47,7 @@ class StoredTransactionGroup extends Event * @param bool $applyRules * @param bool $fireWebhooks */ - public function __construct(TransactionGroup $transactionGroup, bool $applyRules = true, bool $fireWebhooks = true) + public function __construct(TransactionGroup $transactionGroup, bool $applyRules, bool $fireWebhooks) { $this->transactionGroup = $transactionGroup; $this->fireWebhooks = $fireWebhooks; diff --git a/app/Events/TriggeredAuditLog.php b/app/Events/TriggeredAuditLog.php index 2b48559c24..491729f0ad 100644 --- a/app/Events/TriggeredAuditLog.php +++ b/app/Events/TriggeredAuditLog.php @@ -43,7 +43,7 @@ class TriggeredAuditLog extends Event /** * Create a new event instance. */ - public function __construct(Model $changer, Model $auditable, string $field, mixed $before = null, mixed $after = null) + public function __construct(Model $changer, Model $auditable, string $field, mixed $before, mixed $after) { $this->changer = $changer; $this->auditable = $auditable; diff --git a/app/Events/UpdatedTransactionGroup.php b/app/Events/UpdatedTransactionGroup.php index 89ba4e1378..e6277b9461 100644 --- a/app/Events/UpdatedTransactionGroup.php +++ b/app/Events/UpdatedTransactionGroup.php @@ -47,7 +47,7 @@ class UpdatedTransactionGroup extends Event * @param bool $applyRules * @param bool $fireWebhooks */ - public function __construct(TransactionGroup $transactionGroup, bool $applyRules = true, bool $fireWebhooks = true) + public function __construct(TransactionGroup $transactionGroup, bool $applyRules, bool $fireWebhooks) { $this->transactionGroup = $transactionGroup; $this->fireWebhooks = $fireWebhooks; diff --git a/app/Factory/AccountFactory.php b/app/Factory/AccountFactory.php index dd8dc16357..25f1552532 100644 --- a/app/Factory/AccountFactory.php +++ b/app/Factory/AccountFactory.php @@ -153,7 +153,7 @@ class AccountFactory // try with type: if (null === $result) { $types = config(sprintf('firefly.accountTypeByIdentifier.%s', $accountTypeName)) ?? []; - if (!empty($types)) { + if (0 !== count($types)) { $result = AccountType::whereIn('type', $types)->first(); } } diff --git a/app/Factory/AccountMetaFactory.php b/app/Factory/AccountMetaFactory.php index cc87d2b886..a63768b780 100644 --- a/app/Factory/AccountMetaFactory.php +++ b/app/Factory/AccountMetaFactory.php @@ -24,9 +24,9 @@ declare(strict_types=1); namespace FireflyIII\Factory; -use Exception; use FireflyIII\Models\Account; use FireflyIII\Models\AccountMeta; +use Illuminate\Database\QueryException; use Log; /** @@ -64,7 +64,7 @@ class AccountMetaFactory if ('' === $value && null !== $entry) { try { $entry->delete(); - } catch (Exception $e) { + } catch (QueryException $e) { Log::debug(sprintf('Could not delete entry: %s', $e->getMessage())); } diff --git a/app/Factory/TransactionJournalFactory.php b/app/Factory/TransactionJournalFactory.php index 9e91f4de67..72cc769f84 100644 --- a/app/Factory/TransactionJournalFactory.php +++ b/app/Factory/TransactionJournalFactory.php @@ -45,6 +45,7 @@ use FireflyIII\Services\Internal\Support\JournalServiceTrait; use FireflyIII\Support\NullArrayObject; use FireflyIII\User; use FireflyIII\Validation\AccountValidator; +use Illuminate\Database\QueryException; use Illuminate\Support\Collection; use JsonException; use Log; @@ -108,7 +109,7 @@ class TransactionJournalFactory Log::debug('Start of TransactionJournalFactory::create()'); $collection = new Collection(); $transactions = $dataObject['transactions'] ?? []; - if (empty($transactions)) { + if (0 === count($transactions)) { Log::error('There are no transactions in the array, the TransactionJournalFactory cannot continue.'); return new Collection(); @@ -510,7 +511,7 @@ class TransactionJournalFactory { try { $transaction->delete(); - } catch (Exception $e) { + } catch (QueryException $e) { Log::error($e->getMessage()); Log::error($e->getTraceAsString()); Log::error('Could not delete negative transaction.'); diff --git a/app/Factory/TransactionJournalMetaFactory.php b/app/Factory/TransactionJournalMetaFactory.php index a9bef108b0..0c19840f59 100644 --- a/app/Factory/TransactionJournalMetaFactory.php +++ b/app/Factory/TransactionJournalMetaFactory.php @@ -26,6 +26,7 @@ namespace FireflyIII\Factory; use Carbon\Carbon; use Exception; use FireflyIII\Models\TransactionJournalMeta; +use Illuminate\Database\QueryException; use Log; /** @@ -48,7 +49,7 @@ class TransactionJournalMetaFactory //Log::debug('Value is empty, delete meta value.'); try { $entry->delete(); - } catch (Exception $e) { + } catch (QueryException $e) { Log::error(sprintf('Could not delete transaction journal meta: %s', $e->getMessage())); } @@ -66,7 +67,7 @@ class TransactionJournalMetaFactory Log::debug('Will not store empty strings, delete meta value'); try { $entry->delete(); - } catch (Exception $e) { + } catch (QueryException $e) { Log::error(sprintf('Could not delete transaction journal meta: %s', $e->getMessage())); } } diff --git a/app/Generator/Report/Account/MonthReportGenerator.php b/app/Generator/Report/Account/MonthReportGenerator.php index cbbbdbaef3..bfb2dcffe6 100644 --- a/app/Generator/Report/Account/MonthReportGenerator.php +++ b/app/Generator/Report/Account/MonthReportGenerator.php @@ -23,6 +23,7 @@ declare(strict_types=1); namespace FireflyIII\Generator\Report\Account; use Carbon\Carbon; +use FireflyIII\Exceptions\FireflyException; use FireflyIII\Generator\Report\ReportGeneratorInterface; use Illuminate\Support\Collection; use Log; @@ -42,7 +43,7 @@ class MonthReportGenerator implements ReportGeneratorInterface /** * Generate the report. - * + * @throws FireflyException * @return string */ public function generate(): string @@ -58,7 +59,9 @@ class MonthReportGenerator implements ReportGeneratorInterface ->render(); } catch (Throwable $e) { Log::error(sprintf('Cannot render reports.double.report: %s', $e->getMessage())); + Log::error($e->getTraceAsString()); $result = sprintf('Could not render report view: %s', $e->getMessage()); + throw new FireflyException($result, 0, $e); } return $result; diff --git a/app/Generator/Report/Audit/MonthReportGenerator.php b/app/Generator/Report/Audit/MonthReportGenerator.php index e0cde0c9d6..167170128a 100644 --- a/app/Generator/Report/Audit/MonthReportGenerator.php +++ b/app/Generator/Report/Audit/MonthReportGenerator.php @@ -31,7 +31,6 @@ use FireflyIII\Models\Account; use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Repositories\Journal\JournalRepositoryInterface; use Illuminate\Support\Collection; -use JetBrains\PhpStorm\ArrayShape; use JsonException; use Log; use Throwable; @@ -87,6 +86,7 @@ class MonthReportGenerator implements ReportGeneratorInterface Log::error(sprintf('Cannot render reports.audit.report: %s', $e->getMessage())); Log::error($e->getTraceAsString()); $result = sprintf('Could not render report view: %s', $e->getMessage()); + throw new FireflyException($result, 0, $e); } return $result; @@ -102,8 +102,7 @@ class MonthReportGenerator implements ReportGeneratorInterface * @throws FireflyException * @throws JsonException */ - #[ArrayShape(['journals' => "array", 'currency' => "mixed", 'exists' => "bool", 'end' => "string", 'endBalance' => "mixed", 'dayBefore' => "string", - 'dayBeforeBalance' => "mixed"])] public function getAuditReport(Account $account, Carbon $date): array + public function getAuditReport(Account $account, Carbon $date): array { /** @var AccountRepositoryInterface $accountRepository */ $accountRepository = app(AccountRepositoryInterface::class); diff --git a/app/Generator/Report/Budget/MonthReportGenerator.php b/app/Generator/Report/Budget/MonthReportGenerator.php index d2387b9de3..9d887a714c 100644 --- a/app/Generator/Report/Budget/MonthReportGenerator.php +++ b/app/Generator/Report/Budget/MonthReportGenerator.php @@ -23,6 +23,7 @@ declare(strict_types=1); namespace FireflyIII\Generator\Report\Budget; use Carbon\Carbon; +use FireflyIII\Exceptions\FireflyException; use FireflyIII\Generator\Report\ReportGeneratorInterface; use FireflyIII\Generator\Report\Support; use FireflyIII\Helpers\Collector\GroupCollectorInterface; @@ -74,6 +75,7 @@ class MonthReportGenerator implements ReportGeneratorInterface } catch (Throwable $e) { Log::error(sprintf('Cannot render reports.account.report: %s', $e->getMessage())); $result = sprintf('Could not render report view: %s', $e->getMessage()); + throw new FireflyException($result, 0, $e); } return $result; diff --git a/app/Generator/Report/Category/MonthReportGenerator.php b/app/Generator/Report/Category/MonthReportGenerator.php index 46cd06752c..855827f0fb 100644 --- a/app/Generator/Report/Category/MonthReportGenerator.php +++ b/app/Generator/Report/Category/MonthReportGenerator.php @@ -23,12 +23,12 @@ declare(strict_types=1); namespace FireflyIII\Generator\Report\Category; use Carbon\Carbon; +use FireflyIII\Exceptions\FireflyException; use FireflyIII\Generator\Report\ReportGeneratorInterface; use FireflyIII\Generator\Report\Support; use FireflyIII\Helpers\Collector\GroupCollectorInterface; use FireflyIII\Models\TransactionType; use Illuminate\Support\Collection; -use JetBrains\PhpStorm\Pure; use Log; use Throwable; @@ -56,7 +56,7 @@ class MonthReportGenerator implements ReportGeneratorInterface /** * MonthReportGenerator constructor. */ - #[Pure] public function __construct() + public function __construct() { $this->income = new Collection(); $this->expenses = new Collection(); @@ -83,6 +83,7 @@ class MonthReportGenerator implements ReportGeneratorInterface } catch (Throwable $e) { Log::error(sprintf('Cannot render reports.category.month: %s', $e->getMessage())); $result = sprintf('Could not render report view: %s', $e->getMessage()); + throw new FireflyException($result, 0, $e); } return $result; diff --git a/app/Generator/Report/Standard/MonthReportGenerator.php b/app/Generator/Report/Standard/MonthReportGenerator.php index 05b01c5a87..f363200f04 100644 --- a/app/Generator/Report/Standard/MonthReportGenerator.php +++ b/app/Generator/Report/Standard/MonthReportGenerator.php @@ -23,6 +23,7 @@ declare(strict_types=1); namespace FireflyIII\Generator\Report\Standard; use Carbon\Carbon; +use FireflyIII\Exceptions\FireflyException; use FireflyIII\Generator\Report\ReportGeneratorInterface; use Illuminate\Support\Collection; use Log; @@ -57,6 +58,7 @@ class MonthReportGenerator implements ReportGeneratorInterface } catch (Throwable $e) { Log::error(sprintf('Cannot render reports.default.month: %s', $e->getMessage())); $result = 'Could not render report view.'; + throw new FireflyException($result, 0, $e); } return $result; diff --git a/app/Generator/Report/Standard/MultiYearReportGenerator.php b/app/Generator/Report/Standard/MultiYearReportGenerator.php index 6cf1c46e00..de612e249e 100644 --- a/app/Generator/Report/Standard/MultiYearReportGenerator.php +++ b/app/Generator/Report/Standard/MultiYearReportGenerator.php @@ -23,6 +23,7 @@ declare(strict_types=1); namespace FireflyIII\Generator\Report\Standard; use Carbon\Carbon; +use FireflyIII\Exceptions\FireflyException; use FireflyIII\Generator\Report\ReportGeneratorInterface; use Illuminate\Support\Collection; use Log; @@ -61,6 +62,7 @@ class MultiYearReportGenerator implements ReportGeneratorInterface } catch (Throwable $e) { Log::error(sprintf('Cannot render reports.default.multi-year: %s', $e->getMessage())); $result = sprintf('Could not render report view: %s', $e->getMessage()); + throw new FireflyException($result, 0, $e); } return $result; diff --git a/app/Generator/Report/Standard/YearReportGenerator.php b/app/Generator/Report/Standard/YearReportGenerator.php index 1df6c8a668..ca35712266 100644 --- a/app/Generator/Report/Standard/YearReportGenerator.php +++ b/app/Generator/Report/Standard/YearReportGenerator.php @@ -23,6 +23,7 @@ declare(strict_types=1); namespace FireflyIII\Generator\Report\Standard; use Carbon\Carbon; +use FireflyIII\Exceptions\FireflyException; use FireflyIII\Generator\Report\ReportGeneratorInterface; use Illuminate\Support\Collection; use Log; @@ -61,6 +62,7 @@ class YearReportGenerator implements ReportGeneratorInterface } catch (Throwable $e) { Log::error(sprintf('Cannot render reports.account.report: %s', $e->getMessage())); $result = 'Could not render report view.'; + throw new FireflyException($result, 0, $e); } return $result; diff --git a/app/Generator/Report/Tag/MonthReportGenerator.php b/app/Generator/Report/Tag/MonthReportGenerator.php index e9519eb90b..99dd470ec7 100644 --- a/app/Generator/Report/Tag/MonthReportGenerator.php +++ b/app/Generator/Report/Tag/MonthReportGenerator.php @@ -24,10 +24,10 @@ declare(strict_types=1); namespace FireflyIII\Generator\Report\Tag; use Carbon\Carbon; +use FireflyIII\Exceptions\FireflyException; use FireflyIII\Generator\Report\ReportGeneratorInterface; use FireflyIII\Generator\Report\Support; use Illuminate\Support\Collection; -use JetBrains\PhpStorm\Pure; use Log; use Throwable; @@ -54,7 +54,7 @@ class MonthReportGenerator implements ReportGeneratorInterface /** * MonthReportGenerator constructor. */ - #[Pure] public function __construct() + public function __construct() { $this->expenses = new Collection(); $this->income = new Collection(); @@ -81,6 +81,7 @@ class MonthReportGenerator implements ReportGeneratorInterface } catch (Throwable $e) { Log::error(sprintf('Cannot render reports.tag.month: %s', $e->getMessage())); $result = sprintf('Could not render report view: %s', $e->getMessage()); + throw new FireflyException($result, 0, $e); } return $result; diff --git a/app/Handlers/Events/UserEventHandler.php b/app/Handlers/Events/UserEventHandler.php index 88840b37ea..2d2d377ba1 100644 --- a/app/Handlers/Events/UserEventHandler.php +++ b/app/Handlers/Events/UserEventHandler.php @@ -91,6 +91,7 @@ class UserEventHandler Mail::to($invitee)->send(new InvitationMail($invitee, $admin, $url)); } catch (Exception $e) { Log::error($e->getMessage()); + throw new FireflyException($e->getMessage(), 0, $e); } } @@ -247,6 +248,7 @@ class UserEventHandler Mail::to($newEmail)->send(new ConfirmEmailChangeMail($newEmail, $oldEmail, $url)); } catch (Exception $e) { Log::error($e->getMessage()); + throw new FireflyException($e->getMessage(), 0, $e); } } @@ -270,6 +272,7 @@ class UserEventHandler Mail::to($oldEmail)->send(new UndoEmailChangeMail($newEmail, $oldEmail, $url)); } catch (Exception $e) { Log::error($e->getMessage()); + throw new FireflyException($e->getMessage(), 0, $e); } } diff --git a/app/Helpers/Collector/GroupCollector.php b/app/Helpers/Collector/GroupCollector.php index 40a2e0cb82..e7f86f0bd2 100644 --- a/app/Helpers/Collector/GroupCollector.php +++ b/app/Helpers/Collector/GroupCollector.php @@ -27,6 +27,7 @@ use Carbon\Carbon; use Carbon\Exceptions\InvalidDateException; use Closure; use Exception; +use FireflyIII\Exceptions\FireflyException; use FireflyIII\Helpers\Collector\Extensions\AccountCollection; use FireflyIII\Helpers\Collector\Extensions\AmountCollection; use FireflyIII\Helpers\Collector\Extensions\AttachmentCollection; @@ -574,6 +575,7 @@ class GroupCollector implements GroupCollectorInterface $result['updated_at']->setTimezone(config('app.timezone')); } catch (Exception $e) { Log::error($e->getMessage()); + throw new FireflyException($e->getMessage(), 0, $e); } // try to process meta date value (if present) diff --git a/app/Http/Controllers/Json/FrontpageController.php b/app/Http/Controllers/Json/FrontpageController.php index 596c878d8c..d0c4008686 100644 --- a/app/Http/Controllers/Json/FrontpageController.php +++ b/app/Http/Controllers/Json/FrontpageController.php @@ -22,6 +22,7 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Json; +use FireflyIII\Exceptions\FireflyException; use FireflyIII\Http\Controllers\Controller; use FireflyIII\Models\PiggyBank; use FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface; @@ -73,6 +74,7 @@ class FrontpageController extends Controller } catch (Throwable $e) { Log::error(sprintf('Cannot render json.piggy-banks: %s', $e->getMessage())); $html = 'Could not render view.'; + throw new FireflyException($html, 0, $e); } } diff --git a/app/Http/Controllers/Json/ReconcileController.php b/app/Http/Controllers/Json/ReconcileController.php index 3219be4901..c8ad9782ed 100644 --- a/app/Http/Controllers/Json/ReconcileController.php +++ b/app/Http/Controllers/Json/ReconcileController.php @@ -164,6 +164,7 @@ class ReconcileController extends Controller } catch (Throwable $e) { Log::debug(sprintf('View error: %s', $e->getMessage())); $view = sprintf('Could not render accounts.reconcile.overview: %s', $e->getMessage()); + throw new FireflyException($view, 0, $e); } $return = [ @@ -264,6 +265,7 @@ class ReconcileController extends Controller } catch (Throwable $e) { Log::debug(sprintf('Could not render: %s', $e->getMessage())); $html = sprintf('Could not render accounts.reconcile.transactions: %s', $e->getMessage()); + throw new FireflyException($html, 0, $e); } return response()->json(['html' => $html, 'startBalance' => $startBalance, 'endBalance' => $endBalance]); diff --git a/app/Http/Controllers/Json/RuleController.php b/app/Http/Controllers/Json/RuleController.php index 2c2fd4ec20..ed419b65ca 100644 --- a/app/Http/Controllers/Json/RuleController.php +++ b/app/Http/Controllers/Json/RuleController.php @@ -23,6 +23,7 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Json; +use FireflyIII\Exceptions\FireflyException; use FireflyIII\Http\Controllers\Controller; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; @@ -54,6 +55,7 @@ class RuleController extends Controller } catch (Throwable $e) { Log::error(sprintf('Cannot render rules.partials.action: %s', $e->getMessage())); $view = 'Could not render view.'; + throw new FireflyException($view, 0, $e); } return response()->json(['html' => $view]); @@ -83,6 +85,7 @@ class RuleController extends Controller } catch (Throwable $e) { Log::error(sprintf('Cannot render rules.partials.trigger: %s', $e->getMessage())); $view = 'Could not render view.'; + throw new FireflyException($view, 0, $e); } return response()->json(['html' => $view]); diff --git a/app/Http/Controllers/Report/AccountController.php b/app/Http/Controllers/Report/AccountController.php index 702d2245a4..f174aa744a 100644 --- a/app/Http/Controllers/Report/AccountController.php +++ b/app/Http/Controllers/Report/AccountController.php @@ -23,6 +23,7 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Report; use Carbon\Carbon; +use FireflyIII\Exceptions\FireflyException; use FireflyIII\Http\Controllers\Controller; use FireflyIII\Repositories\Account\AccountTaskerInterface; use FireflyIII\Support\CacheProperties; @@ -65,6 +66,7 @@ class AccountController extends Controller } catch (Throwable $e) { Log::debug(sprintf('Could not render reports.partials.accounts: %s', $e->getMessage())); $result = 'Could not render view.'; + throw new FireflyException($result, 0, $e); } $cache->store($result); diff --git a/app/Http/Controllers/Report/BalanceController.php b/app/Http/Controllers/Report/BalanceController.php index 5c3b39fcd3..8fe3c635cb 100644 --- a/app/Http/Controllers/Report/BalanceController.php +++ b/app/Http/Controllers/Report/BalanceController.php @@ -23,6 +23,7 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Report; use Carbon\Carbon; +use FireflyIII\Exceptions\FireflyException; use FireflyIII\Helpers\Collector\GroupCollectorInterface; use FireflyIII\Http\Controllers\Controller; use FireflyIII\Models\Account; @@ -140,6 +141,7 @@ class BalanceController extends Controller } catch (Throwable $e) { Log::debug(sprintf('Could not render reports.partials.balance: %s', $e->getMessage())); $result = 'Could not render view.'; + throw new FireflyException($result, 0, $e); } return $result; diff --git a/app/Http/Controllers/Report/BillController.php b/app/Http/Controllers/Report/BillController.php index 0945cfbdca..934aa4b7ab 100644 --- a/app/Http/Controllers/Report/BillController.php +++ b/app/Http/Controllers/Report/BillController.php @@ -24,6 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Report; use Carbon\Carbon; +use FireflyIII\Exceptions\FireflyException; use FireflyIII\Helpers\Report\ReportHelperInterface; use FireflyIII\Http\Controllers\Controller; use FireflyIII\Support\CacheProperties; @@ -62,6 +63,7 @@ class BillController extends Controller } catch (Throwable $e) { Log::debug(sprintf('Could not render reports.partials.budgets: %s', $e->getMessage())); $result = 'Could not render view.'; + throw new FireflyException($result, 0, $e); } $cache->store($result); diff --git a/app/Http/Controllers/Report/BudgetController.php b/app/Http/Controllers/Report/BudgetController.php index 32fcb4afbb..2d953c1c39 100644 --- a/app/Http/Controllers/Report/BudgetController.php +++ b/app/Http/Controllers/Report/BudgetController.php @@ -23,6 +23,7 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Report; use Carbon\Carbon; +use FireflyIII\Exceptions\FireflyException; use FireflyIII\Http\Controllers\Controller; use FireflyIII\Models\Account; use FireflyIII\Models\Budget; @@ -201,6 +202,7 @@ class BudgetController extends Controller } catch (Throwable $e) { Log::debug(sprintf('Could not render reports.partials.budget-period: %s', $e->getMessage())); $result = sprintf('Could not render view: %s', $e->getMessage()); + throw new FireflyException($result, 0, $e); } return $result; @@ -356,6 +358,8 @@ class BudgetController extends Controller } catch (Throwable $e) { Log::debug(sprintf('Could not render reports.partials.budget-period: %s', $e->getMessage())); $result = 'Could not render view.'; + throw new FireflyException($result, 0, $e); + } $cache->store($result); @@ -407,6 +411,7 @@ class BudgetController extends Controller } catch (Throwable $e) { Log::debug(sprintf('Could not render reports.partials.budget-period: %s', $e->getMessage())); $result = sprintf('Could not render view: %s', $e->getMessage()); + throw new FireflyException($result, 0, $e); } return $result; diff --git a/app/Http/Controllers/Report/CategoryController.php b/app/Http/Controllers/Report/CategoryController.php index 1e7a4ee926..f4e8fdc4f6 100644 --- a/app/Http/Controllers/Report/CategoryController.php +++ b/app/Http/Controllers/Report/CategoryController.php @@ -23,6 +23,7 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Report; use Carbon\Carbon; +use FireflyIII\Exceptions\FireflyException; use FireflyIII\Http\Controllers\Controller; use FireflyIII\Models\Account; use FireflyIII\Models\Category; @@ -315,6 +316,7 @@ class CategoryController extends Controller } catch (Throwable $e) { Log::debug(sprintf('Could not render reports.partials.budget-period: %s', $e->getMessage())); $result = sprintf('Could not render view: %s', $e->getMessage()); + throw new FireflyException($result, 0, $e); } return $result; @@ -366,6 +368,7 @@ class CategoryController extends Controller } catch (Throwable $e) { Log::debug(sprintf('Could not render reports.partials.budget-period: %s', $e->getMessage())); $result = sprintf('Could not render view: %s', $e->getMessage()); + throw new FireflyException($result, 0, $e); } return $result; @@ -550,6 +553,7 @@ class CategoryController extends Controller } catch (Throwable $e) { Log::error(sprintf('Could not render category::expenses: %s', $e->getMessage())); $result = sprintf('An error prevented Firefly III from rendering: %s. Apologies.', $e->getMessage()); + throw new FireflyException($result, 0, $e); } @@ -629,6 +633,7 @@ class CategoryController extends Controller } catch (Throwable $e) { Log::error(sprintf('Could not render category::expenses: %s', $e->getMessage())); $result = sprintf('An error prevented Firefly III from rendering: %s. Apologies.', $e->getMessage()); + throw new FireflyException($result, 0, $e); } @@ -673,6 +678,7 @@ class CategoryController extends Controller } catch (Throwable $e) { Log::error(sprintf('Could not render category::expenses: %s', $e->getMessage())); $result = sprintf('An error prevented Firefly III from rendering: %s. Apologies.', $e->getMessage()); + throw new FireflyException($result, 0, $e); } return $result; @@ -722,6 +728,7 @@ class CategoryController extends Controller } catch (Throwable $e) { Log::debug(sprintf('Could not render reports.partials.budget-period: %s', $e->getMessage())); $result = sprintf('Could not render view: %s', $e->getMessage()); + throw new FireflyException($result, 0, $e); } return $result; @@ -771,6 +778,7 @@ class CategoryController extends Controller } catch (Throwable $e) { Log::debug(sprintf('Could not render reports.partials.budget-period: %s', $e->getMessage())); $result = sprintf('Could not render view: %s', $e->getMessage()); + throw new FireflyException($result, 0, $e); } return $result; diff --git a/app/Http/Controllers/Report/DoubleController.php b/app/Http/Controllers/Report/DoubleController.php index 5d5c63cd3f..413a2e5914 100644 --- a/app/Http/Controllers/Report/DoubleController.php +++ b/app/Http/Controllers/Report/DoubleController.php @@ -23,6 +23,7 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Report; use Carbon\Carbon; +use FireflyIII\Exceptions\FireflyException; use FireflyIII\Http\Controllers\Controller; use FireflyIII\Models\Account; use FireflyIII\Repositories\Account\AccountRepositoryInterface; @@ -114,6 +115,7 @@ class DoubleController extends Controller } catch (Throwable $e) { Log::debug(sprintf('Could not render reports.partials.budget-period: %s', $e->getMessage())); $result = sprintf('Could not render view: %s', $e->getMessage()); + throw new FireflyException($result, 0, $e); } return $result; @@ -165,6 +167,7 @@ class DoubleController extends Controller } catch (Throwable $e) { Log::debug(sprintf('Could not render reports.partials.budget-period: %s', $e->getMessage())); $result = sprintf('Could not render view: %s', $e->getMessage()); + throw new FireflyException($result, 0, $e); } return $result; @@ -458,6 +461,7 @@ class DoubleController extends Controller } catch (Throwable $e) { Log::debug(sprintf('Could not render reports.partials.budget-period: %s', $e->getMessage())); $result = sprintf('Could not render view: %s', $e->getMessage()); + throw new FireflyException($result, 0, $e); } return $result; @@ -507,6 +511,7 @@ class DoubleController extends Controller } catch (Throwable $e) { Log::debug(sprintf('Could not render reports.partials.budget-period: %s', $e->getMessage())); $result = sprintf('Could not render view: %s', $e->getMessage()); + throw new FireflyException($result, 0, $e); } return $result; diff --git a/app/Http/Controllers/Report/OperationsController.php b/app/Http/Controllers/Report/OperationsController.php index b662216253..722e4820dc 100644 --- a/app/Http/Controllers/Report/OperationsController.php +++ b/app/Http/Controllers/Report/OperationsController.php @@ -23,6 +23,7 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Report; use Carbon\Carbon; +use FireflyIII\Exceptions\FireflyException; use FireflyIII\Http\Controllers\Controller; use FireflyIII\Repositories\Account\AccountTaskerInterface; use FireflyIII\Support\CacheProperties; @@ -85,6 +86,7 @@ class OperationsController extends Controller } catch (Throwable $e) { Log::debug(sprintf('Could not render reports.partials.income-expense: %s', $e->getMessage())); $result = 'Could not render view.'; + throw new FireflyException($result, 0, $e); } $cache->store($result); @@ -119,6 +121,7 @@ class OperationsController extends Controller } catch (Throwable $e) { Log::debug(sprintf('Could not render reports.partials.income-expenses: %s', $e->getMessage())); $result = 'Could not render view.'; + throw new FireflyException($result, 0, $e); } $cache->store($result); @@ -173,6 +176,7 @@ class OperationsController extends Controller } catch (Throwable $e) { Log::debug(sprintf('Could not render reports.partials.operations: %s', $e->getMessage())); $result = 'Could not render view.'; + throw new FireflyException($result, 0, $e); } $cache->store($result); diff --git a/app/Http/Controllers/Report/TagController.php b/app/Http/Controllers/Report/TagController.php index 50f12385af..9fb3828453 100644 --- a/app/Http/Controllers/Report/TagController.php +++ b/app/Http/Controllers/Report/TagController.php @@ -24,6 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Report; use Carbon\Carbon; +use FireflyIII\Exceptions\FireflyException; use FireflyIII\Http\Controllers\Controller; use FireflyIII\Models\Account; use FireflyIII\Models\Tag; @@ -308,6 +309,7 @@ class TagController extends Controller } catch (Throwable $e) { Log::debug(sprintf('Could not render reports.partials.budget-period: %s', $e->getMessage())); $result = sprintf('Could not render view: %s', $e->getMessage()); + throw new FireflyException($result, 0, $e); } return $result; @@ -359,6 +361,7 @@ class TagController extends Controller } catch (Throwable $e) { Log::debug(sprintf('Could not render reports.partials.budget-period: %s', $e->getMessage())); $result = sprintf('Could not render view: %s', $e->getMessage()); + throw new FireflyException($result, 0, $e); } return $result; @@ -516,6 +519,7 @@ class TagController extends Controller } catch (Throwable $e) { Log::debug(sprintf('Could not render reports.partials.budget-period: %s', $e->getMessage())); $result = sprintf('Could not render view: %s', $e->getMessage()); + throw new FireflyException($result, 0, $e); } return $result; @@ -565,6 +569,7 @@ class TagController extends Controller } catch (Throwable $e) { Log::debug(sprintf('Could not render reports.partials.budget-period: %s', $e->getMessage())); $result = sprintf('Could not render view: %s', $e->getMessage()); + throw new FireflyException($result, 0, $e); } return $result; diff --git a/app/Http/Controllers/Rule/EditController.php b/app/Http/Controllers/Rule/EditController.php index e220f86f6c..29639db9ae 100644 --- a/app/Http/Controllers/Rule/EditController.php +++ b/app/Http/Controllers/Rule/EditController.php @@ -23,6 +23,7 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Rule; +use FireflyIII\Exceptions\FireflyException; use FireflyIII\Http\Controllers\Controller; use FireflyIII\Http\Requests\RuleFormRequest; use FireflyIII\Models\Rule; @@ -171,6 +172,7 @@ class EditController extends Controller } catch (Throwable $e) { Log::debug(sprintf('Throwable was thrown in getPreviousTriggers(): %s', $e->getMessage())); Log::error($e->getTraceAsString()); + throw new FireflyException($result, 0, $e); } $index++; } diff --git a/app/Http/Controllers/Rule/SelectController.php b/app/Http/Controllers/Rule/SelectController.php index 2e51880f6c..4ba09d2dc9 100644 --- a/app/Http/Controllers/Rule/SelectController.php +++ b/app/Http/Controllers/Rule/SelectController.php @@ -24,6 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Rule; use Carbon\Carbon; +use FireflyIII\Exceptions\FireflyException; use FireflyIII\Http\Controllers\Controller; use FireflyIII\Http\Requests\SelectTransactionsRequest; use FireflyIII\Http\Requests\TestRuleFormRequest; @@ -180,6 +181,7 @@ class SelectController extends Controller Log::error(sprintf('Could not render view in testTriggers(): %s', $exception->getMessage())); Log::error($exception->getTraceAsString()); $view = sprintf('Could not render list.journals-tiny: %s', $exception->getMessage()); + throw new FireflyException($view, 0, $exception); } return response()->json(['html' => $view, 'warning' => $warning]); @@ -219,8 +221,10 @@ class SelectController extends Controller try { $view = view('list.journals-array-tiny', ['groups' => $collection])->render(); } catch (Throwable $exception) { - Log::error(sprintf('Could not render view in testTriggersByRule(): %s', $exception->getMessage())); + $message = sprintf('Could not render view in testTriggersByRule(): %s', $exception->getMessage()); + Log::error($message); Log::error($exception->getTraceAsString()); + throw new FireflyException($message, 0, $exception); } return response()->json(['html' => $view, 'warning' => $warning]); diff --git a/app/Http/Controllers/SearchController.php b/app/Http/Controllers/SearchController.php index 8f5eae2501..579c0f150b 100644 --- a/app/Http/Controllers/SearchController.php +++ b/app/Http/Controllers/SearchController.php @@ -22,6 +22,7 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers; +use FireflyIII\Exceptions\FireflyException; use FireflyIII\Repositories\Rule\RuleRepositoryInterface; use FireflyIII\Support\Search\SearchInterface; use Illuminate\Contracts\View\Factory; @@ -122,6 +123,7 @@ class SearchController extends Controller } catch (Throwable $e) { Log::error(sprintf('Cannot render search.search: %s', $e->getMessage())); $html = 'Could not render view.'; + throw new FireflyException($html, 0, $e); } return response()->json(['count' => $groups->count(), 'html' => $html]); diff --git a/app/Http/Controllers/Transaction/BulkController.php b/app/Http/Controllers/Transaction/BulkController.php index e946b1b03c..2f20179698 100644 --- a/app/Http/Controllers/Transaction/BulkController.php +++ b/app/Http/Controllers/Transaction/BulkController.php @@ -124,7 +124,7 @@ class BulkController extends Controller // run rules on changed journals: /** @var TransactionJournal $journal */ foreach ($collection as $journal) { - event(new UpdatedTransactionGroup($journal->transactionGroup)); + event(new UpdatedTransactionGroup($journal->transactionGroup, true, true)); } app('preferences')->mark(); diff --git a/app/Http/Controllers/Transaction/ConvertController.php b/app/Http/Controllers/Transaction/ConvertController.php index 31785e03a2..78ee0fda5b 100644 --- a/app/Http/Controllers/Transaction/ConvertController.php +++ b/app/Http/Controllers/Transaction/ConvertController.php @@ -302,7 +302,7 @@ class ConvertController extends Controller $group->refresh(); session()->flash('success', (string) trans('firefly.converted_to_' . $destinationType->type)); - event(new UpdatedTransactionGroup($group)); + event(new UpdatedTransactionGroup($group, true, true)); return redirect(route('transactions.show', [$group->id])); } diff --git a/app/Http/Controllers/Transaction/CreateController.php b/app/Http/Controllers/Transaction/CreateController.php index becc4d6614..53cc071651 100644 --- a/app/Http/Controllers/Transaction/CreateController.php +++ b/app/Http/Controllers/Transaction/CreateController.php @@ -77,7 +77,7 @@ class CreateController extends Controller $newGroup = $service->cloneGroup($group); // event! - event(new StoredTransactionGroup($newGroup)); + event(new StoredTransactionGroup($newGroup, true, true)); app('preferences')->mark(); diff --git a/app/Http/Controllers/Transaction/MassController.php b/app/Http/Controllers/Transaction/MassController.php index cd7bc054fe..f071688813 100644 --- a/app/Http/Controllers/Transaction/MassController.php +++ b/app/Http/Controllers/Transaction/MassController.php @@ -223,7 +223,7 @@ class MassController extends Controller $service->setData($data); $service->update(); // trigger rules - event(new UpdatedTransactionGroup($journal->transactionGroup)); + event(new UpdatedTransactionGroup($journal->transactionGroup, true, true)); } /** diff --git a/app/Jobs/CreateRecurringTransactions.php b/app/Jobs/CreateRecurringTransactions.php index d66eee36d9..27c81b3076 100644 --- a/app/Jobs/CreateRecurringTransactions.php +++ b/app/Jobs/CreateRecurringTransactions.php @@ -407,7 +407,7 @@ class CreateRecurringTransactions implements ShouldQueue Log::info(sprintf('Created new transaction group #%d', $group->id)); // trigger event: - event(new StoredTransactionGroup($group, $recurrence->apply_rules)); + event(new StoredTransactionGroup($group, $recurrence->apply_rules, true)); // update recurring thing: $recurrence->latest_date = $date; diff --git a/app/Support/ExpandedForm.php b/app/Support/ExpandedForm.php index c60fcd9848..29dba255e6 100644 --- a/app/Support/ExpandedForm.php +++ b/app/Support/ExpandedForm.php @@ -24,6 +24,7 @@ namespace FireflyIII\Support; use Amount as Amt; use Eloquent; +use FireflyIII\Exceptions\FireflyException; use FireflyIII\Support\Form\FormSupport; use Illuminate\Support\Collection; use Log; @@ -66,6 +67,7 @@ class ExpandedForm } catch (Throwable $e) { Log::error(sprintf('Could not render amountNoCurrency(): %s', $e->getMessage())); $html = 'Could not render amountNoCurrency.'; + throw new FireflyException($html, 0, $e); } return $html; @@ -101,6 +103,7 @@ class ExpandedForm } catch (Throwable $e) { Log::debug(sprintf('Could not render checkbox(): %s', $e->getMessage())); $html = 'Could not render checkbox.'; + throw new FireflyException($html, 0, $e); } return $html; @@ -125,6 +128,7 @@ class ExpandedForm } catch (Throwable $e) { Log::debug(sprintf('Could not render date(): %s', $e->getMessage())); $html = 'Could not render date.'; + throw new FireflyException($html, 0, $e); } return $html; @@ -147,6 +151,7 @@ class ExpandedForm } catch (Throwable $e) { Log::debug(sprintf('Could not render file(): %s', $e->getMessage())); $html = 'Could not render file.'; + throw new FireflyException($html, 0, $e); } return $html; @@ -172,6 +177,7 @@ class ExpandedForm } catch (Throwable $e) { Log::debug(sprintf('Could not render integer(): %s', $e->getMessage())); $html = 'Could not render integer.'; + throw new FireflyException($html, 0, $e); } return $html; @@ -196,6 +202,7 @@ class ExpandedForm } catch (Throwable $e) { Log::debug(sprintf('Could not render location(): %s', $e->getMessage())); $html = 'Could not render location.'; + throw new FireflyException($html, 0, $e); } return $html; @@ -254,6 +261,7 @@ class ExpandedForm } catch (Throwable $e) { Log::debug(sprintf('Could not render nonSelectableAmount(): %s', $e->getMessage())); $html = 'Could not render nonSelectableAmount.'; + throw new FireflyException($html, 0, $e); } return $html; @@ -279,6 +287,7 @@ class ExpandedForm } catch (Throwable $e) { Log::debug(sprintf('Could not render number(): %s', $e->getMessage())); $html = 'Could not render number.'; + throw new FireflyException($html, 0, $e); } return $html; @@ -308,6 +317,7 @@ class ExpandedForm } catch (Throwable $e) { Log::debug(sprintf('Could not render objectGroup(): %s', $e->getMessage())); $html = 'Could not render objectGroup.'; + throw new FireflyException($html, 0, $e); } return $html; @@ -327,6 +337,7 @@ class ExpandedForm } catch (Throwable $e) { Log::debug(sprintf('Could not render select(): %s', $e->getMessage())); $html = 'Could not render optionsList.'; + throw new FireflyException($html, 0, $e); } return $html; @@ -348,6 +359,7 @@ class ExpandedForm } catch (Throwable $e) { Log::debug(sprintf('Could not render password(): %s', $e->getMessage())); $html = 'Could not render password.'; + throw new FireflyException($html, 0, $e); } return $html; @@ -375,6 +387,7 @@ class ExpandedForm } catch (Throwable $e) { Log::debug(sprintf('Could not render percentage(): %s', $e->getMessage())); $html = 'Could not render percentage.'; + throw new FireflyException($html, 0, $e); } return $html; @@ -397,6 +410,7 @@ class ExpandedForm } catch (Throwable $e) { Log::debug(sprintf('Could not render staticText(): %s', $e->getMessage())); $html = 'Could not render staticText.'; + throw new FireflyException($html, 0, $e); } return $html; @@ -420,6 +434,7 @@ class ExpandedForm } catch (Throwable $e) { Log::debug(sprintf('Could not render text(): %s', $e->getMessage())); $html = 'Could not render text.'; + throw new FireflyException($html, 0, $e); } return $html; @@ -449,6 +464,7 @@ class ExpandedForm } catch (Throwable $e) { Log::debug(sprintf('Could not render textarea(): %s', $e->getMessage())); $html = 'Could not render textarea.'; + throw new FireflyException($html, 0, $e); } return $html; diff --git a/app/Support/Form/AccountForm.php b/app/Support/Form/AccountForm.php index f0dec513fa..e1253809e7 100644 --- a/app/Support/Form/AccountForm.php +++ b/app/Support/Form/AccountForm.php @@ -23,6 +23,7 @@ declare(strict_types=1); namespace FireflyIII\Support\Form; +use FireflyIII\Exceptions\FireflyException; use FireflyIII\Models\Account; use FireflyIII\Models\AccountType; use FireflyIII\Repositories\Account\AccountRepositoryInterface; @@ -140,6 +141,7 @@ class AccountForm } catch (Throwable $e) { Log::debug(sprintf('Could not render assetAccountCheckList(): %s', $e->getMessage())); $html = 'Could not render assetAccountCheckList.'; + throw new FireflyException($html, 0, $e); } return $html; diff --git a/app/Support/Form/CurrencyForm.php b/app/Support/Form/CurrencyForm.php index 5a8d95f5cd..ade0725c71 100644 --- a/app/Support/Form/CurrencyForm.php +++ b/app/Support/Form/CurrencyForm.php @@ -24,6 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Support\Form; use Amount as Amt; +use FireflyIII\Exceptions\FireflyException; use FireflyIII\Models\TransactionCurrency; use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface; use Illuminate\Support\Collection; @@ -99,6 +100,7 @@ class CurrencyForm } catch (Throwable $e) { Log::debug(sprintf('Could not render currencyField(): %s', $e->getMessage())); $html = 'Could not render currencyField.'; + throw new FireflyException($html, 0, $e); } return $html; @@ -168,6 +170,7 @@ class CurrencyForm } catch (Throwable $e) { Log::debug(sprintf('Could not render currencyField(): %s', $e->getMessage())); $html = 'Could not render currencyField.'; + throw new FireflyException($html, 0, $e); } return $html; diff --git a/app/Support/Http/Controllers/ModelInformation.php b/app/Support/Http/Controllers/ModelInformation.php index f71e8030db..c186933a76 100644 --- a/app/Support/Http/Controllers/ModelInformation.php +++ b/app/Support/Http/Controllers/ModelInformation.php @@ -23,6 +23,7 @@ declare(strict_types=1); namespace FireflyIII\Support\Http\Controllers; +use FireflyIII\Exceptions\FireflyException; use FireflyIII\Models\AccountType; use FireflyIII\Models\Bill; use FireflyIII\Models\Tag; @@ -61,6 +62,7 @@ trait ModelInformation Log::error(sprintf('Throwable was thrown in getActionsForBill(): %s', $e->getMessage())); Log::error($e->getTraceAsString()); $result = 'Could not render view. See log files.'; + throw new FireflyException($result, 0, $e); } return [$result]; @@ -148,6 +150,7 @@ trait ModelInformation Log::debug(sprintf('Throwable was thrown in getTriggersForBill(): %s', $e->getMessage())); Log::debug($e->getTraceAsString()); $string = ''; + throw new FireflyException('Could not render trigger', 0, $e); } if ('' !== $string) { $result[] = $string; @@ -262,6 +265,7 @@ trait ModelInformation Log::debug(sprintf('Throwable was thrown in getTriggersForJournal(): %s', $e->getMessage())); Log::debug($e->getTraceAsString()); $string = ''; + throw new FireflyException('Could not render trigger', 0, $e); } if ('' !== $string) { $result[] = $string; diff --git a/app/Support/Http/Controllers/RenderPartialViews.php b/app/Support/Http/Controllers/RenderPartialViews.php index 7949ef012f..19817ba2f7 100644 --- a/app/Support/Http/Controllers/RenderPartialViews.php +++ b/app/Support/Http/Controllers/RenderPartialViews.php @@ -23,6 +23,7 @@ declare(strict_types=1); namespace FireflyIII\Support\Http\Controllers; +use FireflyIII\Exceptions\FireflyException; use FireflyIII\Helpers\Report\PopupReportInterface; use FireflyIII\Models\Account; use FireflyIII\Models\AccountType; @@ -70,6 +71,7 @@ trait RenderPartialViews } catch (Throwable $e) { Log::error(sprintf('Could not render: %s', $e->getMessage())); $view = 'Firefly III could not render the view. Please see the log files.'; + throw new FireflyException($view, 0, $e); } return $view; @@ -91,6 +93,7 @@ trait RenderPartialViews } catch (Throwable $e) { Log::error(sprintf('Cannot render reports.options.tag: %s', $e->getMessage())); $result = 'Could not render view.'; + throw new FireflyException($result, 0, $e); } return $result; @@ -122,6 +125,7 @@ trait RenderPartialViews } catch (Throwable $e) { Log::error(sprintf('Could not render: %s', $e->getMessage())); $view = 'Firefly III could not render the view. Please see the log files.'; + throw new FireflyException($view, 0, $e); } return $view; @@ -149,6 +153,7 @@ trait RenderPartialViews } catch (Throwable $e) { Log::error(sprintf('Could not render: %s', $e->getMessage())); $view = 'Firefly III could not render the view. Please see the log files.'; + throw new FireflyException($view, 0, $e); } return $view; @@ -170,6 +175,7 @@ trait RenderPartialViews } catch (Throwable $e) { Log::error(sprintf('Cannot render reports.options.category: %s', $e->getMessage())); $result = 'Could not render view.'; + throw new FireflyException($result, 0, $e); } return $result; @@ -211,6 +217,7 @@ trait RenderPartialViews } catch (Throwable $e) { Log::error(sprintf('Cannot render reports.options.tag: %s', $e->getMessage())); $result = 'Could not render view.'; + throw new FireflyException($result, 0, $e); } return $result; @@ -244,6 +251,7 @@ trait RenderPartialViews } catch (Throwable $e) { Log::error(sprintf('Could not render: %s', $e->getMessage())); $view = 'Firefly III could not render the view. Please see the log files.'; + throw new FireflyException($view, 0, $e); } return $view; @@ -278,6 +286,7 @@ trait RenderPartialViews } catch (Throwable $e) { Log::debug(sprintf('Throwable was thrown in getCurrentActions(): %s', $e->getMessage())); Log::error($e->getTraceAsString()); + throw new FireflyException('Could not render', 0, $e); } ++$index; @@ -332,6 +341,7 @@ trait RenderPartialViews } catch (Throwable $e) { Log::debug(sprintf('Throwable was thrown in getCurrentTriggers(): %s', $e->getMessage())); Log::error($e->getTraceAsString()); + throw new FireflyException('Could not render', 0, $e); } ++$index; @@ -368,6 +378,7 @@ trait RenderPartialViews } catch (Throwable $e) { Log::error(sprintf('Could not render: %s', $e->getMessage())); $view = 'Firefly III could not render the view. Please see the log files.'; + throw new FireflyException($view, 0, $e); } return $view; @@ -385,6 +396,7 @@ trait RenderPartialViews } catch (Throwable $e) { Log::error(sprintf('Cannot render reports.options.no-options: %s', $e->getMessage())); $result = 'Could not render view.'; + throw new FireflyException($result, 0, $e); } return $result; @@ -407,6 +419,7 @@ trait RenderPartialViews } catch (Throwable $e) { Log::error(sprintf('Cannot render reports.options.tag: %s', $e->getMessage())); $result = 'Could not render view.'; + throw new FireflyException($result, 0, $e); } return $result; diff --git a/app/Support/Http/Controllers/RuleManagement.php b/app/Support/Http/Controllers/RuleManagement.php index 20388541af..7803c2edb8 100644 --- a/app/Support/Http/Controllers/RuleManagement.php +++ b/app/Support/Http/Controllers/RuleManagement.php @@ -23,6 +23,7 @@ declare(strict_types=1); namespace FireflyIII\Support\Http\Controllers; +use FireflyIII\Exceptions\FireflyException; use FireflyIII\Repositories\RuleGroup\RuleGroupRepositoryInterface; use FireflyIII\Support\Search\OperatorQuerySearch; use Illuminate\Http\Request; @@ -61,6 +62,7 @@ trait RuleManagement } catch (Throwable $e) { Log::debug(sprintf('Throwable was thrown in getPreviousActions(): %s', $e->getMessage())); Log::error($e->getTraceAsString()); + throw new FireflyException('Could not render', 0, $e); } $index++; } @@ -107,6 +109,7 @@ trait RuleManagement } catch (Throwable $e) { Log::debug(sprintf('Throwable was thrown in getPreviousTriggers(): %s', $e->getMessage())); Log::error($e->getTraceAsString()); + throw new FireflyException('Could not render', 0, $e); } $index++; } @@ -149,6 +152,7 @@ trait RuleManagement } catch (Throwable $e) { Log::debug(sprintf('Throwable was thrown in getPreviousTriggers(): %s', $e->getMessage())); Log::error($e->getTraceAsString()); + throw new FireflyException('Could not render', 0, $e); } $index++; }