From f6f8bb7fd1087b7ffa1cfc9784c3967bfadbdc20 Mon Sep 17 00:00:00 2001 From: James Cole Date: Thu, 5 Jul 2018 06:10:35 +0200 Subject: [PATCH] Clean up API code. --- .../Controllers/AvailableBudgetController.php | 9 ++++- app/Api/V1/Controllers/BillController.php | 6 ++- app/Api/V1/Controllers/BudgetController.php | 6 ++- .../V1/Controllers/BudgetLimitController.php | 7 +--- app/Api/V1/Controllers/CategoryController.php | 6 ++- .../Controllers/ConfigurationController.php | 29 +++++++++++++- app/Api/V1/Controllers/CurrencyController.php | 21 ++++++---- .../CurrencyExchangeRateController.php | 12 +++++- app/Api/V1/Controllers/LinkTypeController.php | 11 +++++- .../V1/Controllers/PiggyBankController.php | 6 ++- .../V1/Controllers/PreferenceController.php | 14 ------- .../V1/Controllers/RecurrenceController.php | 2 +- app/Api/V1/Controllers/RuleController.php | 8 ++-- .../V1/Controllers/RuleGroupController.php | 6 +-- .../V1/Controllers/TransactionController.php | 38 +++++++++++-------- app/Api/V1/Controllers/UserController.php | 27 ++++++------- app/Api/V1/Requests/AccountRequest.php | 1 - app/Api/V1/Requests/AttachmentRequest.php | 1 - app/Api/V1/Requests/RecurrenceRequest.php | 11 ++++-- app/Api/V1/Requests/TransactionRequest.php | 18 +++++---- app/Api/V1/Requests/UserRequest.php | 7 +++- 21 files changed, 157 insertions(+), 89 deletions(-) diff --git a/app/Api/V1/Controllers/AvailableBudgetController.php b/app/Api/V1/Controllers/AvailableBudgetController.php index ee182bb457..2e918cba8f 100644 --- a/app/Api/V1/Controllers/AvailableBudgetController.php +++ b/app/Api/V1/Controllers/AvailableBudgetController.php @@ -24,6 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers; use FireflyIII\Api\V1\Requests\AvailableBudgetRequest; +use FireflyIII\Exceptions\FireflyException; use FireflyIII\Models\AvailableBudget; use FireflyIII\Repositories\Budget\BudgetRepositoryInterface; use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface; @@ -144,11 +145,15 @@ class AvailableBudgetController extends Controller * @param AvailableBudgetRequest $request * * @return JsonResponse + * @throws FireflyException */ public function store(AvailableBudgetRequest $request): JsonResponse { - $data = $request->getAll(); - $currency = $this->currencyRepository->findNull($data['transaction_currency_id']); + $data = $request->getAll(); + $currency = $this->currencyRepository->findNull($data['transaction_currency_id']); + if (null === $currency) { + throw new FireflyException('Could not find the indicated currency.'); + } $availableBudget = $this->repository->setAvailableBudget($currency, $data['start_date'], $data['end_date'], $data['amount']); $manager = new Manager; $baseUrl = $request->getSchemeAndHttpHost() . '/api/v1'; diff --git a/app/Api/V1/Controllers/BillController.php b/app/Api/V1/Controllers/BillController.php index c06b060df9..191bb9c4ee 100644 --- a/app/Api/V1/Controllers/BillController.php +++ b/app/Api/V1/Controllers/BillController.php @@ -29,6 +29,7 @@ use FireflyIII\Exceptions\FireflyException; use FireflyIII\Models\Bill; use FireflyIII\Repositories\Bill\BillRepositoryInterface; use FireflyIII\Transformers\BillTransformer; +use FireflyIII\User; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Support\Collection; @@ -54,9 +55,12 @@ class BillController extends Controller parent::__construct(); $this->middleware( function ($request, $next) { + /** @var User $admin */ + $admin = auth()->user(); + /** @var BillRepositoryInterface repository */ $this->repository = app(BillRepositoryInterface::class); - $this->repository->setUser(auth()->user()); + $this->repository->setUser($admin); return $next($request); } diff --git a/app/Api/V1/Controllers/BudgetController.php b/app/Api/V1/Controllers/BudgetController.php index d2a2ba2041..3408ed4018 100644 --- a/app/Api/V1/Controllers/BudgetController.php +++ b/app/Api/V1/Controllers/BudgetController.php @@ -28,6 +28,7 @@ use FireflyIII\Exceptions\FireflyException; use FireflyIII\Models\Budget; use FireflyIII\Repositories\Budget\BudgetRepositoryInterface; use FireflyIII\Transformers\BudgetTransformer; +use FireflyIII\User; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Pagination\LengthAwarePaginator; @@ -53,9 +54,12 @@ class BudgetController extends Controller parent::__construct(); $this->middleware( function ($request, $next) { + /** @var User $admin */ + $admin = auth()->user(); + /** @var BudgetRepositoryInterface repository */ $this->repository = app(BudgetRepositoryInterface::class); - $this->repository->setUser(auth()->user()); + $this->repository->setUser($admin); return $next($request); } diff --git a/app/Api/V1/Controllers/BudgetLimitController.php b/app/Api/V1/Controllers/BudgetLimitController.php index fe07060205..e144158001 100644 --- a/app/Api/V1/Controllers/BudgetLimitController.php +++ b/app/Api/V1/Controllers/BudgetLimitController.php @@ -24,8 +24,6 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers; use Carbon\Carbon; -use Exception; -use FireflyIII\Api\V1\Requests\AvailableBudgetRequest; use FireflyIII\Api\V1\Requests\BudgetLimitRequest; use FireflyIII\Exceptions\FireflyException; use FireflyIII\Models\BudgetLimit; @@ -43,7 +41,6 @@ use League\Fractal\Resource\Collection as FractalCollection; use League\Fractal\Resource\Item; use League\Fractal\Serializer\JsonApiSerializer; use Log; -use Throwable; /** * Class BudgetLimitController @@ -206,8 +203,8 @@ class BudgetLimitController extends Controller /** * Update the specified resource in storage. * - * @param AvailableBudgetRequest $request - * @param BudgetLimit $budgetLimit + * @param BudgetLimitRequest $request + * @param BudgetLimit $budgetLimit * * @return JsonResponse */ diff --git a/app/Api/V1/Controllers/CategoryController.php b/app/Api/V1/Controllers/CategoryController.php index fc33a6fe16..2b27c53d9d 100644 --- a/app/Api/V1/Controllers/CategoryController.php +++ b/app/Api/V1/Controllers/CategoryController.php @@ -28,6 +28,7 @@ use FireflyIII\Exceptions\FireflyException; use FireflyIII\Models\Category; use FireflyIII\Repositories\Category\CategoryRepositoryInterface; use FireflyIII\Transformers\CategoryTransformer; +use FireflyIII\User; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Pagination\LengthAwarePaginator; @@ -53,9 +54,12 @@ class CategoryController extends Controller parent::__construct(); $this->middleware( function ($request, $next) { + /** @var User $admin */ + $admin = auth()->user(); + /** @var CategoryRepositoryInterface repository */ $this->repository = app(CategoryRepositoryInterface::class); - $this->repository->setUser(auth()->user()); + $this->repository->setUser($admin); return $next($request); } diff --git a/app/Api/V1/Controllers/ConfigurationController.php b/app/Api/V1/Controllers/ConfigurationController.php index 9bedd0a459..1f63904db8 100644 --- a/app/Api/V1/Controllers/ConfigurationController.php +++ b/app/Api/V1/Controllers/ConfigurationController.php @@ -25,6 +25,8 @@ namespace FireflyIII\Api\V1\Controllers; use FireflyIII\Exceptions\FireflyException; use FireflyIII\Models\Configuration; +use FireflyIII\Repositories\User\UserRepositoryInterface; +use FireflyIII\User; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; @@ -34,12 +36,33 @@ use Illuminate\Http\Request; class ConfigurationController extends Controller { + + /** @var UserRepositoryInterface */ + private $repository; + + /** + * BudgetController constructor. + */ + public function __construct() + { + parent::__construct(); + $this->middleware( + function ($request, $next) { + $this->repository = app(UserRepositoryInterface::class); + + return $next($request); + } + ); + } + /** * @throws FireflyException */ public function index() { - if (!auth()->user()->hasRole('owner')) { + /** @var User $admin */ + $admin = auth()->user(); + if (!$this->repository->hasRole($admin, 'owner')) { throw new FireflyException('No access to method.'); // @codeCoverageIgnore } $configData = $this->getConfigData(); @@ -55,7 +78,9 @@ class ConfigurationController extends Controller */ public function update(Request $request): JsonResponse { - if (!auth()->user()->hasRole('owner')) { + /** @var User $admin */ + $admin = auth()->user(); + if (!$this->repository->hasRole($admin, 'owner')) { throw new FireflyException('No access to method.'); // @codeCoverageIgnore } $name = $request->get('name'); diff --git a/app/Api/V1/Controllers/CurrencyController.php b/app/Api/V1/Controllers/CurrencyController.php index 174c4ff261..8f276f85d7 100644 --- a/app/Api/V1/Controllers/CurrencyController.php +++ b/app/Api/V1/Controllers/CurrencyController.php @@ -30,6 +30,7 @@ use FireflyIII\Models\TransactionCurrency; use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface; use FireflyIII\Repositories\User\UserRepositoryInterface; use FireflyIII\Transformers\CurrencyTransformer; +use FireflyIII\User; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Pagination\LengthAwarePaginator; @@ -51,18 +52,19 @@ class CurrencyController extends Controller /** * CurrencyRepository constructor. - * - * @throws FireflyException */ public function __construct() { parent::__construct(); $this->middleware( function ($request, $next) { + /** @var User $admin */ + $admin = auth()->user(); + /** @var CurrencyRepositoryInterface repository */ $this->repository = app(CurrencyRepositoryInterface::class); $this->userRepository = app(UserRepositoryInterface::class); - $this->repository->setUser(auth()->user()); + $this->repository->setUser($admin); return $next($request); } @@ -79,7 +81,10 @@ class CurrencyController extends Controller */ public function delete(TransactionCurrency $currency): JsonResponse { - if (!$this->userRepository->hasRole(auth()->user(), 'owner')) { + /** @var User $admin */ + $admin = auth()->user(); + + if (!$this->userRepository->hasRole($admin, 'owner')) { // access denied: throw new FireflyException('No access to method, user is not owner.'); // @codeCoverageIgnore } @@ -155,11 +160,11 @@ class CurrencyController extends Controller { $currency = $this->repository->store($request->getAll()); - if ($request->boolean('default') === true) { - app('preferences')->set('currencyPreference', $currency->code); - app('preferences')->mark(); - } if (null !== $currency) { + if ($request->boolean('default') === true) { + app('preferences')->set('currencyPreference', $currency->code); + app('preferences')->mark(); + } $manager = new Manager(); $baseUrl = $request->getSchemeAndHttpHost() . '/api/v1'; $manager->setSerializer(new JsonApiSerializer($baseUrl)); diff --git a/app/Api/V1/Controllers/CurrencyExchangeRateController.php b/app/Api/V1/Controllers/CurrencyExchangeRateController.php index 54d8672b0e..50e091a6f1 100644 --- a/app/Api/V1/Controllers/CurrencyExchangeRateController.php +++ b/app/Api/V1/Controllers/CurrencyExchangeRateController.php @@ -28,11 +28,13 @@ use FireflyIII\Exceptions\FireflyException; use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface; use FireflyIII\Services\Currency\ExchangeRateInterface; use FireflyIII\Transformers\CurrencyExchangeRateTransformer; +use FireflyIII\User; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use InvalidArgumentException; use League\Fractal\Manager; use League\Fractal\Resource\Item; +use League\Fractal\Serializer\JsonApiSerializer; use Log; /** @@ -52,8 +54,11 @@ class CurrencyExchangeRateController extends Controller parent::__construct(); $this->middleware( function ($request, $next) { + /** @var User $admin */ + $admin = auth()->user(); + $this->repository = app(CurrencyRepositoryInterface::class); - $this->repository->setUser(auth()->user()); + $this->repository->setUser($admin); return $next($request); } @@ -72,6 +77,7 @@ class CurrencyExchangeRateController extends Controller // create some objects: $manager = new Manager; $baseUrl = $request->getSchemeAndHttpHost() . '/api/v1'; + $manager->setSerializer(new JsonApiSerializer($baseUrl)); // currencies $fromCurrency = $this->repository->findByCodeNull($request->get('from') ?? 'EUR'); @@ -99,10 +105,12 @@ class CurrencyExchangeRateController extends Controller // get the exchange rate. $rate = $this->repository->getExchangeRate($fromCurrency, $toCurrency, $dateObj); if (null === $rate) { + /** @var User $admin */ + $admin = auth()->user(); // create service: /** @var ExchangeRateInterface $service */ $service = app(ExchangeRateInterface::class); - $service->setUser(auth()->user()); + $service->setUser($admin); // get rate: $rate = $service->getRate($fromCurrency, $toCurrency, $dateObj); diff --git a/app/Api/V1/Controllers/LinkTypeController.php b/app/Api/V1/Controllers/LinkTypeController.php index 31215cd5a3..45bdab656d 100644 --- a/app/Api/V1/Controllers/LinkTypeController.php +++ b/app/Api/V1/Controllers/LinkTypeController.php @@ -151,7 +151,10 @@ class LinkTypeController extends Controller */ public function store(LinkTypeRequest $request): JsonResponse { - if (!$this->userRepository->hasRole(auth()->user(), 'owner')) { + /** @var User $admin */ + $admin = auth()->user(); + + if (!$this->userRepository->hasRole($admin, 'owner')) { throw new FireflyException('You need the "owner"-role to do this.'); } $data = $request->getAll(); @@ -179,7 +182,11 @@ class LinkTypeController extends Controller if ($linkType->editable === false) { throw new FireflyException(sprintf('You cannot edit this link type (#%d, "%s")', $linkType->id, $linkType->name)); } - if (!$this->userRepository->hasRole(auth()->user(), 'owner')) { + + /** @var User $admin */ + $admin = auth()->user(); + + if (!$this->userRepository->hasRole($admin, 'owner')) { throw new FireflyException('You need the "owner"-role to do this.'); } diff --git a/app/Api/V1/Controllers/PiggyBankController.php b/app/Api/V1/Controllers/PiggyBankController.php index 2dd1f0f8a6..b310ddaeac 100644 --- a/app/Api/V1/Controllers/PiggyBankController.php +++ b/app/Api/V1/Controllers/PiggyBankController.php @@ -53,10 +53,12 @@ class PiggyBankController extends Controller parent::__construct(); $this->middleware( function ($request, $next) { - /** @var User $user */ - $user = auth()->user(); + /** @var User $admin */ + $admin = auth()->user(); $this->repository = app(PiggyBankRepositoryInterface::class); + $this->repository->setUser($admin); + return $next($request); } diff --git a/app/Api/V1/Controllers/PreferenceController.php b/app/Api/V1/Controllers/PreferenceController.php index 3efe8fa35a..7f302e3b9f 100644 --- a/app/Api/V1/Controllers/PreferenceController.php +++ b/app/Api/V1/Controllers/PreferenceController.php @@ -42,20 +42,6 @@ use Preferences; */ class PreferenceController extends Controller { - public function __construct() - { - parent::__construct(); - $this->middleware( - function ($request, $next) { - /** @var User $user */ - $user = auth()->user(); - - // todo add local repositories. - return $next($request); - } - ); - } - /** * List all of them. * diff --git a/app/Api/V1/Controllers/RecurrenceController.php b/app/Api/V1/Controllers/RecurrenceController.php index a5ec34e9c6..f9bf45ff13 100644 --- a/app/Api/V1/Controllers/RecurrenceController.php +++ b/app/Api/V1/Controllers/RecurrenceController.php @@ -162,7 +162,7 @@ class RecurrenceController extends Controller */ public function update(RecurrenceRequest $request, Recurrence $recurrence): JsonResponse { - $data = $request->getAll(); + $data = $request->getAll(); // diff --git a/app/Api/V1/Controllers/RuleController.php b/app/Api/V1/Controllers/RuleController.php index bd581dcfb2..547916d247 100644 --- a/app/Api/V1/Controllers/RuleController.php +++ b/app/Api/V1/Controllers/RuleController.php @@ -136,7 +136,7 @@ class RuleController extends Controller /** * Store new object. * - * @param Request $request + * @param RuleRequest $request * * @return JsonResponse */ @@ -160,9 +160,9 @@ class RuleController extends Controller */ public function update(RuleRequest $request, Rule $rule): JsonResponse { - $rule = $this->ruleRepository->update($rule, $request->getAll()); - $manager = new Manager(); - $baseUrl = $request->getSchemeAndHttpHost() . '/api/v1'; + $rule = $this->ruleRepository->update($rule, $request->getAll()); + $manager = new Manager(); + $baseUrl = $request->getSchemeAndHttpHost() . '/api/v1'; $manager->setSerializer(new JsonApiSerializer($baseUrl)); $resource = new Item($rule, new RuleTransformer($this->parameters), 'rules'); diff --git a/app/Api/V1/Controllers/RuleGroupController.php b/app/Api/V1/Controllers/RuleGroupController.php index 9085594c69..ffa509b3c0 100644 --- a/app/Api/V1/Controllers/RuleGroupController.php +++ b/app/Api/V1/Controllers/RuleGroupController.php @@ -62,7 +62,7 @@ class RuleGroupController extends Controller /** * Delete the resource. * - * @param string $object + * @param RuleGroup $ruleGroup * * @return JsonResponse */ @@ -151,8 +151,8 @@ class RuleGroupController extends Controller } /** - * @param Request $request - * @param string $object + * @param RuleGroupRequest $request + * @param RuleGroup $ruleGroup * * @return JsonResponse */ diff --git a/app/Api/V1/Controllers/TransactionController.php b/app/Api/V1/Controllers/TransactionController.php index a03b594f42..aebec3ad5e 100644 --- a/app/Api/V1/Controllers/TransactionController.php +++ b/app/Api/V1/Controllers/TransactionController.php @@ -25,6 +25,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers; use FireflyIII\Api\V1\Requests\TransactionRequest; +use FireflyIII\Exceptions\FireflyException; use FireflyIII\Helpers\Collector\JournalCollectorInterface; use FireflyIII\Helpers\Filter\InternalTransferFilter; use FireflyIII\Helpers\Filter\NegativeAmountFilter; @@ -33,6 +34,8 @@ use FireflyIII\Models\Transaction; use FireflyIII\Models\TransactionType; use FireflyIII\Repositories\Journal\JournalRepositoryInterface; use FireflyIII\Transformers\TransactionTransformer; +use FireflyIII\User; +use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Support\Collection; use League\Fractal\Manager; @@ -52,17 +55,18 @@ class TransactionController extends Controller /** * TransactionController constructor. - * - * @throws \FireflyIII\Exceptions\FireflyException */ public function __construct() { parent::__construct(); $this->middleware( function ($request, $next) { + /** @var User $admin */ + $admin = auth()->user(); + /** @var JournalRepositoryInterface repository */ $this->repository = app(JournalRepositoryInterface::class); - $this->repository->setUser(auth()->user()); + $this->repository->setUser($admin); return $next($request); } @@ -74,9 +78,9 @@ class TransactionController extends Controller * * @param \FireflyIII\Models\Transaction $transaction * - * @return \Illuminate\Http\Response + * @return JsonResponse */ - public function delete(Transaction $transaction) + public function delete(Transaction $transaction): JsonResponse { $journal = $transaction->transactionJournal; $this->repository->destroy($journal); @@ -87,9 +91,9 @@ class TransactionController extends Controller /** * @param Request $request * - * @return \Illuminate\Http\JsonResponse + * @return JsonResponse */ - public function index(Request $request) + public function index(Request $request): JsonResponse { $pageSize = (int)app('preferences')->getForUser(auth()->user(), 'listPageSize', 50)->data; @@ -105,13 +109,16 @@ class TransactionController extends Controller $manager->setSerializer(new JsonApiSerializer($baseUrl)); // collect transactions using the journal collector + /** @var User $admin */ + $admin = auth()->user(); + /** @var JournalCollectorInterface $collector */ $collector = app(JournalCollectorInterface::class); - $collector->setUser(auth()->user()); + $collector->setUser($admin); $collector->withOpposingAccount()->withCategoryInformation()->withBudgetInformation(); $collector->setAllAssetAccounts(); // remove internal transfer filter: - if (\in_array(TransactionType::TRANSFER, $types)) { + if (\in_array(TransactionType::TRANSFER, $types, true)) { $collector->removeFilter(InternalTransferFilter::class); } @@ -137,9 +144,9 @@ class TransactionController extends Controller * @param Transaction $transaction * @param string $include * - * @return \Illuminate\Http\JsonResponse + * @return JsonResponse */ - public function show(Request $request, Transaction $transaction, string $include = null) + public function show(Request $request, Transaction $transaction, string $include = null): JsonResponse { $manager = new Manager(); $baseUrl = $request->getSchemeAndHttpHost() . '/api/v1'; @@ -177,9 +184,10 @@ class TransactionController extends Controller * * @param JournalRepositoryInterface $repository * - * @return \Illuminate\Http\JsonResponse + * @throws FireflyException + * @return JsonResponse */ - public function store(TransactionRequest $request, JournalRepositoryInterface $repository) + public function store(TransactionRequest $request, JournalRepositoryInterface $repository): JsonResponse { $data = $request->getAll(); $data['user'] = auth()->user()->id; @@ -221,9 +229,9 @@ class TransactionController extends Controller * @param JournalRepositoryInterface $repository * @param Transaction $transaction * - * @return \Illuminate\Http\JsonResponse + * @return JsonResponse */ - public function update(TransactionRequest $request, JournalRepositoryInterface $repository, Transaction $transaction) + public function update(TransactionRequest $request, JournalRepositoryInterface $repository, Transaction $transaction): JsonResponse { $data = $request->getAll(); $data['user'] = auth()->user()->id; diff --git a/app/Api/V1/Controllers/UserController.php b/app/Api/V1/Controllers/UserController.php index e8466818f9..5d3ed4a552 100644 --- a/app/Api/V1/Controllers/UserController.php +++ b/app/Api/V1/Controllers/UserController.php @@ -29,6 +29,7 @@ use FireflyIII\Exceptions\FireflyException; use FireflyIII\Repositories\User\UserRepositoryInterface; use FireflyIII\Transformers\UserTransformer; use FireflyIII\User; +use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Pagination\LengthAwarePaginator; use League\Fractal\Manager; @@ -49,8 +50,6 @@ class UserController extends Controller /** * UserController constructor. - * - * @throws \FireflyIII\Exceptions\FireflyException */ public function __construct() { @@ -70,12 +69,14 @@ class UserController extends Controller * * @param \FireflyIII\User $user * - * @return \Illuminate\Http\Response + * @return JsonResponse * @throws FireflyException */ - public function delete(User $user) + public function delete(User $user): JsonResponse { - if (auth()->user()->hasRole('owner')) { + /** @var User $admin */ + $admin = auth()->user(); + if ($this->repository->hasRole($admin, 'owner')) { $this->repository->destroy($user); return response()->json([], 204); @@ -88,9 +89,9 @@ class UserController extends Controller * * @param Request $request * - * @return \Illuminate\Http\JsonResponse + * @return JsonResponse */ - public function index(Request $request) + public function index(Request $request): JsonResponse { // user preferences $pageSize = (int)app('preferences')->getForUser(auth()->user(), 'listPageSize', 50)->data; @@ -120,9 +121,9 @@ class UserController extends Controller * @param Request $request * @param User $user * - * @return \Illuminate\Http\JsonResponse + * @return JsonResponse */ - public function show(Request $request, User $user) + public function show(Request $request, User $user): JsonResponse { // make manager $manager = new Manager(); @@ -142,9 +143,9 @@ class UserController extends Controller /** * @param UserRequest $request * - * @return \Illuminate\Http\JsonResponse + * @return JsonResponse */ - public function store(UserRequest $request) + public function store(UserRequest $request): JsonResponse { $data = $request->getAll(); $user = $this->repository->store($data); @@ -168,9 +169,9 @@ class UserController extends Controller * @param UserRequest $request * @param User $user * - * @return \Illuminate\Http\JsonResponse + * @return JsonResponse */ - public function update(UserRequest $request, User $user) + public function update(UserRequest $request, User $user): JsonResponse { $data = $request->getAll(); $user = $this->repository->update($user, $data); diff --git a/app/Api/V1/Requests/AccountRequest.php b/app/Api/V1/Requests/AccountRequest.php index 5a287b85ed..791b560030 100644 --- a/app/Api/V1/Requests/AccountRequest.php +++ b/app/Api/V1/Requests/AccountRequest.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests; - /** * Class AccountRequest */ diff --git a/app/Api/V1/Requests/AttachmentRequest.php b/app/Api/V1/Requests/AttachmentRequest.php index 30da4d2683..de9285ab54 100644 --- a/app/Api/V1/Requests/AttachmentRequest.php +++ b/app/Api/V1/Requests/AttachmentRequest.php @@ -26,7 +26,6 @@ namespace FireflyIII\Api\V1\Requests; use FireflyIII\Models\Bill; use FireflyIII\Models\ImportJob; use FireflyIII\Models\TransactionJournal; -use FireflyIII\Rules\IsBase64; use FireflyIII\Rules\IsValidAttachmentModel; /** diff --git a/app/Api/V1/Requests/RecurrenceRequest.php b/app/Api/V1/Requests/RecurrenceRequest.php index 3aa948722a..688681021a 100644 --- a/app/Api/V1/Requests/RecurrenceRequest.php +++ b/app/Api/V1/Requests/RecurrenceRequest.php @@ -28,6 +28,7 @@ use FireflyIII\Models\Account; use FireflyIII\Models\AccountType; use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Rules\BelongsUser; +use FireflyIII\User; use Illuminate\Validation\Validator; use InvalidArgumentException; use Log; @@ -196,6 +197,8 @@ class RecurrenceRequest extends Request */ protected function assetAccountExists(Validator $validator, ?int $accountId, ?string $accountName, string $idField, string $nameField): ?Account { + /** @var User $admin */ + $admin = auth()->user(); $accountId = (int)$accountId; $accountName = (string)$accountName; // both empty? hard exit. @@ -207,7 +210,7 @@ class RecurrenceRequest extends Request // ID belongs to user and is asset account: /** @var AccountRepositoryInterface $repository */ $repository = app(AccountRepositoryInterface::class); - $repository->setUser(auth()->user()); + $repository->setUser($admin); $set = $repository->getAccountsById([$accountId]); Log::debug(sprintf('Count of accounts found by ID %d is: %d', $accountId, $set->count())); if ($set->count() === 1) { @@ -302,17 +305,19 @@ class RecurrenceRequest extends Request */ protected function opposingAccountExists(Validator $validator, string $type, ?int $accountId, ?string $accountName, string $idField): ?Account { + /** @var User $admin */ + $admin = auth()->user(); $accountId = (int)$accountId; $accountName = (string)$accountName; // both empty? done! - if ($accountId < 1 && \strlen($accountName) === 0) { + if ($accountId < 1 && '' === $accountName) { return null; } if ($accountId !== 0) { // ID belongs to user and is $type account: /** @var AccountRepositoryInterface $repository */ $repository = app(AccountRepositoryInterface::class); - $repository->setUser(auth()->user()); + $repository->setUser($admin); $set = $repository->getAccountsById([$accountId]); if ($set->count() === 1) { /** @var Account $first */ diff --git a/app/Api/V1/Requests/TransactionRequest.php b/app/Api/V1/Requests/TransactionRequest.php index ce0c27e1be..2bd6ed2dbb 100644 --- a/app/Api/V1/Requests/TransactionRequest.php +++ b/app/Api/V1/Requests/TransactionRequest.php @@ -30,6 +30,7 @@ use FireflyIII\Models\AccountType; use FireflyIII\Models\Transaction; use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Rules\BelongsUser; +use FireflyIII\User; use Illuminate\Validation\Validator; @@ -200,11 +201,12 @@ class TransactionRequest extends Request */ protected function assetAccountExists(Validator $validator, ?int $accountId, ?string $accountName, string $idField, string $nameField): ?Account { - + /** @var User $admin */ + $admin = auth()->user(); $accountId = (int)$accountId; $accountName = (string)$accountName; // both empty? hard exit. - if ($accountId < 1 && \strlen($accountName) === 0) { + if ($accountId < 1 && '' === $accountName) { $validator->errors()->add($idField, trans('validation.filled', ['attribute' => $idField])); return null; @@ -212,7 +214,7 @@ class TransactionRequest extends Request // ID belongs to user and is asset account: /** @var AccountRepositoryInterface $repository */ $repository = app(AccountRepositoryInterface::class); - $repository->setUser(auth()->user()); + $repository->setUser($admin); $set = $repository->getAccountsById([$accountId]); if ($set->count() === 1) { /** @var Account $first */ @@ -271,7 +273,7 @@ class TransactionRequest extends Request } // no valid descriptions and empty journal description? error. - if ($validDescriptions === 0 && \strlen($journalDescription) === 0) { + if ($validDescriptions === 0 && '' === $journalDescription) { $validator->errors()->add('description', trans('validation.filled', ['attribute' => trans('validation.attributes.description')])); } @@ -290,7 +292,7 @@ class TransactionRequest extends Request foreach ($transactions as $index => $transaction) { $description = (string)($transaction['description'] ?? ''); // filled description is mandatory for split transactions. - if (\count($transactions) > 1 && \strlen($description) === 0) { + if ('' === $description && \count($transactions) > 1) { $validator->errors()->add( 'transactions.' . $index . '.description', trans('validation.filled', ['attribute' => trans('validation.attributes.transaction_description')]) @@ -358,17 +360,19 @@ class TransactionRequest extends Request */ protected function opposingAccountExists(Validator $validator, string $type, ?int $accountId, ?string $accountName, string $idField): ?Account { + /** @var User $admin */ + $admin = auth()->user(); $accountId = (int)$accountId; $accountName = (string)$accountName; // both empty? done! - if ($accountId < 1 && \strlen($accountName) === 0) { + if ($accountId < 1 && '' === $accountName) { return null; } if ($accountId !== 0) { // ID belongs to user and is $type account: /** @var AccountRepositoryInterface $repository */ $repository = app(AccountRepositoryInterface::class); - $repository->setUser(auth()->user()); + $repository->setUser($admin); $set = $repository->getAccountsById([$accountId]); if ($set->count() === 1) { /** @var Account $first */ diff --git a/app/Api/V1/Requests/UserRequest.php b/app/Api/V1/Requests/UserRequest.php index ba9bf54904..2a4031888f 100644 --- a/app/Api/V1/Requests/UserRequest.php +++ b/app/Api/V1/Requests/UserRequest.php @@ -24,6 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests; +use FireflyIII\Repositories\User\UserRepositoryInterface; use FireflyIII\User; @@ -43,7 +44,11 @@ class UserRequest extends Request } /** @var User $user */ $user = auth()->user(); - if (!$user->hasRole('owner')) { + + /** @var UserRepositoryInterface $repository */ + $repository = app(UserRepositoryInterface::class); + + if (!$repository->hasRole($user, 'owner')) { return false; // @codeCoverageIgnore }