From 8eb0313841c373435c5ed7336ed74d58f5c41bfa Mon Sep 17 00:00:00 2001 From: James Cole Date: Sat, 8 Mar 2025 15:10:24 +0100 Subject: [PATCH] Remove references to user group specific repositories and instead use the normal ones. --- .../DestroyController.php | 2 +- .../CurrencyExchangeRate/IndexController.php | 2 +- .../CurrencyExchangeRate/ShowController.php | 2 +- .../CurrencyExchangeRate/StoreController.php | 2 +- .../CurrencyExchangeRate/UpdateController.php | 2 +- .../Autocomplete/AccountController.php | 2 +- .../Autocomplete/CategoryController.php | 2 +- .../Autocomplete/TagController.php | 2 +- .../Autocomplete/TransactionController.php | 2 +- .../Controllers/Chart/AccountController.php | 2 +- .../Controllers/Chart/BalanceController.php | 2 +- .../V2/Controllers/Chart/BudgetController.php | 4 +- .../Controllers/Chart/CategoryController.php | 2 +- .../Model/Account/IndexController.php | 2 +- .../Model/Account/ShowController.php | 2 +- .../Model/Account/UpdateController.php | 2 +- .../Model/Bill/IndexController.php | 2 +- .../Controllers/Model/Bill/ShowController.php | 2 +- .../Controllers/Model/Bill/SumController.php | 2 +- .../Model/PiggyBank/IndexController.php | 2 +- .../Controllers/Summary/BasicController.php | 10 +- .../Summary/NetWorthController.php | 2 +- .../Correction/CorrectsNativeAmounts.php | 2 +- .../Events/PreferencesEventHandler.php | 4 +- app/Handlers/Observer/AccountObserver.php | 2 +- app/Helpers/Report/NetWorth.php | 24 +--- app/Providers/AccountServiceProvider.php | 17 --- app/Providers/BillServiceProvider.php | 17 --- app/Providers/BudgetServiceProvider.php | 45 ------- app/Providers/CategoryServiceProvider.php | 16 --- app/Providers/CurrencyServiceProvider.php | 9 -- app/Providers/JournalServiceProvider.php | 15 --- app/Providers/PiggyBankServiceProvider.php | 15 --- app/Providers/TagServiceProvider.php | 16 --- .../ExchangeRate/ExchangeRateRepository.php | 114 ++++++++++++++++++ .../ExchangeRateRepositoryInterface.php | 44 +++++++ app/Support/Request/ConvertsDataTypes.php | 2 +- app/Transformers/V2/AccountTransformer.php | 2 +- app/Validation/AccountValidator.php | 25 +--- 39 files changed, 202 insertions(+), 221 deletions(-) create mode 100644 app/Repositories/ExchangeRate/ExchangeRateRepository.php create mode 100644 app/Repositories/ExchangeRate/ExchangeRateRepositoryInterface.php diff --git a/app/Api/V1/Controllers/Models/CurrencyExchangeRate/DestroyController.php b/app/Api/V1/Controllers/Models/CurrencyExchangeRate/DestroyController.php index c56dba5cb6..ec6aa38ee9 100644 --- a/app/Api/V1/Controllers/Models/CurrencyExchangeRate/DestroyController.php +++ b/app/Api/V1/Controllers/Models/CurrencyExchangeRate/DestroyController.php @@ -30,7 +30,7 @@ use FireflyIII\Enums\UserRoleEnum; use FireflyIII\Exceptions\ValidationException; use FireflyIII\Models\CurrencyExchangeRate; use FireflyIII\Models\TransactionCurrency; -use FireflyIII\Repositories\UserGroups\ExchangeRate\ExchangeRateRepositoryInterface; +use FireflyIII\Repositories\ExchangeRate\ExchangeRateRepositoryInterface; use FireflyIII\Support\Http\Api\ValidatesUserGroupTrait; use Illuminate\Http\JsonResponse; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; diff --git a/app/Api/V1/Controllers/Models/CurrencyExchangeRate/IndexController.php b/app/Api/V1/Controllers/Models/CurrencyExchangeRate/IndexController.php index d9dcb4a06d..ef88c982b3 100644 --- a/app/Api/V1/Controllers/Models/CurrencyExchangeRate/IndexController.php +++ b/app/Api/V1/Controllers/Models/CurrencyExchangeRate/IndexController.php @@ -25,7 +25,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers\Models\CurrencyExchangeRate; use FireflyIII\Api\V2\Controllers\Controller; -use FireflyIII\Repositories\UserGroups\ExchangeRate\ExchangeRateRepositoryInterface; +use FireflyIII\Repositories\ExchangeRate\ExchangeRateRepositoryInterface; use FireflyIII\Support\Http\Api\ValidatesUserGroupTrait; use FireflyIII\Transformers\V2\ExchangeRateTransformer; use Illuminate\Http\JsonResponse; diff --git a/app/Api/V1/Controllers/Models/CurrencyExchangeRate/ShowController.php b/app/Api/V1/Controllers/Models/CurrencyExchangeRate/ShowController.php index fca243e2c0..d06132370d 100644 --- a/app/Api/V1/Controllers/Models/CurrencyExchangeRate/ShowController.php +++ b/app/Api/V1/Controllers/Models/CurrencyExchangeRate/ShowController.php @@ -27,7 +27,7 @@ namespace FireflyIII\Api\V1\Controllers\Models\CurrencyExchangeRate; use FireflyIII\Api\V2\Controllers\Controller; use FireflyIII\Models\CurrencyExchangeRate; use FireflyIII\Models\TransactionCurrency; -use FireflyIII\Repositories\UserGroups\ExchangeRate\ExchangeRateRepositoryInterface; +use FireflyIII\Repositories\ExchangeRate\ExchangeRateRepositoryInterface; use FireflyIII\Support\Http\Api\ValidatesUserGroupTrait; use FireflyIII\Transformers\V2\ExchangeRateTransformer; use Illuminate\Http\JsonResponse; diff --git a/app/Api/V1/Controllers/Models/CurrencyExchangeRate/StoreController.php b/app/Api/V1/Controllers/Models/CurrencyExchangeRate/StoreController.php index f3e1467e49..e0114242fc 100644 --- a/app/Api/V1/Controllers/Models/CurrencyExchangeRate/StoreController.php +++ b/app/Api/V1/Controllers/Models/CurrencyExchangeRate/StoreController.php @@ -26,7 +26,7 @@ namespace FireflyIII\Api\V1\Controllers\Models\CurrencyExchangeRate; use FireflyIII\Api\V1\Requests\Models\CurrencyExchangeRate\StoreRequest; use FireflyIII\Api\V2\Controllers\Controller; -use FireflyIII\Repositories\UserGroups\ExchangeRate\ExchangeRateRepositoryInterface; +use FireflyIII\Repositories\ExchangeRate\ExchangeRateRepositoryInterface; use FireflyIII\Support\Http\Api\ValidatesUserGroupTrait; use FireflyIII\Transformers\V2\ExchangeRateTransformer; use Illuminate\Http\JsonResponse; diff --git a/app/Api/V1/Controllers/Models/CurrencyExchangeRate/UpdateController.php b/app/Api/V1/Controllers/Models/CurrencyExchangeRate/UpdateController.php index 53fa47be42..ffde6543f7 100644 --- a/app/Api/V1/Controllers/Models/CurrencyExchangeRate/UpdateController.php +++ b/app/Api/V1/Controllers/Models/CurrencyExchangeRate/UpdateController.php @@ -27,7 +27,7 @@ namespace FireflyIII\Api\V1\Controllers\Models\CurrencyExchangeRate; use FireflyIII\Api\V1\Requests\Models\CurrencyExchangeRate\UpdateRequest; use FireflyIII\Api\V2\Controllers\Controller; use FireflyIII\Models\CurrencyExchangeRate; -use FireflyIII\Repositories\UserGroups\ExchangeRate\ExchangeRateRepositoryInterface; +use FireflyIII\Repositories\ExchangeRate\ExchangeRateRepositoryInterface; use FireflyIII\Support\Http\Api\ValidatesUserGroupTrait; use FireflyIII\Transformers\V2\ExchangeRateTransformer; use Illuminate\Http\JsonResponse; diff --git a/app/Api/V2/Controllers/Autocomplete/AccountController.php b/app/Api/V2/Controllers/Autocomplete/AccountController.php index 946828aafb..231ff1504b 100644 --- a/app/Api/V2/Controllers/Autocomplete/AccountController.php +++ b/app/Api/V2/Controllers/Autocomplete/AccountController.php @@ -30,7 +30,7 @@ use FireflyIII\Exceptions\FireflyException; use FireflyIII\Models\Account; use FireflyIII\Models\AccountBalance; use FireflyIII\Models\TransactionCurrency; -use FireflyIII\Repositories\UserGroups\Account\AccountRepositoryInterface; +use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Support\Http\Api\ExchangeRateConverter; use Illuminate\Http\JsonResponse; use Illuminate\Support\Facades\Log; diff --git a/app/Api/V2/Controllers/Autocomplete/CategoryController.php b/app/Api/V2/Controllers/Autocomplete/CategoryController.php index be81418f58..de0d566888 100644 --- a/app/Api/V2/Controllers/Autocomplete/CategoryController.php +++ b/app/Api/V2/Controllers/Autocomplete/CategoryController.php @@ -27,7 +27,7 @@ namespace FireflyIII\Api\V2\Controllers\Autocomplete; use FireflyIII\Api\V2\Controllers\Controller; use FireflyIII\Api\V2\Request\Autocomplete\AutocompleteRequest; use FireflyIII\Models\Category; -use FireflyIII\Repositories\UserGroups\Category\CategoryRepositoryInterface; +use FireflyIII\Repositories\Category\CategoryRepositoryInterface; use Illuminate\Http\JsonResponse; /** diff --git a/app/Api/V2/Controllers/Autocomplete/TagController.php b/app/Api/V2/Controllers/Autocomplete/TagController.php index d1cc4076db..0e06240793 100644 --- a/app/Api/V2/Controllers/Autocomplete/TagController.php +++ b/app/Api/V2/Controllers/Autocomplete/TagController.php @@ -27,7 +27,7 @@ namespace FireflyIII\Api\V2\Controllers\Autocomplete; use FireflyIII\Api\V2\Controllers\Controller; use FireflyIII\Api\V2\Request\Autocomplete\AutocompleteRequest; use FireflyIII\Models\Tag; -use FireflyIII\Repositories\UserGroups\Tag\TagRepositoryInterface; +use FireflyIII\Repositories\Tag\TagRepositoryInterface; use Illuminate\Http\JsonResponse; /** diff --git a/app/Api/V2/Controllers/Autocomplete/TransactionController.php b/app/Api/V2/Controllers/Autocomplete/TransactionController.php index 2eeee9996c..3ff8780201 100644 --- a/app/Api/V2/Controllers/Autocomplete/TransactionController.php +++ b/app/Api/V2/Controllers/Autocomplete/TransactionController.php @@ -27,7 +27,7 @@ namespace FireflyIII\Api\V2\Controllers\Autocomplete; use FireflyIII\Api\V2\Controllers\Controller; use FireflyIII\Api\V2\Request\Autocomplete\AutocompleteRequest; use FireflyIII\Models\TransactionJournal; -use FireflyIII\Repositories\UserGroups\Journal\JournalRepositoryInterface; +use FireflyIII\Repositories\Journal\JournalRepositoryInterface; use Illuminate\Http\JsonResponse; /** diff --git a/app/Api/V2/Controllers/Chart/AccountController.php b/app/Api/V2/Controllers/Chart/AccountController.php index e27f49dfe9..49c59cc26b 100644 --- a/app/Api/V2/Controllers/Chart/AccountController.php +++ b/app/Api/V2/Controllers/Chart/AccountController.php @@ -29,7 +29,7 @@ use FireflyIII\Api\V2\Request\Chart\ChartRequest; use FireflyIII\Exceptions\FireflyException; use FireflyIII\Models\Account; use FireflyIII\Models\TransactionCurrency; -use FireflyIII\Repositories\UserGroups\Account\AccountRepositoryInterface; +use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Support\Chart\ChartData; use FireflyIII\Support\Facades\Steam; use FireflyIII\Support\Http\Api\CleansChartData; diff --git a/app/Api/V2/Controllers/Chart/BalanceController.php b/app/Api/V2/Controllers/Chart/BalanceController.php index d462695bf4..85aec5c6e3 100644 --- a/app/Api/V2/Controllers/Chart/BalanceController.php +++ b/app/Api/V2/Controllers/Chart/BalanceController.php @@ -30,7 +30,7 @@ use FireflyIII\Enums\TransactionTypeEnum; use FireflyIII\Exceptions\FireflyException; use FireflyIII\Helpers\Collector\GroupCollectorInterface; use FireflyIII\Models\TransactionCurrency; -use FireflyIII\Repositories\UserGroups\Account\AccountRepositoryInterface; +use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Support\Chart\ChartData; use FireflyIII\Support\Http\Api\AccountBalanceGrouped; use FireflyIII\Support\Http\Api\CleansChartData; diff --git a/app/Api/V2/Controllers/Chart/BudgetController.php b/app/Api/V2/Controllers/Chart/BudgetController.php index 3f730c587e..424ef0a02e 100644 --- a/app/Api/V2/Controllers/Chart/BudgetController.php +++ b/app/Api/V2/Controllers/Chart/BudgetController.php @@ -32,8 +32,8 @@ use FireflyIII\Models\Budget; use FireflyIII\Models\BudgetLimit; use FireflyIII\Models\TransactionCurrency; use FireflyIII\Repositories\Budget\BudgetLimitRepositoryInterface; -use FireflyIII\Repositories\UserGroups\Budget\BudgetRepositoryInterface; -use FireflyIII\Repositories\UserGroups\Budget\OperationsRepositoryInterface; +use FireflyIII\Repositories\Budget\BudgetRepositoryInterface; +use FireflyIII\Repositories\Budget\OperationsRepositoryInterface; use FireflyIII\Support\Http\Api\CleansChartData; use FireflyIII\Support\Http\Api\ExchangeRateConverter; use FireflyIII\Support\Http\Api\ValidatesUserGroupTrait; diff --git a/app/Api/V2/Controllers/Chart/CategoryController.php b/app/Api/V2/Controllers/Chart/CategoryController.php index 20ca5fc27f..0a0639a94c 100644 --- a/app/Api/V2/Controllers/Chart/CategoryController.php +++ b/app/Api/V2/Controllers/Chart/CategoryController.php @@ -31,7 +31,7 @@ use FireflyIII\Enums\AccountTypeEnum; use FireflyIII\Enums\TransactionTypeEnum; use FireflyIII\Exceptions\FireflyException; use FireflyIII\Helpers\Collector\GroupCollectorInterface; -use FireflyIII\Repositories\UserGroups\Account\AccountRepositoryInterface; +use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface; use FireflyIII\Support\Http\Api\CleansChartData; use FireflyIII\Support\Http\Api\ExchangeRateConverter; diff --git a/app/Api/V2/Controllers/Model/Account/IndexController.php b/app/Api/V2/Controllers/Model/Account/IndexController.php index 7fa619db0e..4f09b12828 100644 --- a/app/Api/V2/Controllers/Model/Account/IndexController.php +++ b/app/Api/V2/Controllers/Model/Account/IndexController.php @@ -27,7 +27,7 @@ namespace FireflyIII\Api\V2\Controllers\Model\Account; use FireflyIII\Api\V2\Controllers\Controller; use FireflyIII\Api\V2\Request\Model\Account\IndexRequest; use FireflyIII\Enums\UserRoleEnum; -use FireflyIII\Repositories\UserGroups\Account\AccountRepositoryInterface; +use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Transformers\V2\AccountTransformer; use Illuminate\Http\JsonResponse; use Illuminate\Pagination\LengthAwarePaginator; diff --git a/app/Api/V2/Controllers/Model/Account/ShowController.php b/app/Api/V2/Controllers/Model/Account/ShowController.php index 4e7cbc218b..9849d3b3c0 100644 --- a/app/Api/V2/Controllers/Model/Account/ShowController.php +++ b/app/Api/V2/Controllers/Model/Account/ShowController.php @@ -27,7 +27,7 @@ namespace FireflyIII\Api\V2\Controllers\Model\Account; use FireflyIII\Api\V2\Controllers\Controller; use FireflyIII\Enums\UserRoleEnum; use FireflyIII\Models\Account; -use FireflyIII\Repositories\UserGroups\Account\AccountRepositoryInterface; +use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Transformers\V2\AccountTransformer; use Illuminate\Http\JsonResponse; diff --git a/app/Api/V2/Controllers/Model/Account/UpdateController.php b/app/Api/V2/Controllers/Model/Account/UpdateController.php index e097b2fd63..8246b74cd2 100644 --- a/app/Api/V2/Controllers/Model/Account/UpdateController.php +++ b/app/Api/V2/Controllers/Model/Account/UpdateController.php @@ -27,7 +27,7 @@ namespace FireflyIII\Api\V2\Controllers\Model\Account; use FireflyIII\Api\V2\Controllers\Controller; use FireflyIII\Api\V2\Request\Model\Account\UpdateRequest; use FireflyIII\Models\Account; -use FireflyIII\Repositories\UserGroups\Account\AccountRepositoryInterface; +use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Transformers\V2\AccountTransformer; use Illuminate\Http\JsonResponse; diff --git a/app/Api/V2/Controllers/Model/Bill/IndexController.php b/app/Api/V2/Controllers/Model/Bill/IndexController.php index bb97d1f03f..4a311a6e20 100644 --- a/app/Api/V2/Controllers/Model/Bill/IndexController.php +++ b/app/Api/V2/Controllers/Model/Bill/IndexController.php @@ -25,7 +25,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V2\Controllers\Model\Bill; use FireflyIII\Api\V2\Controllers\Controller; -use FireflyIII\Repositories\UserGroups\Bill\BillRepositoryInterface; +use FireflyIII\Repositories\Bill\BillRepositoryInterface; use FireflyIII\Support\Http\Api\ValidatesUserGroupTrait; use FireflyIII\Transformers\V2\BillTransformer; use Illuminate\Http\JsonResponse; diff --git a/app/Api/V2/Controllers/Model/Bill/ShowController.php b/app/Api/V2/Controllers/Model/Bill/ShowController.php index 3f225b8758..4b5387e022 100644 --- a/app/Api/V2/Controllers/Model/Bill/ShowController.php +++ b/app/Api/V2/Controllers/Model/Bill/ShowController.php @@ -26,7 +26,7 @@ namespace FireflyIII\Api\V2\Controllers\Model\Bill; use FireflyIII\Api\V2\Controllers\Controller; use FireflyIII\Models\Bill; -use FireflyIII\Repositories\UserGroups\Bill\BillRepositoryInterface; +use FireflyIII\Repositories\Bill\BillRepositoryInterface; use FireflyIII\Support\Http\Api\ValidatesUserGroupTrait; use FireflyIII\Transformers\V2\BillTransformer; use Illuminate\Http\JsonResponse; diff --git a/app/Api/V2/Controllers/Model/Bill/SumController.php b/app/Api/V2/Controllers/Model/Bill/SumController.php index 3f8b61bdba..69b0dcc7aa 100644 --- a/app/Api/V2/Controllers/Model/Bill/SumController.php +++ b/app/Api/V2/Controllers/Model/Bill/SumController.php @@ -26,7 +26,7 @@ namespace FireflyIII\Api\V2\Controllers\Model\Bill; use FireflyIII\Api\V2\Controllers\Controller; use FireflyIII\Api\V2\Request\Generic\DateRequest; -use FireflyIII\Repositories\UserGroups\Bill\BillRepositoryInterface; +use FireflyIII\Repositories\Bill\BillRepositoryInterface; use FireflyIII\Support\Http\Api\ValidatesUserGroupTrait; use Illuminate\Http\JsonResponse; diff --git a/app/Api/V2/Controllers/Model/PiggyBank/IndexController.php b/app/Api/V2/Controllers/Model/PiggyBank/IndexController.php index 8030c3dec5..7d6027597c 100644 --- a/app/Api/V2/Controllers/Model/PiggyBank/IndexController.php +++ b/app/Api/V2/Controllers/Model/PiggyBank/IndexController.php @@ -25,7 +25,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V2\Controllers\Model\PiggyBank; use FireflyIII\Api\V2\Controllers\Controller; -use FireflyIII\Repositories\UserGroups\PiggyBank\PiggyBankRepositoryInterface; +use FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface; use FireflyIII\Support\Http\Api\ValidatesUserGroupTrait; use FireflyIII\Transformers\V2\PiggyBankTransformer; use Illuminate\Http\JsonResponse; diff --git a/app/Api/V2/Controllers/Summary/BasicController.php b/app/Api/V2/Controllers/Summary/BasicController.php index 41c45d4e98..80e83f48d7 100644 --- a/app/Api/V2/Controllers/Summary/BasicController.php +++ b/app/Api/V2/Controllers/Summary/BasicController.php @@ -34,11 +34,11 @@ use FireflyIII\Helpers\Collector\GroupCollectorInterface; use FireflyIII\Helpers\Report\NetWorthInterface; use FireflyIII\Models\Account; use FireflyIII\Models\UserGroup; -use FireflyIII\Repositories\UserGroups\Account\AccountRepositoryInterface; -use FireflyIII\Repositories\UserGroups\Bill\BillRepositoryInterface; -use FireflyIII\Repositories\UserGroups\Budget\AvailableBudgetRepositoryInterface; -use FireflyIII\Repositories\UserGroups\Budget\BudgetRepositoryInterface; -use FireflyIII\Repositories\UserGroups\Budget\OperationsRepositoryInterface; +use FireflyIII\Repositories\Account\AccountRepositoryInterface; +use FireflyIII\Repositories\Bill\BillRepositoryInterface; +use FireflyIII\Repositories\Budget\AvailableBudgetRepositoryInterface; +use FireflyIII\Repositories\Budget\BudgetRepositoryInterface; +use FireflyIII\Repositories\Budget\OperationsRepositoryInterface; use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface; use FireflyIII\Support\Http\Api\ExchangeRateConverter; use FireflyIII\Support\Http\Api\SummaryBalanceGrouped; diff --git a/app/Api/V2/Controllers/Summary/NetWorthController.php b/app/Api/V2/Controllers/Summary/NetWorthController.php index 74cd62e28d..f2c023620a 100644 --- a/app/Api/V2/Controllers/Summary/NetWorthController.php +++ b/app/Api/V2/Controllers/Summary/NetWorthController.php @@ -29,7 +29,7 @@ use FireflyIII\Api\V2\Request\Generic\SingleDateRequest; use FireflyIII\Enums\AccountTypeEnum; use FireflyIII\Helpers\Report\NetWorthInterface; use FireflyIII\Models\Account; -use FireflyIII\Repositories\UserGroups\Account\AccountRepositoryInterface; +use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Support\Http\Api\ValidatesUserGroupTrait; use Illuminate\Http\JsonResponse; diff --git a/app/Console/Commands/Correction/CorrectsNativeAmounts.php b/app/Console/Commands/Correction/CorrectsNativeAmounts.php index 2744352158..abf952000f 100644 --- a/app/Console/Commands/Correction/CorrectsNativeAmounts.php +++ b/app/Console/Commands/Correction/CorrectsNativeAmounts.php @@ -39,7 +39,7 @@ use FireflyIII\Models\Transaction; use FireflyIII\Models\TransactionCurrency; use FireflyIII\Models\UserGroup; use FireflyIII\Repositories\UserGroup\UserGroupRepositoryInterface; -use FireflyIII\Repositories\UserGroups\PiggyBank\PiggyBankRepositoryInterface; +use FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface; use FireflyIII\Support\Facades\Preferences; use FireflyIII\Support\Http\Api\ExchangeRateConverter; use Illuminate\Console\Command; diff --git a/app/Handlers/Events/PreferencesEventHandler.php b/app/Handlers/Events/PreferencesEventHandler.php index e360da0ebe..57033f8fd4 100644 --- a/app/Handlers/Events/PreferencesEventHandler.php +++ b/app/Handlers/Events/PreferencesEventHandler.php @@ -28,8 +28,8 @@ use FireflyIII\Events\Preferences\UserGroupChangedDefaultCurrency; use FireflyIII\Models\Budget; use FireflyIII\Models\PiggyBank; use FireflyIII\Models\UserGroup; -use FireflyIII\Repositories\UserGroups\Budget\BudgetRepositoryInterface; -use FireflyIII\Repositories\UserGroups\PiggyBank\PiggyBankRepositoryInterface; +use FireflyIII\Repositories\Budget\BudgetRepositoryInterface; +use FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface; use FireflyIII\Support\Facades\Amount; use Illuminate\Database\Query\Builder; use Illuminate\Support\Facades\Artisan; diff --git a/app/Handlers/Observer/AccountObserver.php b/app/Handlers/Observer/AccountObserver.php index 781da99341..0c05c2b6d5 100644 --- a/app/Handlers/Observer/AccountObserver.php +++ b/app/Handlers/Observer/AccountObserver.php @@ -30,7 +30,7 @@ use FireflyIII\Models\Transaction; use FireflyIII\Models\TransactionGroup; use FireflyIII\Models\TransactionJournal; use FireflyIII\Repositories\Attachment\AttachmentRepositoryInterface; -use FireflyIII\Repositories\UserGroups\Account\AccountRepositoryInterface; +use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Support\Facades\Amount; use FireflyIII\Support\Http\Api\ExchangeRateConverter; use Illuminate\Support\Facades\DB; diff --git a/app/Helpers/Report/NetWorth.php b/app/Helpers/Report/NetWorth.php index 898c7d984f..f69b301f90 100644 --- a/app/Helpers/Report/NetWorth.php +++ b/app/Helpers/Report/NetWorth.php @@ -30,7 +30,6 @@ use FireflyIII\Exceptions\FireflyException; use FireflyIII\Models\Account; use FireflyIII\Models\UserGroup; use FireflyIII\Repositories\Account\AccountRepositoryInterface; -use FireflyIII\Repositories\UserGroups\Account\AccountRepositoryInterface as AdminAccountRepositoryInterface; use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface; use FireflyIII\Support\CacheProperties; use FireflyIII\Support\Facades\Amount; @@ -49,8 +48,6 @@ use Illuminate\Support\Facades\Log; class NetWorth implements NetWorthInterface { private AccountRepositoryInterface $accountRepository; - private AdminAccountRepositoryInterface $adminAccountRepository; - private CurrencyRepositoryInterface $currencyRepos; private User $user; private ?UserGroup $userGroup; @@ -85,7 +82,7 @@ class NetWorth implements NetWorthInterface /** @var Account $account */ foreach ($accounts as $account) { Log::debug(sprintf('Now at account #%d ("%s")', $account->id, $account->name)); - $currency = $this->getRepository()->getAccountCurrency($account) ?? $default; + $currency = $this->accountRepository->getAccountCurrency($account) ?? $default; $useNative = $convertToNative && $default->id !== $currency->id; $currency = $useNative ? $default : $currency; $currencyCode = $currency->code; @@ -118,15 +115,6 @@ class NetWorth implements NetWorthInterface return $netWorth; } - private function getRepository(): AccountRepositoryInterface|AdminAccountRepositoryInterface - { - if (null === $this->userGroup) { - return $this->accountRepository; - } - - return $this->adminAccountRepository; - } - public function setUser(null|Authenticatable|User $user): void { if (!$user instanceof User) { @@ -146,8 +134,8 @@ class NetWorth implements NetWorthInterface public function setUserGroup(UserGroup $userGroup): void { $this->userGroup = $userGroup; - $this->adminAccountRepository = app(AdminAccountRepositoryInterface::class); - $this->adminAccountRepository->setUserGroup($userGroup); + $this->accountRepository = app(AccountRepositoryInterface::class); + $this->accountRepository->setUserGroup($userGroup); } /** @@ -163,7 +151,7 @@ class NetWorth implements NetWorthInterface Log::debug(sprintf('SumNetWorth: finalAccountsBalance("%s")', $date->format('Y-m-d H:i:s'))); $balances = Steam::finalAccountsBalance($accounts, $date); foreach ($accounts as $account) { - $currency = $this->getRepository()->getAccountCurrency($account); + $currency = $this->accountRepository->getAccountCurrency($account); $balance = $balances[$account->id]['balance'] ?? '0'; // always subtract virtual balance. @@ -188,14 +176,14 @@ class NetWorth implements NetWorthInterface private function getAccounts(): Collection { - $accounts = $this->getRepository()->getAccountsByType( + $accounts = $this->accountRepository->getAccountsByType( [AccountTypeEnum::ASSET->value, AccountTypeEnum::DEFAULT->value, AccountTypeEnum::LOAN->value, AccountTypeEnum::DEBT->value, AccountTypeEnum::MORTGAGE->value] ); $filtered = new Collection(); /** @var Account $account */ foreach ($accounts as $account) { - if (1 === (int) $this->getRepository()->getMetaValue($account, 'include_net_worth')) { + if (1 === (int) $this->accountRepository->getMetaValue($account, 'include_net_worth')) { $filtered->push($account); } } diff --git a/app/Providers/AccountServiceProvider.php b/app/Providers/AccountServiceProvider.php index 3f18539064..8dcc8bdc7a 100644 --- a/app/Providers/AccountServiceProvider.php +++ b/app/Providers/AccountServiceProvider.php @@ -29,8 +29,6 @@ use FireflyIII\Repositories\Account\AccountTasker; use FireflyIII\Repositories\Account\AccountTaskerInterface; use FireflyIII\Repositories\Account\OperationsRepository; use FireflyIII\Repositories\Account\OperationsRepositoryInterface; -use FireflyIII\Repositories\UserGroups\Account\AccountRepository as AdminAccountRepository; -use FireflyIII\Repositories\UserGroups\Account\AccountRepositoryInterface as AdminAccountRepositoryInterface; use Illuminate\Foundation\Application; use Illuminate\Support\ServiceProvider; @@ -73,21 +71,6 @@ class AccountServiceProvider extends ServiceProvider } ); - $this->app->bind( - AdminAccountRepositoryInterface::class, - static function (Application $app) { - /** @var AdminAccountRepositoryInterface $repository */ - $repository = app(AdminAccountRepository::class); - - // phpstan thinks auth does not exist. - if ($app->auth->check()) { // @phpstan-ignore-line - $repository->setUser(auth()->user()); - } - - return $repository; - } - ); - $this->app->bind( OperationsRepositoryInterface::class, static function (Application $app) { diff --git a/app/Providers/BillServiceProvider.php b/app/Providers/BillServiceProvider.php index 409b3ba4a7..1e8038099c 100644 --- a/app/Providers/BillServiceProvider.php +++ b/app/Providers/BillServiceProvider.php @@ -25,8 +25,6 @@ namespace FireflyIII\Providers; use FireflyIII\Repositories\Bill\BillRepository; use FireflyIII\Repositories\Bill\BillRepositoryInterface; -use FireflyIII\Repositories\UserGroups\Bill\BillRepository as AdminBillRepository; -use FireflyIII\Repositories\UserGroups\Bill\BillRepositoryInterface as AdminBillRepositoryInterface; use Illuminate\Foundation\Application; use Illuminate\Support\ServiceProvider; @@ -60,20 +58,5 @@ class BillServiceProvider extends ServiceProvider } ); - // administration variant - $this->app->bind( - AdminBillRepositoryInterface::class, - static function (Application $app) { - /** @var AdminBillRepositoryInterface $repository */ - $repository = app(AdminBillRepository::class); - - // reference to auth is not understood by phpstan. - if ($app->auth->check()) { // @phpstan-ignore-line - $repository->setUser(auth()->user()); - } - - return $repository; - } - ); } } diff --git a/app/Providers/BudgetServiceProvider.php b/app/Providers/BudgetServiceProvider.php index 69350c0977..c07e9d0612 100644 --- a/app/Providers/BudgetServiceProvider.php +++ b/app/Providers/BudgetServiceProvider.php @@ -33,12 +33,6 @@ use FireflyIII\Repositories\Budget\NoBudgetRepository; use FireflyIII\Repositories\Budget\NoBudgetRepositoryInterface; use FireflyIII\Repositories\Budget\OperationsRepository; use FireflyIII\Repositories\Budget\OperationsRepositoryInterface; -use FireflyIII\Repositories\UserGroups\Budget\AvailableBudgetRepository as AdminAbRepository; -use FireflyIII\Repositories\UserGroups\Budget\AvailableBudgetRepositoryInterface as AdminAbRepositoryInterface; -use FireflyIII\Repositories\UserGroups\Budget\BudgetRepository as AdminBudgetRepository; -use FireflyIII\Repositories\UserGroups\Budget\BudgetRepositoryInterface as AdminBudgetRepositoryInterface; -use FireflyIII\Repositories\UserGroups\Budget\OperationsRepository as AdminOperationsRepository; -use FireflyIII\Repositories\UserGroups\Budget\OperationsRepositoryInterface as AdminOperationsRepositoryInterface; use Illuminate\Foundation\Application; use Illuminate\Support\ServiceProvider; @@ -73,19 +67,6 @@ class BudgetServiceProvider extends ServiceProvider } ); - $this->app->bind( - AdminBudgetRepositoryInterface::class, - static function (Application $app) { - /** @var AdminBudgetRepositoryInterface $repository */ - $repository = app(AdminBudgetRepository::class); - if ($app->auth->check()) { // @phpstan-ignore-line - $repository->setUser(auth()->user()); - } - - return $repository; - } - ); - // available budget repos $this->app->bind( AvailableBudgetRepositoryInterface::class, @@ -100,20 +81,6 @@ class BudgetServiceProvider extends ServiceProvider } ); - // available budget repos - $this->app->bind( - AdminAbRepositoryInterface::class, - static function (Application $app) { - /** @var AdminAbRepositoryInterface $repository */ - $repository = app(AdminAbRepository::class); - if ($app->auth->check()) { // @phpstan-ignore-line - $repository->setUser(auth()->user()); - } - - return $repository; - } - ); - // budget limit repository. $this->app->bind( BudgetLimitRepositoryInterface::class, @@ -152,18 +119,6 @@ class BudgetServiceProvider extends ServiceProvider $repository->setUser(auth()->user()); } - return $repository; - } - ); - $this->app->bind( - AdminOperationsRepositoryInterface::class, - static function (Application $app) { - /** @var AdminOperationsRepositoryInterface $repository */ - $repository = app(AdminOperationsRepository::class); - if ($app->auth->check()) { // @phpstan-ignore-line - $repository->setUser(auth()->user()); - } - return $repository; } ); diff --git a/app/Providers/CategoryServiceProvider.php b/app/Providers/CategoryServiceProvider.php index abfcd31037..d8bc20a299 100644 --- a/app/Providers/CategoryServiceProvider.php +++ b/app/Providers/CategoryServiceProvider.php @@ -29,8 +29,6 @@ use FireflyIII\Repositories\Category\NoCategoryRepository; use FireflyIII\Repositories\Category\NoCategoryRepositoryInterface; use FireflyIII\Repositories\Category\OperationsRepository; use FireflyIII\Repositories\Category\OperationsRepositoryInterface; -use FireflyIII\Repositories\UserGroups\Category\CategoryRepository as UserGroupCategoryRepository; -use FireflyIII\Repositories\UserGroups\Category\CategoryRepositoryInterface as UserGroupCategoryRepositoryInterface; use Illuminate\Foundation\Application; use Illuminate\Support\ServiceProvider; @@ -63,20 +61,6 @@ class CategoryServiceProvider extends ServiceProvider } ); - // phpstan does not understand reference to 'auth'. - $this->app->bind( - UserGroupCategoryRepositoryInterface::class, - static function (Application $app) { - /** @var UserGroupCategoryRepository $repository */ - $repository = app(UserGroupCategoryRepository::class); - if ($app->auth->check()) { // @phpstan-ignore-line - $repository->setUser(auth()->user()); - } - - return $repository; - } - ); - $this->app->bind( OperationsRepositoryInterface::class, static function (Application $app) { diff --git a/app/Providers/CurrencyServiceProvider.php b/app/Providers/CurrencyServiceProvider.php index 8e562d7c58..5ba0966719 100644 --- a/app/Providers/CurrencyServiceProvider.php +++ b/app/Providers/CurrencyServiceProvider.php @@ -27,8 +27,6 @@ use FireflyIII\Repositories\Currency\CurrencyRepository; use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface; use FireflyIII\Repositories\Currency\CurrencyRepository as GroupCurrencyRepository; use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface as GroupCurrencyRepositoryInterface; -use FireflyIII\Repositories\UserGroups\ExchangeRate\ExchangeRateRepository; -use FireflyIII\Repositories\UserGroups\ExchangeRate\ExchangeRateRepositoryInterface; use Illuminate\Foundation\Application; use Illuminate\Support\ServiceProvider; @@ -74,12 +72,5 @@ class CurrencyServiceProvider extends ServiceProvider } ); - $this->app->bind( - ExchangeRateRepositoryInterface::class, - static function (Application $app) { - /** @var ExchangeRateRepository */ - return app(ExchangeRateRepository::class); - } - ); } } diff --git a/app/Providers/JournalServiceProvider.php b/app/Providers/JournalServiceProvider.php index a70532dc81..26ab3012ca 100644 --- a/app/Providers/JournalServiceProvider.php +++ b/app/Providers/JournalServiceProvider.php @@ -33,8 +33,6 @@ use FireflyIII\Repositories\Journal\JournalRepository; use FireflyIII\Repositories\Journal\JournalRepositoryInterface; use FireflyIII\Repositories\TransactionGroup\TransactionGroupRepository; use FireflyIII\Repositories\TransactionGroup\TransactionGroupRepositoryInterface; -use FireflyIII\Repositories\UserGroups\Journal\JournalRepository as GroupJournalRepository; -use FireflyIII\Repositories\UserGroups\Journal\JournalRepositoryInterface as GroupJournalRepositoryInterface; use Illuminate\Foundation\Application; use Illuminate\Support\ServiceProvider; @@ -76,19 +74,6 @@ class JournalServiceProvider extends ServiceProvider } ); - $this->app->bind( - GroupJournalRepositoryInterface::class, - static function (Application $app) { - /** @var GroupJournalRepositoryInterface $repository */ - $repository = app(GroupJournalRepository::class); - if ($app->auth->check()) { // @phpstan-ignore-line (phpstan does not understand the reference to auth) - $repository->setUser(auth()->user()); - } - - return $repository; - } - ); - // also bind new API repository $this->app->bind( JournalAPIRepositoryInterface::class, diff --git a/app/Providers/PiggyBankServiceProvider.php b/app/Providers/PiggyBankServiceProvider.php index ec3c9653b4..7252098c8a 100644 --- a/app/Providers/PiggyBankServiceProvider.php +++ b/app/Providers/PiggyBankServiceProvider.php @@ -25,8 +25,6 @@ namespace FireflyIII\Providers; use FireflyIII\Repositories\PiggyBank\PiggyBankRepository; use FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface; -use FireflyIII\Repositories\UserGroups\PiggyBank\PiggyBankRepository as AdminPiggyBankRepository; -use FireflyIII\Repositories\UserGroups\PiggyBank\PiggyBankRepositoryInterface as AdminPiggyBankRepositoryInterface; use Illuminate\Foundation\Application; use Illuminate\Support\ServiceProvider; @@ -57,18 +55,5 @@ class PiggyBankServiceProvider extends ServiceProvider return $repository; } ); - - $this->app->bind( - AdminPiggyBankRepositoryInterface::class, - static function (Application $app) { - /** @var AdminPiggyBankRepository $repository */ - $repository = app(AdminPiggyBankRepository::class); - if ($app->auth->check()) { // @phpstan-ignore-line (phpstan does not understand the reference to auth) - $repository->setUser(auth()->user()); - } - - return $repository; - } - ); } } diff --git a/app/Providers/TagServiceProvider.php b/app/Providers/TagServiceProvider.php index c226dc5e9d..ae29a28caa 100644 --- a/app/Providers/TagServiceProvider.php +++ b/app/Providers/TagServiceProvider.php @@ -27,8 +27,6 @@ use FireflyIII\Repositories\Tag\OperationsRepository; use FireflyIII\Repositories\Tag\OperationsRepositoryInterface; use FireflyIII\Repositories\Tag\TagRepository; use FireflyIII\Repositories\Tag\TagRepositoryInterface; -use FireflyIII\Repositories\UserGroups\Tag\TagRepository as UserGroupTagRepository; -use FireflyIII\Repositories\UserGroups\Tag\TagRepositoryInterface as UserGroupTagRepositoryInterface; use Illuminate\Foundation\Application; use Illuminate\Support\ServiceProvider; @@ -61,20 +59,6 @@ class TagServiceProvider extends ServiceProvider } ); - $this->app->bind( - UserGroupTagRepositoryInterface::class, - static function (Application $app) { - /** @var UserGroupTagRepository $repository */ - $repository = app(UserGroupTagRepository::class); - - if ($app->auth->check()) { // @phpstan-ignore-line (phpstan does not understand the reference to auth) - $repository->setUser(auth()->user()); - } - - return $repository; - } - ); - $this->app->bind( OperationsRepositoryInterface::class, static function (Application $app) { diff --git a/app/Repositories/ExchangeRate/ExchangeRateRepository.php b/app/Repositories/ExchangeRate/ExchangeRateRepository.php new file mode 100644 index 0000000000..1c30c93d26 --- /dev/null +++ b/app/Repositories/ExchangeRate/ExchangeRateRepository.php @@ -0,0 +1,114 @@ +userGroup->currencyExchangeRates()->where('id', $rate->id)->delete(); + } + + #[\Override] + public function getAll(): Collection + { + return $this->userGroup->currencyExchangeRates()->orderBy('date', 'ASC')->get(); + } + + #[\Override] + public function getRates(TransactionCurrency $from, TransactionCurrency $to): Collection + { + // orderBy('date', 'DESC')->toRawSql(); + return + $this->userGroup->currencyExchangeRates() + ->where(function (Builder $q1) use ($from, $to): void { + $q1->where(function (Builder $q) use ($from, $to): void { + $q->where('from_currency_id', $from->id) + ->where('to_currency_id', $to->id) + ; + })->orWhere(function (Builder $q) use ($from, $to): void { + $q->where('from_currency_id', $to->id) + ->where('to_currency_id', $from->id) + ; + }); + }) + ->orderBy('date', 'DESC') + ->get(['currency_exchange_rates.*']) + ; + + } + + #[\Override] + public function getSpecificRateOnDate(TransactionCurrency $from, TransactionCurrency $to, Carbon $date): ?CurrencyExchangeRate + { + /** @var null|CurrencyExchangeRate */ + return + $this->userGroup->currencyExchangeRates() + ->where('from_currency_id', $from->id) + ->where('to_currency_id', $to->id) + ->where('date', $date->format('Y-m-d')) + ->first() + ; + } + + #[\Override] + public function storeExchangeRate(TransactionCurrency $from, TransactionCurrency $to, string $rate, Carbon $date): CurrencyExchangeRate + { + $object = new CurrencyExchangeRate(); + $object->user_id = auth()->user()->id; + $object->user_group_id = $this->userGroup->id; + $object->from_currency_id = $from->id; + $object->to_currency_id = $to->id; + $object->rate = $rate; + $object->date = $date; + $object->date_tz = $date->format('e'); + $object->save(); + + return $object; + } + + #[\Override] + public function updateExchangeRate(CurrencyExchangeRate $object, string $rate, ?Carbon $date = null): CurrencyExchangeRate + { + $object->rate = $rate; + if (null !== $date) { + $object->date = $date; + } + $object->save(); + + return $object; + } + +} diff --git a/app/Repositories/ExchangeRate/ExchangeRateRepositoryInterface.php b/app/Repositories/ExchangeRate/ExchangeRateRepositoryInterface.php new file mode 100644 index 0000000000..fdb1f1c8d0 --- /dev/null +++ b/app/Repositories/ExchangeRate/ExchangeRateRepositoryInterface.php @@ -0,0 +1,44 @@ +source = null; $this->destination = null; $this->accountRepository = app(AccountRepositoryInterface::class); - $this->userGroupAccountRepository = app(UserGroupAccountRepositoryInterface::class); } public function getSource(): ?Account @@ -112,13 +108,11 @@ class AccountValidator public function setUser(User $user): void { $this->accountRepository->setUser($user); - $this->useUserGroupRepository = false; } public function setUserGroup(UserGroup $userGroup): void { - $this->userGroupAccountRepository->setUserGroup($userGroup); - $this->useUserGroupRepository = true; + $this->accountRepository->setUserGroup($userGroup); } public function validateDestination(array $array): bool @@ -265,7 +259,7 @@ class AccountValidator // find by ID if (null !== $accountId && $accountId > 0) { - $first = $this->getRepository()->find($accountId); + $first = $this->accountRepository->find($accountId); $accountType = null === $first ? 'invalid' : $first->accountType->type; $check = in_array($accountType, $validTypes, true); $check = $inverse ? !$check : $check; // reverse the validation check if necessary. @@ -278,7 +272,7 @@ class AccountValidator // find by iban if (null !== $accountIban && '' !== (string) $accountIban) { - $first = $this->getRepository()->findByIbanNull($accountIban, $validTypes); + $first = $this->accountRepository->findByIbanNull($accountIban, $validTypes); $accountType = null === $first ? 'invalid' : $first->accountType->type; $check = in_array($accountType, $validTypes, true); $check = $inverse ? !$check : $check; // reverse the validation check if necessary. @@ -291,7 +285,7 @@ class AccountValidator // find by number if (null !== $accountNumber && '' !== (string) $accountNumber) { - $first = $this->getRepository()->findByAccountNumber($accountNumber, $validTypes); + $first = $this->accountRepository->findByAccountNumber($accountNumber, $validTypes); $accountType = null === $first ? 'invalid' : $first->accountType->type; $check = in_array($accountType, $validTypes, true); $check = $inverse ? !$check : $check; // reverse the validation check if necessary. @@ -304,7 +298,7 @@ class AccountValidator // find by name: if ('' !== (string) $accountName) { - $first = $this->getRepository()->findByName($accountName, $validTypes); + $first = $this->accountRepository->findByName($accountName, $validTypes); if (null !== $first) { app('log')->debug(sprintf('Name: Found %s account #%d ("%s", IBAN "%s")', $first->accountType->type, $first->id, $first->name, $first->iban ?? 'no iban')); @@ -315,13 +309,4 @@ class AccountValidator return null; } - - private function getRepository(): AccountRepositoryInterface|UserGroupAccountRepositoryInterface - { - if ($this->useUserGroupRepository) { - return $this->userGroupAccountRepository; - } - - return $this->accountRepository; - } }