From eb6329e556bc646d96fd4383ee3ee23eb37313b5 Mon Sep 17 00:00:00 2001
From: James Cole <thegrumpydictator@gmail.com>
Date: Thu, 30 May 2019 12:39:06 +0200
Subject: [PATCH] Various code cleanup as suggested by PHPStorm.

---
 app/Api/V1/Controllers/AboutController.php    |   2 +-
 app/Api/V1/Controllers/AccountController.php  |   2 +-
 .../V1/Controllers/AttachmentController.php   |   9 +-
 .../Controllers/AvailableBudgetController.php |   6 +-
 app/Api/V1/Controllers/BillController.php     |  13 +-
 app/Api/V1/Controllers/BudgetController.php   |  15 +-
 .../V1/Controllers/BudgetLimitController.php  |   6 +-
 app/Api/V1/Controllers/CategoryController.php |   6 +-
 .../Controllers/Chart/AccountController.php   |  88 ++++----
 .../Controllers/Chart/CategoryController.php  |   2 +
 .../Controllers/ConfigurationController.php   |  36 ++--
 app/Api/V1/Controllers/Controller.php         |  52 ++---
 app/Api/V1/Controllers/CurrencyController.php |  56 +++---
 .../CurrencyExchangeRateController.php        |   1 +
 app/Api/V1/Controllers/ImportController.php   |  10 +-
 app/Api/V1/Controllers/LinkTypeController.php |  10 +-
 .../V1/Controllers/PiggyBankController.php    |   6 +-
 .../V1/Controllers/PreferenceController.php   |   4 +-
 .../V1/Controllers/RecurrenceController.php   |   6 +-
 app/Api/V1/Controllers/RuleController.php     |  20 +-
 .../V1/Controllers/RuleGroupController.php    | 110 +++++-----
 app/Api/V1/Controllers/SummaryController.php  |  90 +++++----
 app/Api/V1/Controllers/TagController.php      |   8 +-
 .../Controllers/TransactionLinkController.php |   8 +-
 app/Api/V1/Controllers/UserController.php     |  12 +-
 app/Api/V1/Requests/AccountStoreRequest.php   |   1 -
 app/Api/V1/Requests/AccountUpdateRequest.php  |   1 -
 app/Api/V1/Requests/AttachmentRequest.php     |   1 -
 .../V1/Requests/AvailableBudgetRequest.php    |   2 -
 app/Api/V1/Requests/BillRequest.php           |   2 +-
 .../V1/Requests/RecurrenceStoreRequest.php    | 127 ++++++------
 .../V1/Requests/RecurrenceUpdateRequest.php   | 127 ++++++------
 app/Api/V1/Requests/RuleRequest.php           | 117 +++++------
 .../V1/Requests/TransactionLinkRequest.php    |   2 +-
 .../V1/Requests/TransactionStoreRequest.php   | 190 +++++++++---------
 .../V1/Requests/TransactionUpdateRequest.php  | 108 +++++-----
 36 files changed, 631 insertions(+), 625 deletions(-)

diff --git a/app/Api/V1/Controllers/AboutController.php b/app/Api/V1/Controllers/AboutController.php
index 159df2c30c..447e187369 100644
--- a/app/Api/V1/Controllers/AboutController.php
+++ b/app/Api/V1/Controllers/AboutController.php
@@ -54,7 +54,7 @@ class AboutController extends Controller
 
 
         $data
-                       = [
+            = [
             'version'     => config('firefly.version'),
             'api_version' => config('firefly.api_version'),
             'php_version' => $phpVersion,
diff --git a/app/Api/V1/Controllers/AccountController.php b/app/Api/V1/Controllers/AccountController.php
index d8fa45bf27..264ff36062 100644
--- a/app/Api/V1/Controllers/AccountController.php
+++ b/app/Api/V1/Controllers/AccountController.php
@@ -296,7 +296,7 @@ class AccountController extends Controller
      * Update account.
      *
      * @param AccountUpdateRequest $request
-     * @param Account              $account
+     * @param Account $account
      *
      * @return JsonResponse
      */
diff --git a/app/Api/V1/Controllers/AttachmentController.php b/app/Api/V1/Controllers/AttachmentController.php
index b8c282998b..eaa82e0f07 100644
--- a/app/Api/V1/Controllers/AttachmentController.php
+++ b/app/Api/V1/Controllers/AttachmentController.php
@@ -39,6 +39,7 @@ use League\Fractal\Pagination\IlluminatePaginatorAdapter;
 use League\Fractal\Resource\Collection as FractalCollection;
 use League\Fractal\Resource\Item;
 use League\Fractal\Serializer\JsonApiSerializer;
+use function strlen;
 
 /**
  * Class AttachmentController.
@@ -111,7 +112,7 @@ class AttachmentController extends Controller
                 ->header('Expires', '0')
                 ->header('Cache-Control', 'must-revalidate, post-check=0, pre-check=0')
                 ->header('Pragma', 'public')
-                ->header('Content-Length', \strlen($content));
+                ->header('Content-Length', strlen($content));
 
             return $response;
         }
@@ -159,7 +160,7 @@ class AttachmentController extends Controller
     /**
      * Display the specified resource.
      *
-     * @param Request    $request
+     * @param Request $request
      * @param Attachment $attachment
      * @codeCoverageIgnore
      * @return JsonResponse
@@ -208,7 +209,7 @@ class AttachmentController extends Controller
      * Update the specified resource in storage.
      *
      * @param AttachmentRequest $request
-     * @param Attachment        $attachment
+     * @param Attachment $attachment
      *
      * @return JsonResponse
      */
@@ -232,7 +233,7 @@ class AttachmentController extends Controller
     /**
      * Upload an attachment.
      * @codeCoverageIgnore
-     * @param Request    $request
+     * @param Request $request
      * @param Attachment $attachment
      *
      * @return JsonResponse
diff --git a/app/Api/V1/Controllers/AvailableBudgetController.php b/app/Api/V1/Controllers/AvailableBudgetController.php
index 90de57879a..86e02c1ff9 100644
--- a/app/Api/V1/Controllers/AvailableBudgetController.php
+++ b/app/Api/V1/Controllers/AvailableBudgetController.php
@@ -140,11 +140,11 @@ class AvailableBudgetController extends Controller
     /**
      * Display the specified resource.
      *
-     * @param Request         $request
+     * @param Request $request
      * @param AvailableBudget $availableBudget
      *
      * @return JsonResponse
-     *                     @codeCoverageIgnore
+     * @codeCoverageIgnore
      */
     public function show(Request $request, AvailableBudget $availableBudget): JsonResponse
     {
@@ -197,7 +197,7 @@ class AvailableBudgetController extends Controller
      * Update the specified resource in storage.
      *
      * @param AvailableBudgetRequest $request
-     * @param AvailableBudget        $availableBudget
+     * @param AvailableBudget $availableBudget
      *
      * @return JsonResponse
      */
diff --git a/app/Api/V1/Controllers/BillController.php b/app/Api/V1/Controllers/BillController.php
index b003a45e5f..c5806ad04b 100644
--- a/app/Api/V1/Controllers/BillController.php
+++ b/app/Api/V1/Controllers/BillController.php
@@ -34,7 +34,6 @@ use FireflyIII\Transformers\AttachmentTransformer;
 use FireflyIII\Transformers\BillTransformer;
 use FireflyIII\Transformers\RuleTransformer;
 use FireflyIII\Transformers\TransactionGroupTransformer;
-use FireflyIII\Transformers\TransactionTransformer;
 use FireflyIII\User;
 use Illuminate\Http\JsonResponse;
 use Illuminate\Http\Request;
@@ -81,7 +80,7 @@ class BillController extends Controller
      * Display a listing of the resource.
      *
      * @param Request $request
-     * @param Bill    $bill
+     * @param Bill $bill
      *
      * @return JsonResponse
      * @codeCoverageIgnore
@@ -163,7 +162,7 @@ class BillController extends Controller
      * List all of them.
      *
      * @param Request $request
-     * @param Bill    $bill
+     * @param Bill $bill
      *
      * @return JsonResponse
      * @codeCoverageIgnore
@@ -205,7 +204,7 @@ class BillController extends Controller
      * Show the specified bill.
      *
      * @param Request $request
-     * @param Bill    $bill
+     * @param Bill $bill
      *
      * @return JsonResponse
      * @codeCoverageIgnore
@@ -258,7 +257,7 @@ class BillController extends Controller
      *
      * @param Request $request
      *
-     * @param Bill    $bill
+     * @param Bill $bill
      *
      * @return JsonResponse
      * @codeCoverageIgnore
@@ -303,7 +302,7 @@ class BillController extends Controller
         $paginator->setPath(route('api.v1.bills.transactions', [$bill->id]) . $this->buildParams());
         $transactions = $paginator->getCollection();
 
-        /** @var TransactionTransformer $transformer */
+        /** @var TransactionGroupTransformer $transformer */
         $transformer = app(TransactionGroupTransformer::class);
         $transformer->setParameters($this->parameters);
 
@@ -317,7 +316,7 @@ class BillController extends Controller
      * Update a bill.
      *
      * @param BillRequest $request
-     * @param Bill        $bill
+     * @param Bill $bill
      *
      * @return JsonResponse
      */
diff --git a/app/Api/V1/Controllers/BudgetController.php b/app/Api/V1/Controllers/BudgetController.php
index 5b359865c7..b057675f6f 100644
--- a/app/Api/V1/Controllers/BudgetController.php
+++ b/app/Api/V1/Controllers/BudgetController.php
@@ -23,6 +23,7 @@ declare(strict_types=1);
 
 namespace FireflyIII\Api\V1\Controllers;
 
+use Exception;
 use FireflyIII\Api\V1\Requests\BudgetLimitRequest;
 use FireflyIII\Api\V1\Requests\BudgetRequest;
 use FireflyIII\Exceptions\FireflyException;
@@ -42,7 +43,7 @@ use League\Fractal\Pagination\IlluminatePaginatorAdapter;
 use League\Fractal\Resource\Collection as FractalCollection;
 use League\Fractal\Resource\Item;
 use League\Fractal\Serializer\JsonApiSerializer;
-use Exception;
+
 /**
  * Class BudgetController.
  *
@@ -81,7 +82,7 @@ class BudgetController extends Controller
      *
      *
      * @param Request $request
-     * @param Budget  $budget
+     * @param Budget $budget
      *
      * @return JsonResponse
      * @codeCoverageIgnore
@@ -169,7 +170,7 @@ class BudgetController extends Controller
      * Show a budget.
      *
      * @param Request $request
-     * @param Budget  $budget
+     * @param Budget $budget
      *
      * @return JsonResponse
      * @codeCoverageIgnore
@@ -221,9 +222,9 @@ class BudgetController extends Controller
      * Store a newly created resource in storage.
      *
      * @param BudgetLimitRequest $request
-     * @param Budget             $budget
-     * @throws Exception
+     * @param Budget $budget
      * @return JsonResponse
+     * @throws Exception
      */
     public function storeBudgetLimit(BudgetLimitRequest $request, Budget $budget): JsonResponse
     {
@@ -248,7 +249,7 @@ class BudgetController extends Controller
      *
      * @param Request $request
      *
-     * @param Budget  $budget
+     * @param Budget $budget
      *
      * @return JsonResponse
      * @codeCoverageIgnore
@@ -313,7 +314,7 @@ class BudgetController extends Controller
      * Update a budget.
      *
      * @param BudgetRequest $request
-     * @param Budget        $budget
+     * @param Budget $budget
      *
      * @return JsonResponse
      */
diff --git a/app/Api/V1/Controllers/BudgetLimitController.php b/app/Api/V1/Controllers/BudgetLimitController.php
index cf97af423a..587d0d305a 100644
--- a/app/Api/V1/Controllers/BudgetLimitController.php
+++ b/app/Api/V1/Controllers/BudgetLimitController.php
@@ -134,7 +134,7 @@ class BudgetLimitController extends Controller
     /**
      * Display the specified resource.
      *
-     * @param Request     $request
+     * @param Request $request
      * @param BudgetLimit $budgetLimit
      *
      * @return JsonResponse
@@ -189,7 +189,7 @@ class BudgetLimitController extends Controller
     /**
      * Show all transactions.
      *
-     * @param Request     $request
+     * @param Request $request
      * @param BudgetLimit $budgetLimit
      *
      * @return JsonResponse
@@ -245,7 +245,7 @@ class BudgetLimitController extends Controller
      * Update the specified resource in storage.
      *
      * @param BudgetLimitRequest $request
-     * @param BudgetLimit        $budgetLimit
+     * @param BudgetLimit $budgetLimit
      *
      * @return JsonResponse
      */
diff --git a/app/Api/V1/Controllers/CategoryController.php b/app/Api/V1/Controllers/CategoryController.php
index ca60103849..93f8ab75e2 100644
--- a/app/Api/V1/Controllers/CategoryController.php
+++ b/app/Api/V1/Controllers/CategoryController.php
@@ -133,7 +133,7 @@ class CategoryController extends Controller
     /**
      * Show the category.
      *
-     * @param Request  $request
+     * @param Request $request
      * @param Category $category
      *
      * @return JsonResponse
@@ -184,7 +184,7 @@ class CategoryController extends Controller
     /**
      * Show all transactions.
      *
-     * @param Request  $request
+     * @param Request $request
      *
      * @param Category $category
      *
@@ -243,7 +243,7 @@ class CategoryController extends Controller
      * Update the category.
      *
      * @param CategoryRequest $request
-     * @param Category        $category
+     * @param Category $category
      *
      * @return JsonResponse
      */
diff --git a/app/Api/V1/Controllers/Chart/AccountController.php b/app/Api/V1/Controllers/Chart/AccountController.php
index 7fb20a98ca..3a3d40a84b 100644
--- a/app/Api/V1/Controllers/Chart/AccountController.php
+++ b/app/Api/V1/Controllers/Chart/AccountController.php
@@ -82,7 +82,7 @@ class AccountController extends Controller
         if ('' === $start || '' === $end) {
             throw new FireflyException('Start and end are mandatory parameters.');
         }
-
+        /** @var Carbon $start */
         $start = Carbon::createFromFormat('Y-m-d', $start);
         $end   = Carbon::createFromFormat('Y-m-d', $end);
         $start->subDay();
@@ -128,7 +128,7 @@ class AccountController extends Controller
 
         // loop all found currencies and build the data array for the chart.
         /**
-         * @var int                 $currencyId
+         * @var int $currencyId
          * @var TransactionCurrency $currency
          */
         foreach ($currencies as $currencyId => $currency) {
@@ -156,6 +156,43 @@ class AccountController extends Controller
         return response()->json($chartData);
     }
 
+    /**
+     * Small helper function for the revenue and expense account charts.
+     * TODO should include Trait instead of doing this.
+     *
+     * @param Collection $accounts
+     *
+     * @return array
+     */
+    protected function extractNames(Collection $accounts): array
+    {
+        $return = [];
+        /** @var Account $account */
+        foreach ($accounts as $account) {
+            $return[$account->id] = $account->name;
+        }
+
+        return $return;
+    }
+
+    /**
+     * Small helper function for the revenue and expense account charts.
+     * TODO should include Trait instead of doing this.
+     *
+     * @param array $names
+     *
+     * @return array
+     */
+    protected function expandNames(array $names): array
+    {
+        $result = [];
+        foreach ($names as $entry) {
+            $result[$entry['name']] = 0;
+        }
+
+        return $result;
+    }
+
     /**
      * @param Request $request
      *
@@ -176,8 +213,8 @@ class AccountController extends Controller
 
         // user's preferences
         $defaultSet = $this->repository->getAccountsByType([AccountType::DEFAULT, AccountType::ASSET])->pluck('id')->toArray();
-        $frontPage  = app('preferences')->get('frontPageAccounts', $defaultSet);
-        $default    = app('amount')->getDefaultCurrency();
+        $frontPage = app('preferences')->get('frontPageAccounts', $defaultSet);
+        $default   = app('amount')->getDefaultCurrency();
         if (0 === count($frontPage->data)) {
             $frontPage->data = $defaultSet;
             $frontPage->save();
@@ -202,7 +239,7 @@ class AccountController extends Controller
                 'yAxisID'                 => 0, // 0, 1, 2
                 'entries'                 => [],
             ];
-
+            /** @var Carbon $currentStart */
             $currentStart = clone $start;
             $range        = app('steam')->balanceInRange($account, $start, clone $end);
             $previous     = round(array_values($range)[0], 12);
@@ -234,7 +271,7 @@ class AccountController extends Controller
         if ('' === $start || '' === $end) {
             throw new FireflyException('Start and end are mandatory parameters.');
         }
-
+        /** @var Carbon $start */
         $start = Carbon::createFromFormat('Y-m-d', $start);
         $end   = Carbon::createFromFormat('Y-m-d', $end);
         $start->subDay();
@@ -280,7 +317,7 @@ class AccountController extends Controller
 
         // loop all found currencies and build the data array for the chart.
         /**
-         * @var int                 $currencyId
+         * @var int $currencyId
          * @var TransactionCurrency $currency
          */
         foreach ($currencies as $currencyId => $currency) {
@@ -308,41 +345,4 @@ class AccountController extends Controller
         return response()->json($chartData);
     }
 
-    /**
-     * Small helper function for the revenue and expense account charts.
-     * TODO should include Trait instead of doing this.
-     *
-     * @param array $names
-     *
-     * @return array
-     */
-    protected function expandNames(array $names): array
-    {
-        $result = [];
-        foreach ($names as $entry) {
-            $result[$entry['name']] = 0;
-        }
-
-        return $result;
-    }
-
-    /**
-     * Small helper function for the revenue and expense account charts.
-     * TODO should include Trait instead of doing this.
-     *
-     * @param Collection $accounts
-     *
-     * @return array
-     */
-    protected function extractNames(Collection $accounts): array
-    {
-        $return = [];
-        /** @var Account $account */
-        foreach ($accounts as $account) {
-            $return[$account->id] = $account->name;
-        }
-
-        return $return;
-    }
-
 }
diff --git a/app/Api/V1/Controllers/Chart/CategoryController.php b/app/Api/V1/Controllers/Chart/CategoryController.php
index 868297af1e..25e8272182 100644
--- a/app/Api/V1/Controllers/Chart/CategoryController.php
+++ b/app/Api/V1/Controllers/Chart/CategoryController.php
@@ -74,7 +74,9 @@ class CategoryController extends Controller
         if ('' === $start || '' === $end) {
             throw new FireflyException('Start and end are mandatory parameters.');
         }
+        /** @var Carbon $start */
         $start      = Carbon::createFromFormat('Y-m-d', $start);
+        /** @var Carbon $end */
         $end        = Carbon::createFromFormat('Y-m-d', $end);
         $tempData   = [];
         $spent      = $this->categoryRepository->spentInPeriodPerCurrency(new Collection, new Collection, $start, $end);
diff --git a/app/Api/V1/Controllers/ConfigurationController.php b/app/Api/V1/Controllers/ConfigurationController.php
index cb2fcc77a1..867d2b67ef 100644
--- a/app/Api/V1/Controllers/ConfigurationController.php
+++ b/app/Api/V1/Controllers/ConfigurationController.php
@@ -76,24 +76,6 @@ class ConfigurationController extends Controller
         return response()->json(['data' => $configData])->header('Content-Type', 'application/vnd.api+json');
     }
 
-    /**
-     * Update the configuration.
-     *
-     * @param ConfigurationRequest $request
-     * @param string               $name
-     *
-     * @return JsonResponse
-     * @SuppressWarnings(PHPMD.CyclomaticComplexity)
-     */
-    public function update(ConfigurationRequest $request, string $name): JsonResponse
-    {
-        $data = $request->getAll();
-        app('fireflyconfig')->set($name, $data['value']);
-        $configData = $this->getConfigData();
-
-        return response()->json(['data' => $configData])->header('Content-Type', 'application/vnd.api+json');
-    }
-
     /**
      * Get all config values.
      *
@@ -119,4 +101,22 @@ class ConfigurationController extends Controller
 
         return $data;
     }
+
+    /**
+     * Update the configuration.
+     *
+     * @param ConfigurationRequest $request
+     * @param string $name
+     *
+     * @return JsonResponse
+     * @SuppressWarnings(PHPMD.CyclomaticComplexity)
+     */
+    public function update(ConfigurationRequest $request, string $name): JsonResponse
+    {
+        $data = $request->getAll();
+        app('fireflyconfig')->set($name, $data['value']);
+        $configData = $this->getConfigData();
+
+        return response()->json(['data' => $configData])->header('Content-Type', 'application/vnd.api+json');
+    }
 }
diff --git a/app/Api/V1/Controllers/Controller.php b/app/Api/V1/Controllers/Controller.php
index aa15ba0d17..ea9748d1d6 100644
--- a/app/Api/V1/Controllers/Controller.php
+++ b/app/Api/V1/Controllers/Controller.php
@@ -56,32 +56,6 @@ class Controller extends BaseController
         $this->parameters = $this->getParameters();
     }
 
-    /**
-     * Method to help build URI's.
-     *
-     * @return string
-     *
-     * @SuppressWarnings(PHPMD.CyclomaticComplexity)
-     */
-    protected function buildParams(): string
-    {
-        $return = '?';
-        $params = [];
-        foreach ($this->parameters as $key => $value) {
-            if ('page' === $key) {
-                continue;
-            }
-            if ($value instanceof Carbon) {
-                $params[$key] = $value->format('Y-m-d');
-                continue;
-            }
-            $params[$key] = $value;
-        }
-        $return .= http_build_query($params);
-
-        return $return;
-    }
-
     /**
      * Method to grab all parameters from the URI.
      *
@@ -125,4 +99,30 @@ class Controller extends BaseController
         return $bag;
 
     }
+
+    /**
+     * Method to help build URI's.
+     *
+     * @return string
+     *
+     * @SuppressWarnings(PHPMD.CyclomaticComplexity)
+     */
+    protected function buildParams(): string
+    {
+        $return = '?';
+        $params = [];
+        foreach ($this->parameters as $key => $value) {
+            if ('page' === $key) {
+                continue;
+            }
+            if ($value instanceof Carbon) {
+                $params[$key] = $value->format('Y-m-d');
+                continue;
+            }
+            $params[$key] = $value;
+        }
+        $return .= http_build_query($params);
+
+        return $return;
+    }
 }
diff --git a/app/Api/V1/Controllers/CurrencyController.php b/app/Api/V1/Controllers/CurrencyController.php
index 30625f0033..cb34e54823 100644
--- a/app/Api/V1/Controllers/CurrencyController.php
+++ b/app/Api/V1/Controllers/CurrencyController.php
@@ -103,11 +103,11 @@ class CurrencyController extends Controller
     /**
      * Display a list of accounts.
      *
-     * @param Request             $request
+     * @param Request $request
      * @param TransactionCurrency $currency
      *
      * @return JsonResponse
-     *                     @codeCoverageIgnore
+     * @codeCoverageIgnore
      */
     public function accounts(Request $request, TransactionCurrency $currency): JsonResponse
     {
@@ -161,12 +161,12 @@ class CurrencyController extends Controller
     /**
      * Display a listing of the resource.
      *
-     * @param Request             $request
+     * @param Request $request
      *
      * @param TransactionCurrency $currency
      *
      * @return JsonResponse
-     *                     @codeCoverageIgnore
+     * @codeCoverageIgnore
      */
     public function availableBudgets(Request $request, TransactionCurrency $currency): JsonResponse
     {
@@ -217,11 +217,11 @@ class CurrencyController extends Controller
     /**
      * List all bills
      *
-     * @param Request             $request
+     * @param Request $request
      * @param TransactionCurrency $currency
      *
      * @return JsonResponse
-     *                     @codeCoverageIgnore
+     * @codeCoverageIgnore
      */
     public function bills(Request $request, TransactionCurrency $currency): JsonResponse
     {
@@ -265,12 +265,12 @@ class CurrencyController extends Controller
     /**
      * List all budget limits
      *
-     * @param Request             $request
+     * @param Request $request
      *
      * @param TransactionCurrency $currency
      *
      * @return JsonResponse
-     *                     @codeCoverageIgnore
+     * @codeCoverageIgnore
      */
     public function budgetLimits(Request $request, TransactionCurrency $currency): JsonResponse
     {
@@ -309,11 +309,11 @@ class CurrencyController extends Controller
     /**
      * Show a list of known exchange rates
      *
-     * @param Request             $request
+     * @param Request $request
      * @param TransactionCurrency $currency
      *
      * @return JsonResponse
-     *                     @codeCoverageIgnore
+     * @codeCoverageIgnore
      */
     public function cer(Request $request, TransactionCurrency $currency): JsonResponse
     {
@@ -345,11 +345,11 @@ class CurrencyController extends Controller
     /**
      * Remove the specified resource from storage.
      *
-     * @param  TransactionCurrency $currency
+     * @param TransactionCurrency $currency
      *
      * @return JsonResponse
      * @throws FireflyException
-     *                         @codeCoverageIgnore
+     * @codeCoverageIgnore
      */
     public function delete(TransactionCurrency $currency): JsonResponse
     {
@@ -371,11 +371,11 @@ class CurrencyController extends Controller
     /**
      * Disable a currency.
      *
-     * @param Request             $request
+     * @param Request $request
      * @param TransactionCurrency $currency
      *
      * @return JsonResponse
-     *                     @codeCoverageIgnore
+     * @codeCoverageIgnore
      */
     public function disable(Request $request, TransactionCurrency $currency): JsonResponse
     {
@@ -404,11 +404,11 @@ class CurrencyController extends Controller
     /**
      * Enable a currency.
      *
-     * @param Request             $request
+     * @param Request $request
      * @param TransactionCurrency $currency
      *
      * @return JsonResponse
-     *                     @codeCoverageIgnore
+     * @codeCoverageIgnore
      */
     public function enable(Request $request, TransactionCurrency $currency): JsonResponse
     {
@@ -436,7 +436,7 @@ class CurrencyController extends Controller
      * @param Request $request
      *
      * @return JsonResponse
-     *                     @codeCoverageIgnore
+     * @codeCoverageIgnore
      */
     public function index(Request $request): JsonResponse
     {
@@ -468,11 +468,11 @@ class CurrencyController extends Controller
     /**
      * Make the currency a default currency.
      *
-     * @param Request             $request
+     * @param Request $request
      * @param TransactionCurrency $currency
      *
      * @return JsonResponse
-     *                     @codeCoverageIgnore
+     * @codeCoverageIgnore
      */
     public function makeDefault(Request $request, TransactionCurrency $currency): JsonResponse
     {
@@ -500,12 +500,12 @@ class CurrencyController extends Controller
     /**
      * List all recurring transactions.
      *
-     * @param Request             $request
+     * @param Request $request
      *
      * @param TransactionCurrency $currency
      *
      * @return JsonResponse
-     *                   @codeCoverageIgnore
+     * @codeCoverageIgnore
      */
     public function recurrences(Request $request, TransactionCurrency $currency): JsonResponse
     {
@@ -560,11 +560,11 @@ class CurrencyController extends Controller
     /**
      * List all of them.
      *
-     * @param Request             $request
+     * @param Request $request
      * @param TransactionCurrency $currency
      *
      * @return JsonResponse
-     *                     @codeCoverageIgnore
+     * @codeCoverageIgnore
      */
     public function rules(Request $request, TransactionCurrency $currency): JsonResponse
     {
@@ -614,11 +614,11 @@ class CurrencyController extends Controller
     /**
      * Show a currency.
      *
-     * @param Request             $request
+     * @param Request $request
      * @param TransactionCurrency $currency
      *
      * @return JsonResponse
-     *                     @codeCoverageIgnore
+     * @codeCoverageIgnore
      */
     public function show(Request $request, TransactionCurrency $currency): JsonResponse
     {
@@ -675,12 +675,12 @@ class CurrencyController extends Controller
     /**
      * Show all transactions.
      *
-     * @param Request             $request
+     * @param Request $request
      *
      * @param TransactionCurrency $currency
      *
      * @return JsonResponse
-     *                     @codeCoverageIgnore
+     * @codeCoverageIgnore
      */
     public function transactions(Request $request, TransactionCurrency $currency): JsonResponse
     {
@@ -733,7 +733,7 @@ class CurrencyController extends Controller
     /**
      * Update a currency.
      *
-     * @param CurrencyRequest     $request
+     * @param CurrencyRequest $request
      * @param TransactionCurrency $currency
      *
      * @return JsonResponse
diff --git a/app/Api/V1/Controllers/CurrencyExchangeRateController.php b/app/Api/V1/Controllers/CurrencyExchangeRateController.php
index df3d73beec..25ddc71b32 100644
--- a/app/Api/V1/Controllers/CurrencyExchangeRateController.php
+++ b/app/Api/V1/Controllers/CurrencyExchangeRateController.php
@@ -90,6 +90,7 @@ class CurrencyExchangeRateController extends Controller
             throw new FireflyException('Unknown destination currency.');
         }
 
+        /** @var Carbon $dateObj */
         $dateObj = Carbon::createFromFormat('Y-m-d', $request->get('date') ?? date('Y-m-d'));
         $this->parameters->set('from', $fromCurrency->code);
         $this->parameters->set('to', $toCurrency->code);
diff --git a/app/Api/V1/Controllers/ImportController.php b/app/Api/V1/Controllers/ImportController.php
index 4ad06e97e7..302136d7b0 100644
--- a/app/Api/V1/Controllers/ImportController.php
+++ b/app/Api/V1/Controllers/ImportController.php
@@ -72,7 +72,7 @@ class ImportController extends Controller
      * @param Request $request
      *
      * @return JsonResponse
-     *                     @codeCoverageIgnore
+     * @codeCoverageIgnore
      */
     public function listAll(Request $request): JsonResponse
     {
@@ -104,11 +104,11 @@ class ImportController extends Controller
     }
 
     /**
-     * @param Request   $request
+     * @param Request $request
      * @param ImportJob $importJob
      *
      * @return JsonResponse
-     *                     @codeCoverageIgnore
+     * @codeCoverageIgnore
      */
     public function show(Request $request, ImportJob $importJob): JsonResponse
     {
@@ -128,11 +128,11 @@ class ImportController extends Controller
     /**
      * Show all transactions
      *
-     * @param Request   $request
+     * @param Request $request
      * @param ImportJob $importJob
      *
      * @return JsonResponse
-     *                     @codeCoverageIgnore
+     * @codeCoverageIgnore
      */
     public function transactions(Request $request, ImportJob $importJob): JsonResponse
     {
diff --git a/app/Api/V1/Controllers/LinkTypeController.php b/app/Api/V1/Controllers/LinkTypeController.php
index 03e1ecf3ad..1ce5a1bc74 100644
--- a/app/Api/V1/Controllers/LinkTypeController.php
+++ b/app/Api/V1/Controllers/LinkTypeController.php
@@ -137,11 +137,11 @@ class LinkTypeController extends Controller
     /**
      * List single resource.
      *
-     * @param Request  $request
+     * @param Request $request
      * @param LinkType $linkType
      *
      * @return JsonResponse
-     *                     @codeCoverageIgnore
+     * @codeCoverageIgnore
      */
     public function show(Request $request, LinkType $linkType): JsonResponse
     {
@@ -193,11 +193,11 @@ class LinkTypeController extends Controller
     /**
      * Delete the resource.
      *
-     * @param Request  $request
+     * @param Request $request
      * @param LinkType $linkType
      *
      * @return JsonResponse
-     *                     @codeCoverageIgnore
+     * @codeCoverageIgnore
      */
     public function transactions(Request $request, LinkType $linkType): JsonResponse
     {
@@ -255,7 +255,7 @@ class LinkTypeController extends Controller
      * Update object.
      *
      * @param LinkTypeRequest $request
-     * @param LinkType        $linkType
+     * @param LinkType $linkType
      *
      * @return JsonResponse
      * @throws FireflyException
diff --git a/app/Api/V1/Controllers/PiggyBankController.php b/app/Api/V1/Controllers/PiggyBankController.php
index 314562fa6b..2f223e821a 100644
--- a/app/Api/V1/Controllers/PiggyBankController.php
+++ b/app/Api/V1/Controllers/PiggyBankController.php
@@ -130,7 +130,7 @@ class PiggyBankController extends Controller
     /**
      * List single resource.
      *
-     * @param Request   $request
+     * @param Request $request
      * @param PiggyBank $piggyBank
      *
      * @return JsonResponse
@@ -166,7 +166,7 @@ class PiggyBankController extends Controller
     /**
      * List single resource.
      *
-     * @param Request   $request
+     * @param Request $request
      * @param PiggyBank $piggyBank
      *
      * @return JsonResponse
@@ -220,7 +220,7 @@ class PiggyBankController extends Controller
      * Update piggy bank.
      *
      * @param PiggyBankRequest $request
-     * @param PiggyBank        $piggyBank
+     * @param PiggyBank $piggyBank
      *
      * @return JsonResponse
      */
diff --git a/app/Api/V1/Controllers/PreferenceController.php b/app/Api/V1/Controllers/PreferenceController.php
index 267b7cf0a2..dfd8c271aa 100644
--- a/app/Api/V1/Controllers/PreferenceController.php
+++ b/app/Api/V1/Controllers/PreferenceController.php
@@ -119,7 +119,7 @@ class PreferenceController extends Controller
     /**
      * Return a single preference by name.
      *
-     * @param Request    $request
+     * @param Request $request
      * @param Preference $preference
      *
      * @return JsonResponse
@@ -147,7 +147,7 @@ class PreferenceController extends Controller
      * Update a preference.
      *
      * @param PreferenceRequest $request
-     * @param Preference        $preference
+     * @param Preference $preference
      *
      * @return JsonResponse
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
diff --git a/app/Api/V1/Controllers/RecurrenceController.php b/app/Api/V1/Controllers/RecurrenceController.php
index 5ca6fb2410..e5fd4182ba 100644
--- a/app/Api/V1/Controllers/RecurrenceController.php
+++ b/app/Api/V1/Controllers/RecurrenceController.php
@@ -133,7 +133,7 @@ class RecurrenceController extends Controller
     /**
      * List single resource.
      *
-     * @param Request    $request
+     * @param Request $request
      * @param Recurrence $recurrence
      *
      * @return JsonResponse
@@ -182,7 +182,7 @@ class RecurrenceController extends Controller
     /**
      * Show transactions for this recurrence.
      *
-     * @param Request    $request
+     * @param Request $request
      * @param Recurrence $recurrence
      *
      * @return JsonResponse
@@ -267,7 +267,7 @@ class RecurrenceController extends Controller
      * Update single recurrence.
      *
      * @param RecurrenceUpdateRequest $request
-     * @param Recurrence        $recurrence
+     * @param Recurrence $recurrence
      *
      * @return JsonResponse
      */
diff --git a/app/Api/V1/Controllers/RuleController.php b/app/Api/V1/Controllers/RuleController.php
index 5fefc9bce8..8b8326e411 100644
--- a/app/Api/V1/Controllers/RuleController.php
+++ b/app/Api/V1/Controllers/RuleController.php
@@ -24,6 +24,7 @@ declare(strict_types=1);
 namespace FireflyIII\Api\V1\Controllers;
 
 use Carbon\Carbon;
+use Exception;
 use FireflyIII\Api\V1\Requests\RuleRequest;
 use FireflyIII\Exceptions\FireflyException;
 use FireflyIII\Jobs\ExecuteRuleOnExistingTransactions;
@@ -45,7 +46,7 @@ use League\Fractal\Resource\Collection as FractalCollection;
 use League\Fractal\Resource\Item;
 use League\Fractal\Serializer\JsonApiSerializer;
 use Log;
-use Exception;
+
 /**
  * Class RuleController
  */
@@ -85,7 +86,7 @@ class RuleController extends Controller
      * @param Rule $rule
      *
      * @return JsonResponse
-     *                     @codeCoverageIgnore
+     * @codeCoverageIgnore
      */
     public function delete(Rule $rule): JsonResponse
     {
@@ -100,7 +101,7 @@ class RuleController extends Controller
      * @param Request $request
      *
      * @return JsonResponse
-     *                     @codeCoverageIgnore
+     * @codeCoverageIgnore
      */
     public function index(Request $request): JsonResponse
     {
@@ -138,10 +139,10 @@ class RuleController extends Controller
      * List single resource.
      *
      * @param Request $request
-     * @param Rule    $rule
+     * @param Rule $rule
      *
      * @return JsonResponse
-     *                     @codeCoverageIgnore
+     * @codeCoverageIgnore
      */
     public function show(Request $request, Rule $rule): JsonResponse
     {
@@ -183,8 +184,9 @@ class RuleController extends Controller
     }
 
     /**
+     * TODO deprecated return values in transformer.
      * @param Request $request
-     * @param Rule    $rule
+     * @param Rule $rule
      *
      * @return JsonResponse
      * @throws FireflyException
@@ -193,7 +195,9 @@ class RuleController extends Controller
     {
         $pageSize     = (int)app('preferences')->getForUser(auth()->user(), 'listPageSize', 50)->data;
         $page         = 0 === (int)$request->query('page') ? 1 : (int)$request->query('page');
+        /** @var Carbon $startDate */
         $startDate    = null === $request->query('start_date') ? null : Carbon::createFromFormat('Y-m-d', $request->query('start_date'));
+        /** @var Carbon $endDate */
         $endDate      = null === $request->query('end_date') ? null : Carbon::createFromFormat('Y-m-d', $request->query('end_date'));
         $searchLimit  = 0 === (int)$request->query('search_limit') ? (int)config('firefly.test-triggers.limit') : (int)$request->query('search_limit');
         $triggerLimit = 0 === (int)$request->query('triggered_limit') ? (int)config('firefly.test-triggers.range') : (int)$request->query('triggered_limit');
@@ -253,7 +257,7 @@ class RuleController extends Controller
      * Execute the given rule group on a set of existing transactions.
      *
      * @param Request $request
-     * @param Rule    $rule
+     * @param Rule $rule
      *
      * @return JsonResponse
      * @throws Exception
@@ -299,7 +303,7 @@ class RuleController extends Controller
      * Update a rule.
      *
      * @param RuleRequest $request
-     * @param Rule        $rule
+     * @param Rule $rule
      *
      * @return JsonResponse
      */
diff --git a/app/Api/V1/Controllers/RuleGroupController.php b/app/Api/V1/Controllers/RuleGroupController.php
index 7a600b0f74..0464317879 100644
--- a/app/Api/V1/Controllers/RuleGroupController.php
+++ b/app/Api/V1/Controllers/RuleGroupController.php
@@ -24,6 +24,7 @@ declare(strict_types=1);
 namespace FireflyIII\Api\V1\Controllers;
 
 use Carbon\Carbon;
+use Exception;
 use FireflyIII\Api\V1\Requests\RuleGroupRequest;
 use FireflyIII\Exceptions\FireflyException;
 use FireflyIII\Jobs\ExecuteRuleOnExistingTransactions;
@@ -47,7 +48,6 @@ use League\Fractal\Resource\Collection as FractalCollection;
 use League\Fractal\Resource\Item;
 use League\Fractal\Serializer\JsonApiSerializer;
 use Log;
-use Exception;
 
 /**
  * Class RuleGroupController
@@ -88,7 +88,7 @@ class RuleGroupController extends Controller
      * @param RuleGroup $ruleGroup
      *
      * @return JsonResponse
-     *                     @codeCoverageIgnore
+     * @codeCoverageIgnore
      */
     public function delete(RuleGroup $ruleGroup): JsonResponse
     {
@@ -103,7 +103,7 @@ class RuleGroupController extends Controller
      * @param Request $request
      *
      * @return JsonResponse
-     *                     @codeCoverageIgnore
+     * @codeCoverageIgnore
      */
     public function index(Request $request): JsonResponse
     {
@@ -137,11 +137,11 @@ class RuleGroupController extends Controller
     }
 
     /**
-     * @param Request   $request
+     * @param Request $request
      * @param RuleGroup $group
      *
      * @return JsonResponse
-     *                     @codeCoverageIgnore
+     * @codeCoverageIgnore
      */
     public function rules(Request $request, RuleGroup $group): JsonResponse
     {
@@ -178,11 +178,11 @@ class RuleGroupController extends Controller
     /**
      * List single resource.
      *
-     * @param Request   $request
+     * @param Request $request
      * @param RuleGroup $ruleGroup
      *
      * @return JsonResponse
-     *                     @codeCoverageIgnore
+     * @codeCoverageIgnore
      */
     public function show(Request $request, RuleGroup $ruleGroup): JsonResponse
     {
@@ -225,7 +225,7 @@ class RuleGroupController extends Controller
     }
 
     /**
-     * @param Request   $request
+     * @param Request $request
      * @param RuleGroup $group
      *
      * @return JsonResponse
@@ -284,10 +284,55 @@ class RuleGroupController extends Controller
         return response()->json($manager->createData($resource)->toArray())->header('Content-Type', 'application/vnd.api+json');
     }
 
+    /**
+     * @param Request $request
+     *
+     * @return array
+     */
+    private function getTestParameters(Request $request): array
+    {
+        return [
+            'page_size'     => (int)app('preferences')->getForUser(auth()->user(), 'listPageSize', 50)->data,
+            'page'          => 0 === (int)$request->query('page') ? 1 : (int)$request->query('page'),
+            'start_date'    => null === $request->query('start_date') ? null : Carbon::createFromFormat('Y-m-d', $request->query('start_date')),
+            'end_date'      => null === $request->query('end_date') ? null : Carbon::createFromFormat('Y-m-d', $request->query('end_date')),
+            'search_limit'  => 0 === (int)$request->query('search_limit') ? (int)config('firefly.test-triggers.limit') : (int)$request->query('search_limit'),
+            'trigger_limit' => 0 === (int)$request->query('triggered_limit')
+                ? (int)config('firefly.test-triggers.range')
+                : (int)$request->query(
+                    'triggered_limit'
+                ),
+            'account_list'  => '' === (string)$request->query('accounts') ? [] : explode(',', $request->query('accounts')),
+        ];
+    }
+
+    /**
+     * @param array $accounts
+     *
+     * @return Collection
+     */
+    private function getAccountParameter(array $accounts): Collection
+    {
+        $return = new Collection;
+        foreach ($accounts as $accountId) {
+            Log::debug(sprintf('Searching for asset account with id "%s"', $accountId));
+            $account = $this->accountRepository->findNull((int)$accountId);
+            if (null !== $account && AccountType::ASSET === $account->accountType->type) {
+                Log::debug(sprintf('Found account #%d ("%s") and its an asset account', $account->id, $account->name));
+                $return->push($account);
+            }
+            if (null === $account) {
+                Log::debug(sprintf('No asset account with id "%s"', $accountId));
+            }
+        }
+
+        return $return;
+    }
+
     /**
      * Execute the given rule group on a set of existing transactions.
      *
-     * @param Request   $request
+     * @param Request $request
      * @param RuleGroup $group
      *
      * @return JsonResponse
@@ -339,7 +384,7 @@ class RuleGroupController extends Controller
      * TODO update order of rule group
      *
      * @param RuleGroupRequest $request
-     * @param RuleGroup        $ruleGroup
+     * @param RuleGroup $ruleGroup
      *
      * @return JsonResponse
      */
@@ -359,49 +404,4 @@ class RuleGroupController extends Controller
         return response()->json($manager->createData($resource)->toArray())->header('Content-Type', 'application/vnd.api+json');
 
     }
-
-    /**
-     * @param array $accounts
-     *
-     * @return Collection
-     */
-    private function getAccountParameter(array $accounts): Collection
-    {
-        $return = new Collection;
-        foreach ($accounts as $accountId) {
-            Log::debug(sprintf('Searching for asset account with id "%s"', $accountId));
-            $account = $this->accountRepository->findNull((int)$accountId);
-            if (null !== $account && AccountType::ASSET === $account->accountType->type) {
-                Log::debug(sprintf('Found account #%d ("%s") and its an asset account', $account->id, $account->name));
-                $return->push($account);
-            }
-            if (null === $account) {
-                Log::debug(sprintf('No asset account with id "%s"', $accountId));
-            }
-        }
-
-        return $return;
-    }
-
-    /**
-     * @param Request $request
-     *
-     * @return array
-     */
-    private function getTestParameters(Request $request): array
-    {
-        return [
-            'page_size'     => (int)app('preferences')->getForUser(auth()->user(), 'listPageSize', 50)->data,
-            'page'          => 0 === (int)$request->query('page') ? 1 : (int)$request->query('page'),
-            'start_date'    => null === $request->query('start_date') ? null : Carbon::createFromFormat('Y-m-d', $request->query('start_date')),
-            'end_date'      => null === $request->query('end_date') ? null : Carbon::createFromFormat('Y-m-d', $request->query('end_date')),
-            'search_limit'  => 0 === (int)$request->query('search_limit') ? (int)config('firefly.test-triggers.limit') : (int)$request->query('search_limit'),
-            'trigger_limit' => 0 === (int)$request->query('triggered_limit')
-                ? (int)config('firefly.test-triggers.range')
-                : (int)$request->query(
-                    'triggered_limit'
-                ),
-            'account_list'  => '' === (string)$request->query('accounts') ? [] : explode(',', $request->query('accounts')),
-        ];
-    }
 }
diff --git a/app/Api/V1/Controllers/SummaryController.php b/app/Api/V1/Controllers/SummaryController.php
index fde4c5bc83..4c7d047cb6 100644
--- a/app/Api/V1/Controllers/SummaryController.php
+++ b/app/Api/V1/Controllers/SummaryController.php
@@ -99,7 +99,9 @@ class SummaryController extends Controller
         if ('' === $start || '' === $end) {
             throw new FireflyException('Start and end are mandatory parameters.');
         }
+        /** @var Carbon $start */
         $start = Carbon::createFromFormat('Y-m-d', $start);
+        /** @var Carbon $end */
         $end   = Carbon::createFromFormat('Y-m-d', $end);
         // balance information:
         $balanceData  = $this->getBalanceInformation($start, $end);
@@ -114,50 +116,6 @@ class SummaryController extends Controller
 
     }
 
-    /**
-     * Check if date is outside session range.
-     *
-     * @param Carbon $date
-     *
-     * @param Carbon $start
-     * @param Carbon $end
-     *
-     * @return bool
-     * @SuppressWarnings(PHPMD.CyclomaticComplexity)
-     */
-    protected function notInDateRange(Carbon $date, Carbon $start, Carbon $end): bool // Validate a preference
-    {
-        $result = false;
-        if ($start->greaterThanOrEqualTo($date) && $end->greaterThanOrEqualTo($date)) {
-            $result = true;
-        }
-        // start and end in the past? use $end
-        if ($start->lessThanOrEqualTo($date) && $end->lessThanOrEqualTo($date)) {
-            $result = true;
-        }
-
-        return $result;
-    }
-
-    /**
-     * This method will scroll through the results of the spentInPeriodMc() array and return the correct info.
-     *
-     * @param array               $spentInfo
-     * @param TransactionCurrency $currency
-     *
-     * @return float
-     */
-    private function findInSpentArray(array $spentInfo, TransactionCurrency $currency): float
-    {
-        foreach ($spentInfo as $array) {
-            if ($array['currency_id'] === $currency->id) {
-                return $array['amount'];
-            }
-        }
-
-        return 0.0;
-    }
-
     /**
      * @param Carbon $start
      * @param Carbon $end
@@ -368,6 +326,25 @@ class SummaryController extends Controller
         return $return;
     }
 
+    /**
+     * This method will scroll through the results of the spentInPeriodMc() array and return the correct info.
+     *
+     * @param array $spentInfo
+     * @param TransactionCurrency $currency
+     *
+     * @return float
+     */
+    private function findInSpentArray(array $spentInfo, TransactionCurrency $currency): float
+    {
+        foreach ($spentInfo as $array) {
+            if ($array['currency_id'] === $currency->id) {
+                return $array['amount'];
+            }
+        }
+
+        return 0.0;
+    }
+
     /**
      * @param Carbon $start
      * @param Carbon $end
@@ -428,4 +405,29 @@ class SummaryController extends Controller
         return $return;
     }
 
+    /**
+     * Check if date is outside session range.
+     *
+     * @param Carbon $date
+     *
+     * @param Carbon $start
+     * @param Carbon $end
+     *
+     * @return bool
+     * @SuppressWarnings(PHPMD.CyclomaticComplexity)
+     */
+    protected function notInDateRange(Carbon $date, Carbon $start, Carbon $end): bool // Validate a preference
+    {
+        $result = false;
+        if ($start->greaterThanOrEqualTo($date) && $end->greaterThanOrEqualTo($date)) {
+            $result = true;
+        }
+        // start and end in the past? use $end
+        if ($start->lessThanOrEqualTo($date) && $end->lessThanOrEqualTo($date)) {
+            $result = true;
+        }
+
+        return $result;
+    }
+
 }
diff --git a/app/Api/V1/Controllers/TagController.php b/app/Api/V1/Controllers/TagController.php
index 3c9d0cbe41..b7ba6b4327 100644
--- a/app/Api/V1/Controllers/TagController.php
+++ b/app/Api/V1/Controllers/TagController.php
@@ -87,7 +87,9 @@ class TagController extends Controller
         if ('' === $start || '' === $end) {
             throw new FireflyException('Start and end are mandatory parameters.');
         }
+        /** @var Carbon $start */
         $start = Carbon::createFromFormat('Y-m-d', $start);
+        /** @var Carbon $end */
         $end   = Carbon::createFromFormat('Y-m-d', $end);
 
         // get all tags:
@@ -180,7 +182,7 @@ class TagController extends Controller
      * List single resource.
      *
      * @param Request $request
-     * @param Tag     $tag
+     * @param Tag $tag
      *
      * @return JsonResponse
      * @codeCoverageIgnore
@@ -228,7 +230,7 @@ class TagController extends Controller
      * Show all transactions.
      *
      * @param Request $request
-     * @param Tag     $tag
+     * @param Tag $tag
      *
      * @return JsonResponse
      * @codeCoverageIgnore
@@ -284,7 +286,7 @@ class TagController extends Controller
      * Update a rule.
      *
      * @param TagRequest $request
-     * @param Tag        $tag
+     * @param Tag $tag
      *
      * @return JsonResponse
      */
diff --git a/app/Api/V1/Controllers/TransactionLinkController.php b/app/Api/V1/Controllers/TransactionLinkController.php
index 64e372568f..e0d5cf38ed 100644
--- a/app/Api/V1/Controllers/TransactionLinkController.php
+++ b/app/Api/V1/Controllers/TransactionLinkController.php
@@ -81,7 +81,7 @@ class TransactionLinkController extends Controller
      * @param TransactionJournalLink $link
      *
      * @return JsonResponse
-     *                     @codeCoverageIgnore
+     * @codeCoverageIgnore
      */
     public function delete(TransactionJournalLink $link): JsonResponse
     {
@@ -96,7 +96,7 @@ class TransactionLinkController extends Controller
      * @param Request $request
      *
      * @return JsonResponse
-     *                     @codeCoverageIgnore
+     * @codeCoverageIgnore
      */
     public function index(Request $request): JsonResponse
     {
@@ -137,11 +137,11 @@ class TransactionLinkController extends Controller
     /**
      * List single resource.
      *
-     * @param Request                $request
+     * @param Request $request
      * @param TransactionJournalLink $journalLink
      *
      * @return JsonResponse
-     *                     @codeCoverageIgnore
+     * @codeCoverageIgnore
      */
     public function show(Request $request, TransactionJournalLink $journalLink): JsonResponse
     {
diff --git a/app/Api/V1/Controllers/UserController.php b/app/Api/V1/Controllers/UserController.php
index 801fa46e3e..7d1cf74239 100644
--- a/app/Api/V1/Controllers/UserController.php
+++ b/app/Api/V1/Controllers/UserController.php
@@ -70,11 +70,11 @@ class UserController extends Controller
     /**
      * Remove the specified resource from storage.
      *
-     * @param  \FireflyIII\User $user
+     * @param User $user
      *
      * @return JsonResponse
      * @throws FireflyException
-     *                         @codeCoverageIgnore
+     * @codeCoverageIgnore
      */
     public function delete(User $user): JsonResponse
     {
@@ -94,7 +94,7 @@ class UserController extends Controller
      * @param Request $request
      *
      * @return JsonResponse
-     *                     @codeCoverageIgnore
+     * @codeCoverageIgnore
      */
     public function index(Request $request): JsonResponse
     {
@@ -130,10 +130,10 @@ class UserController extends Controller
      * Show a single user.
      *
      * @param Request $request
-     * @param User    $user
+     * @param User $user
      *
      * @return JsonResponse
-     *                     @codeCoverageIgnore
+     * @codeCoverageIgnore
      */
     public function show(Request $request, User $user): JsonResponse
     {
@@ -184,7 +184,7 @@ class UserController extends Controller
      * Update a user.
      *
      * @param UserRequest $request
-     * @param User        $user
+     * @param User $user
      *
      * @return JsonResponse
      */
diff --git a/app/Api/V1/Requests/AccountStoreRequest.php b/app/Api/V1/Requests/AccountStoreRequest.php
index 915b505730..17f614db9c 100644
--- a/app/Api/V1/Requests/AccountStoreRequest.php
+++ b/app/Api/V1/Requests/AccountStoreRequest.php
@@ -24,7 +24,6 @@ declare(strict_types=1);
 
 namespace FireflyIII\Api\V1\Requests;
 
-use Exception;
 use FireflyIII\Rules\IsBoolean;
 
 /**
diff --git a/app/Api/V1/Requests/AccountUpdateRequest.php b/app/Api/V1/Requests/AccountUpdateRequest.php
index d7f5973422..3e3e727e24 100644
--- a/app/Api/V1/Requests/AccountUpdateRequest.php
+++ b/app/Api/V1/Requests/AccountUpdateRequest.php
@@ -24,7 +24,6 @@ declare(strict_types=1);
 
 namespace FireflyIII\Api\V1\Requests;
 
-use Exception;
 use FireflyIII\Rules\IsBoolean;
 
 /**
diff --git a/app/Api/V1/Requests/AttachmentRequest.php b/app/Api/V1/Requests/AttachmentRequest.php
index bd8588fd70..9f7947db4d 100644
--- a/app/Api/V1/Requests/AttachmentRequest.php
+++ b/app/Api/V1/Requests/AttachmentRequest.php
@@ -25,7 +25,6 @@ namespace FireflyIII\Api\V1\Requests;
 
 use FireflyIII\Models\Bill;
 use FireflyIII\Models\ImportJob;
-use FireflyIII\Models\Transaction;
 use FireflyIII\Models\TransactionJournal;
 use FireflyIII\Rules\IsValidAttachmentModel;
 
diff --git a/app/Api/V1/Requests/AvailableBudgetRequest.php b/app/Api/V1/Requests/AvailableBudgetRequest.php
index ee7cb76b1b..d8de313bc0 100644
--- a/app/Api/V1/Requests/AvailableBudgetRequest.php
+++ b/app/Api/V1/Requests/AvailableBudgetRequest.php
@@ -23,8 +23,6 @@ declare(strict_types=1);
 
 namespace FireflyIII\Api\V1\Requests;
 
-use Exception;
-
 /**
  * Class AvailableBudgetRequest
  *
diff --git a/app/Api/V1/Requests/BillRequest.php b/app/Api/V1/Requests/BillRequest.php
index bb07aac11d..8cfa5c147d 100644
--- a/app/Api/V1/Requests/BillRequest.php
+++ b/app/Api/V1/Requests/BillRequest.php
@@ -90,7 +90,7 @@ class BillRequest extends Request
             'date'          => 'required|date',
             'repeat_freq'   => 'required|in:weekly,monthly,quarterly,half-year,yearly',
             'skip'          => 'between:0,31',
-            'automatch'     => [new IsBoolean],
+            'automatch'     => [new IsBoolean], // TODO isn't automatch deprecated?
             'active'        => [new IsBoolean],
             'notes'         => 'between:1,65536',
         ];
diff --git a/app/Api/V1/Requests/RecurrenceStoreRequest.php b/app/Api/V1/Requests/RecurrenceStoreRequest.php
index 6714d13e86..a25ae6b3c2 100644
--- a/app/Api/V1/Requests/RecurrenceStoreRequest.php
+++ b/app/Api/V1/Requests/RecurrenceStoreRequest.php
@@ -86,6 +86,68 @@ class RecurrenceStoreRequest extends Request
         return $return;
     }
 
+    /**
+     * Returns the transaction data as it is found in the submitted data. It's a complex method according to code
+     * standards but it just has a lot of ??-statements because of the fields that may or may not exist.
+     *
+     * @return array
+     * @SuppressWarnings(PHPMD.NPathComplexity)
+     * @SuppressWarnings(PHPMD.CyclomaticComplexity)
+     */
+    private function getTransactionData(): array
+    {
+        $return = [];
+        // transaction data:
+        /** @var array $transactions */
+        $transactions = $this->get('transactions');
+        /** @var array $transaction */
+        foreach ($transactions as $transaction) {
+            $return[] = [
+                'amount'                => $transaction['amount'],
+                'currency_id'           => isset($transaction['currency_id']) ? (int)$transaction['currency_id'] : null,
+                'currency_code'         => $transaction['currency_code'] ?? null,
+                'foreign_amount'        => $transaction['foreign_amount'] ?? null,
+                'foreign_currency_id'   => isset($transaction['foreign_currency_id']) ? (int)$transaction['foreign_currency_id'] : null,
+                'foreign_currency_code' => $transaction['foreign_currency_code'] ?? null,
+                'budget_id'             => isset($transaction['budget_id']) ? (int)$transaction['budget_id'] : null,
+                'budget_name'           => $transaction['budget_name'] ?? null,
+                'category_id'           => isset($transaction['category_id']) ? (int)$transaction['category_id'] : null,
+                'category_name'         => $transaction['category_name'] ?? null,
+                'source_id'             => isset($transaction['source_id']) ? (int)$transaction['source_id'] : null,
+                'source_name'           => isset($transaction['source_name']) ? (string)$transaction['source_name'] : null,
+                'destination_id'        => isset($transaction['destination_id']) ? (int)$transaction['destination_id'] : null,
+                'destination_name'      => isset($transaction['destination_name']) ? (string)$transaction['destination_name'] : null,
+                'description'           => $transaction['description'],
+            ];
+        }
+
+        return $return;
+    }
+
+    /**
+     * Returns the repetition data as it is found in the submitted data.
+     *
+     * @return array
+     */
+    private function getRepetitionData(): array
+    {
+        $return = [];
+        // repetition data:
+        /** @var array $repetitions */
+        $repetitions = $this->get('repetitions');
+        /** @var array $repetition */
+        foreach ($repetitions as $repetition) {
+            $return[] = [
+                'type'    => $repetition['type'],
+                'moment'  => $repetition['moment'],
+                'skip'    => (int)$repetition['skip'],
+                'weekend' => (int)$repetition['weekend'],
+            ];
+        }
+
+        return $return;
+    }
+
     /**
      * The rules that the incoming request must be matched against.
      *
@@ -131,7 +193,7 @@ class RecurrenceStoreRequest extends Request
     /**
      * Configure the validator instance.
      *
-     * @param  Validator $validator
+     * @param Validator $validator
      *
      * @return void
      */
@@ -148,67 +210,4 @@ class RecurrenceStoreRequest extends Request
             }
         );
     }
-
-
-    /**
-     * Returns the repetition data as it is found in the submitted data.
-     *
-     * @return array
-     */
-    private function getRepetitionData(): array
-    {
-        $return = [];
-        // repetition data:
-        /** @var array $repetitions */
-        $repetitions = $this->get('repetitions');
-        /** @var array $repetition */
-        foreach ($repetitions as $repetition) {
-            $return[] = [
-                'type'    => $repetition['type'],
-                'moment'  => $repetition['moment'],
-                'skip'    => (int)$repetition['skip'],
-                'weekend' => (int)$repetition['weekend'],
-            ];
-        }
-
-        return $return;
-    }
-
-    /**
-     * Returns the transaction data as it is found in the submitted data. It's a complex method according to code
-     * standards but it just has a lot of ??-statements because of the fields that may or may not exist.
-     *
-     * @return array
-     * @SuppressWarnings(PHPMD.NPathComplexity)
-     * @SuppressWarnings(PHPMD.CyclomaticComplexity)
-     */
-    private function getTransactionData(): array
-    {
-        $return = [];
-        // transaction data:
-        /** @var array $transactions */
-        $transactions = $this->get('transactions');
-        /** @var array $transaction */
-        foreach ($transactions as $transaction) {
-            $return[] = [
-                'amount'                => $transaction['amount'],
-                'currency_id'           => isset($transaction['currency_id']) ? (int)$transaction['currency_id'] : null,
-                'currency_code'         => $transaction['currency_code'] ?? null,
-                'foreign_amount'        => $transaction['foreign_amount'] ?? null,
-                'foreign_currency_id'   => isset($transaction['foreign_currency_id']) ? (int)$transaction['foreign_currency_id'] : null,
-                'foreign_currency_code' => $transaction['foreign_currency_code'] ?? null,
-                'budget_id'             => isset($transaction['budget_id']) ? (int)$transaction['budget_id'] : null,
-                'budget_name'           => $transaction['budget_name'] ?? null,
-                'category_id'           => isset($transaction['category_id']) ? (int)$transaction['category_id'] : null,
-                'category_name'         => $transaction['category_name'] ?? null,
-                'source_id'             => isset($transaction['source_id']) ? (int)$transaction['source_id'] : null,
-                'source_name'           => isset($transaction['source_name']) ? (string)$transaction['source_name'] : null,
-                'destination_id'        => isset($transaction['destination_id']) ? (int)$transaction['destination_id'] : null,
-                'destination_name'      => isset($transaction['destination_name']) ? (string)$transaction['destination_name'] : null,
-                'description'           => $transaction['description'],
-            ];
-        }
-
-        return $return;
-    }
 }
diff --git a/app/Api/V1/Requests/RecurrenceUpdateRequest.php b/app/Api/V1/Requests/RecurrenceUpdateRequest.php
index fdd031e265..ab5f52e466 100644
--- a/app/Api/V1/Requests/RecurrenceUpdateRequest.php
+++ b/app/Api/V1/Requests/RecurrenceUpdateRequest.php
@@ -86,6 +86,68 @@ class RecurrenceUpdateRequest extends Request
         return $return;
     }
 
+    /**
+     * Returns the transaction data as it is found in the submitted data. It's a complex method according to code
+     * standards but it just has a lot of ??-statements because of the fields that may or may not exist.
+     *
+     * @return array
+     * @SuppressWarnings(PHPMD.NPathComplexity)
+     * @SuppressWarnings(PHPMD.CyclomaticComplexity)
+     */
+    private function getTransactionData(): array
+    {
+        $return = [];
+        // transaction data:
+        /** @var array $transactions */
+        $transactions = $this->get('transactions');
+        /** @var array $transaction */
+        foreach ($transactions as $transaction) {
+            $return[] = [
+                'amount'                => $transaction['amount'],
+                'currency_id'           => isset($transaction['currency_id']) ? (int)$transaction['currency_id'] : null,
+                'currency_code'         => $transaction['currency_code'] ?? null,
+                'foreign_amount'        => $transaction['foreign_amount'] ?? null,
+                'foreign_currency_id'   => isset($transaction['foreign_currency_id']) ? (int)$transaction['foreign_currency_id'] : null,
+                'foreign_currency_code' => $transaction['foreign_currency_code'] ?? null,
+                'budget_id'             => isset($transaction['budget_id']) ? (int)$transaction['budget_id'] : null,
+                'budget_name'           => $transaction['budget_name'] ?? null,
+                'category_id'           => isset($transaction['category_id']) ? (int)$transaction['category_id'] : null,
+                'category_name'         => $transaction['category_name'] ?? null,
+                'source_id'             => isset($transaction['source_id']) ? (int)$transaction['source_id'] : null,
+                'source_name'           => isset($transaction['source_name']) ? (string)$transaction['source_name'] : null,
+                'destination_id'        => isset($transaction['destination_id']) ? (int)$transaction['destination_id'] : null,
+                'destination_name'      => isset($transaction['destination_name']) ? (string)$transaction['destination_name'] : null,
+                'description'           => $transaction['description'],
+            ];
+        }
+
+        return $return;
+    }
+
+    /**
+     * Returns the repetition data as it is found in the submitted data.
+     *
+     * @return array
+     */
+    private function getRepetitionData(): array
+    {
+        $return = [];
+        // repetition data:
+        /** @var array $repetitions */
+        $repetitions = $this->get('repetitions');
+        /** @var array $repetition */
+        foreach ($repetitions as $repetition) {
+            $return[] = [
+                'type'    => $repetition['type'],
+                'moment'  => $repetition['moment'],
+                'skip'    => (int)$repetition['skip'],
+                'weekend' => (int)$repetition['weekend'],
+            ];
+        }
+
+        return $return;
+    }
+
     /**
      * The rules that the incoming request must be matched against.
      *
@@ -131,7 +193,7 @@ class RecurrenceUpdateRequest extends Request
     /**
      * Configure the validator instance.
      *
-     * @param  Validator $validator
+     * @param Validator $validator
      *
      * @return void
      */
@@ -148,67 +210,4 @@ class RecurrenceUpdateRequest extends Request
             }
         );
     }
-
-
-    /**
-     * Returns the repetition data as it is found in the submitted data.
-     *
-     * @return array
-     */
-    private function getRepetitionData(): array
-    {
-        $return = [];
-        // repetition data:
-        /** @var array $repetitions */
-        $repetitions = $this->get('repetitions');
-        /** @var array $repetition */
-        foreach ($repetitions as $repetition) {
-            $return[] = [
-                'type'    => $repetition['type'],
-                'moment'  => $repetition['moment'],
-                'skip'    => (int)$repetition['skip'],
-                'weekend' => (int)$repetition['weekend'],
-            ];
-        }
-
-        return $return;
-    }
-
-    /**
-     * Returns the transaction data as it is found in the submitted data. It's a complex method according to code
-     * standards but it just has a lot of ??-statements because of the fields that may or may not exist.
-     *
-     * @return array
-     * @SuppressWarnings(PHPMD.NPathComplexity)
-     * @SuppressWarnings(PHPMD.CyclomaticComplexity)
-     */
-    private function getTransactionData(): array
-    {
-        $return = [];
-        // transaction data:
-        /** @var array $transactions */
-        $transactions = $this->get('transactions');
-        /** @var array $transaction */
-        foreach ($transactions as $transaction) {
-            $return[] = [
-                'amount'                => $transaction['amount'],
-                'currency_id'           => isset($transaction['currency_id']) ? (int)$transaction['currency_id'] : null,
-                'currency_code'         => $transaction['currency_code'] ?? null,
-                'foreign_amount'        => $transaction['foreign_amount'] ?? null,
-                'foreign_currency_id'   => isset($transaction['foreign_currency_id']) ? (int)$transaction['foreign_currency_id'] : null,
-                'foreign_currency_code' => $transaction['foreign_currency_code'] ?? null,
-                'budget_id'             => isset($transaction['budget_id']) ? (int)$transaction['budget_id'] : null,
-                'budget_name'           => $transaction['budget_name'] ?? null,
-                'category_id'           => isset($transaction['category_id']) ? (int)$transaction['category_id'] : null,
-                'category_name'         => $transaction['category_name'] ?? null,
-                'source_id'             => isset($transaction['source_id']) ? (int)$transaction['source_id'] : null,
-                'source_name'           => isset($transaction['source_name']) ? (string)$transaction['source_name'] : null,
-                'destination_id'        => isset($transaction['destination_id']) ? (int)$transaction['destination_id'] : null,
-                'destination_name'      => isset($transaction['destination_name']) ? (string)$transaction['destination_name'] : null,
-                'description'           => $transaction['description'],
-            ];
-        }
-
-        return $return;
-    }
 }
diff --git a/app/Api/V1/Requests/RuleRequest.php b/app/Api/V1/Requests/RuleRequest.php
index a1ee7ec0a0..1b0452b3ff 100644
--- a/app/Api/V1/Requests/RuleRequest.php
+++ b/app/Api/V1/Requests/RuleRequest.php
@@ -25,6 +25,7 @@ namespace FireflyIII\Api\V1\Requests;
 
 use FireflyIII\Rules\IsBoolean;
 use Illuminate\Validation\Validator;
+use function is_array;
 
 
 /**
@@ -79,6 +80,48 @@ class RuleRequest extends Request
         return $data;
     }
 
+    /**
+     * @return array
+     */
+    private function getRuleTriggers(): array
+    {
+        $triggers = $this->get('triggers');
+        $return   = [];
+        if (is_array($triggers)) {
+            foreach ($triggers as $trigger) {
+                $return[] = [
+                    'type'            => $trigger['type'],
+                    'value'           => $trigger['value'],
+                    'active'          => $this->convertBoolean((string)($trigger['active'] ?? 'false')),
+                    'stop_processing' => $this->convertBoolean((string)($trigger['stop_processing'] ?? 'false')),
+                ];
+            }
+        }
+
+        return $return;
+    }
+
+    /**
+     * @return array
+     */
+    private function getRuleActions(): array
+    {
+        $actions = $this->get('actions');
+        $return  = [];
+        if (is_array($actions)) {
+            foreach ($actions as $action) {
+                $return[] = [
+                    'type'            => $action['type'],
+                    'value'           => $action['value'],
+                    'active'          => $this->convertBoolean((string)($action['active'] ?? 'false')),
+                    'stop_processing' => $this->convertBoolean((string)($action['stop_processing'] ?? 'false')),
+                ];
+            }
+        }
+
+        return $return;
+    }
+
     /**
      * The rules that the incoming request must be matched against.
      *
@@ -117,7 +160,7 @@ class RuleRequest extends Request
     /**
      * Configure the validator instance.
      *
-     * @param  Validator $validator
+     * @param Validator $validator
      *
      * @return void
      */
@@ -131,6 +174,21 @@ class RuleRequest extends Request
         );
     }
 
+    /**
+     * Adds an error to the validator when there are no repetitions in the array of data.
+     *
+     * @param Validator $validator
+     */
+    protected function atLeastOneTrigger(Validator $validator): void
+    {
+        $data     = $validator->getData();
+        $triggers = $data['triggers'] ?? [];
+        // need at least one trigger
+        if (0 === count($triggers)) {
+            $validator->errors()->add('title', (string)trans('validation.at_least_one_trigger'));
+        }
+    }
+
     /**
      * Adds an error to the validator when there are no repetitions in the array of data.
      *
@@ -145,61 +203,4 @@ class RuleRequest extends Request
             $validator->errors()->add('title', (string)trans('validation.at_least_one_action'));
         }
     }
-
-    /**
-     * Adds an error to the validator when there are no repetitions in the array of data.
-     *
-     * @param Validator $validator
-     */
-    protected function atLeastOneTrigger(Validator $validator): void
-    {
-        $data     = $validator->getData();
-        $triggers = $data['triggers'] ?? [];
-        // need at least one trugger
-        if (0 === count($triggers)) {
-            $validator->errors()->add('title', (string)trans('validation.at_least_one_trigger'));
-        }
-    }
-
-    /**
-     * @return array
-     */
-    private function getRuleActions(): array
-    {
-        $actions = $this->get('actions');
-        $return  = [];
-        if (\is_array($actions)) {
-            foreach ($actions as $action) {
-                $return[] = [
-                    'type'            => $action['type'],
-                    'value'           => $action['value'],
-                    'active'          => $this->convertBoolean((string)($action['active'] ?? 'false')),
-                    'stop_processing' => $this->convertBoolean((string)($action['stop_processing'] ?? 'false')),
-                ];
-            }
-        }
-
-        return $return;
-    }
-
-    /**
-     * @return array
-     */
-    private function getRuleTriggers(): array
-    {
-        $triggers = $this->get('triggers');
-        $return   = [];
-        if (\is_array($triggers)) {
-            foreach ($triggers as $trigger) {
-                $return[] = [
-                    'type'            => $trigger['type'],
-                    'value'           => $trigger['value'],
-                    'active'          => $this->convertBoolean((string)($trigger['active'] ?? 'false')),
-                    'stop_processing' => $this->convertBoolean((string)($trigger['stop_processing'] ?? 'false')),
-                ];
-            }
-        }
-
-        return $return;
-    }
 }
diff --git a/app/Api/V1/Requests/TransactionLinkRequest.php b/app/Api/V1/Requests/TransactionLinkRequest.php
index 77a4306a9b..a5d37e70ea 100644
--- a/app/Api/V1/Requests/TransactionLinkRequest.php
+++ b/app/Api/V1/Requests/TransactionLinkRequest.php
@@ -81,7 +81,7 @@ class TransactionLinkRequest extends Request
     /**
      * Configure the validator instance.
      *
-     * @param  Validator $validator
+     * @param Validator $validator
      *
      * @return void
      */
diff --git a/app/Api/V1/Requests/TransactionStoreRequest.php b/app/Api/V1/Requests/TransactionStoreRequest.php
index c4d1b3a97c..024345d027 100644
--- a/app/Api/V1/Requests/TransactionStoreRequest.php
+++ b/app/Api/V1/Requests/TransactionStoreRequest.php
@@ -67,6 +67,101 @@ class TransactionStoreRequest extends Request
         return $data;
     }
 
+    /**
+     * Get transaction data.
+     *
+     * @SuppressWarnings(PHPMD.CyclomaticComplexity)
+     * @SuppressWarnings(PHPMD.NPathComplexity)
+     * @return array
+     */
+    private function getTransactionData(): array
+    {
+        $return = [];
+        /**
+         * @var int $index
+         * @var array $transaction
+         */
+        foreach ($this->get('transactions') as $index => $transaction) {
+            $object   = new NullArrayObject($transaction);
+            $return[] = [
+                'type'  => $this->stringFromValue($object['type']),
+                'date'  => $this->dateFromValue($object['date']),
+                'order' => $this->integerFromValue((string)$object['order']),
+
+                'currency_id'           => $this->integerFromValue($object['currency_id']),
+                'currency_code'         => $this->stringFromValue($object['currency_code']),
+
+                // foreign currency info:
+                'foreign_currency_id'   => $this->integerFromValue((string)$object['foreign_currency_id']),
+                'foreign_currency_code' => $this->stringFromValue($object['foreign_currency_code']),
+
+                // amount and foreign amount. Cannot be 0.
+                'amount'                => $this->stringFromValue((string)$object['amount']),
+                'foreign_amount'        => $this->stringFromValue((string)$object['foreign_amount']),
+
+                // description.
+                'description'           => $this->stringFromValue($object['description']),
+
+                // source of transaction. If everything is null, assume cash account.
+                'source_id'             => $this->integerFromValue((string)$object['source_id']),
+                'source_name'           => $this->stringFromValue($object['source_name']),
+
+                // destination of transaction. If everything is null, assume cash account.
+                'destination_id'        => $this->integerFromValue((string)$object['destination_id']),
+                'destination_name'      => $this->stringFromValue($object['destination_name']),
+
+                // budget info
+                'budget_id'             => $this->integerFromValue((string)$object['budget_id']),
+                'budget_name'           => $this->stringFromValue($object['budget_name']),
+
+                // category info
+                'category_id'           => $this->integerFromValue((string)$object['category_id']),
+                'category_name'         => $this->stringFromValue($object['category_name']),
+
+                // journal bill reference. Optional. Will only work for withdrawals
+                'bill_id'               => $this->integerFromValue((string)$object['bill_id']),
+                'bill_name'             => $this->stringFromValue($object['bill_name']),
+
+                // piggy bank reference. Optional. Will only work for transfers
+                'piggy_bank_id'         => $this->integerFromValue((string)$object['piggy_bank_id']),
+                'piggy_bank_name'       => $this->stringFromValue($object['piggy_bank_name']),
+
+                // some other interesting properties
+                'reconciled'            => $this->convertBoolean((string)$object['reconciled']),
+                'notes'                 => $this->stringFromValue($object['notes']),
+                'tags'                  => $this->arrayFromValue($object['tags']),
+
+                // all custom fields:
+                'internal_reference'    => $this->stringFromValue($object['internal_reference']),
+                'external_id'           => $this->stringFromValue($object['external_id']),
+                'original_source'       => sprintf('ff3-v%s|api-v%s', config('firefly.version'), config('firefly.api_version')),
+                'recurrence_id'         => $this->integerFromValue($object['recurrence_id']),
+                'bunq_payment_id'       => $this->stringFromValue($object['bunq_payment_id']),
+
+                'sepa_cc'       => $this->stringFromValue($object['sepa_cc']),
+                'sepa_ct_op'    => $this->stringFromValue($object['sepa_ct_op']),
+                'sepa_ct_id'    => $this->stringFromValue($object['sepa_ct_id']),
+                'sepa_db'       => $this->stringFromValue($object['sepa_db']),
+                'sepa_country'  => $this->stringFromValue($object['sepa_country']),
+                'sepa_ep'       => $this->stringFromValue($object['sepa_ep']),
+                'sepa_ci'       => $this->stringFromValue($object['sepa_ci']),
+                'sepa_batch_id' => $this->stringFromValue($object['sepa_batch_id']),
+
+
+                // custom date fields. Must be Carbon objects. Presence is optional.
+                'interest_date' => $this->dateFromValue($object['interest_date']),
+                'book_date'     => $this->dateFromValue($object['book_date']),
+                'process_date'  => $this->dateFromValue($object['process_date']),
+                'due_date'      => $this->dateFromValue($object['due_date']),
+                'payment_date'  => $this->dateFromValue($object['payment_date']),
+                'invoice_date'  => $this->dateFromValue($object['invoice_date']),
+
+            ];
+        }
+
+        return $return;
+    }
+
     /**
      * The rules that the incoming request must be matched against.
      *
@@ -187,99 +282,4 @@ class TransactionStoreRequest extends Request
             }
         );
     }
-
-    /**
-     * Get transaction data.
-     *
-     * @SuppressWarnings(PHPMD.CyclomaticComplexity)
-     * @SuppressWarnings(PHPMD.NPathComplexity)
-     * @return array
-     */
-    private function getTransactionData(): array
-    {
-        $return = [];
-        /**
-         * @var int   $index
-         * @var array $transaction
-         */
-        foreach ($this->get('transactions') as $index => $transaction) {
-            $object   = new NullArrayObject($transaction);
-            $return[] = [
-                'type'  => $this->stringFromValue($object['type']),
-                'date'  => $this->dateFromValue($object['date']),
-                'order' => $this->integerFromValue((string)$object['order']),
-
-                'currency_id'           => $this->integerFromValue($object['currency_id']),
-                'currency_code'         => $this->stringFromValue($object['currency_code']),
-
-                // foreign currency info:
-                'foreign_currency_id'   => $this->integerFromValue((string)$object['foreign_currency_id']),
-                'foreign_currency_code' => $this->stringFromValue($object['foreign_currency_code']),
-
-                // amount and foreign amount. Cannot be 0.
-                'amount'                => $this->stringFromValue((string)$object['amount']),
-                'foreign_amount'        => $this->stringFromValue((string)$object['foreign_amount']),
-
-                // description.
-                'description'           => $this->stringFromValue($object['description']),
-
-                // source of transaction. If everything is null, assume cash account.
-                'source_id'             => $this->integerFromValue((string)$object['source_id']),
-                'source_name'           => $this->stringFromValue($object['source_name']),
-
-                // destination of transaction. If everything is null, assume cash account.
-                'destination_id'        => $this->integerFromValue((string)$object['destination_id']),
-                'destination_name'      => $this->stringFromValue($object['destination_name']),
-
-                // budget info
-                'budget_id'             => $this->integerFromValue((string)$object['budget_id']),
-                'budget_name'           => $this->stringFromValue($object['budget_name']),
-
-                // category info
-                'category_id'           => $this->integerFromValue((string)$object['category_id']),
-                'category_name'         => $this->stringFromValue($object['category_name']),
-
-                // journal bill reference. Optional. Will only work for withdrawals
-                'bill_id'               => $this->integerFromValue((string)$object['bill_id']),
-                'bill_name'             => $this->stringFromValue($object['bill_name']),
-
-                // piggy bank reference. Optional. Will only work for transfers
-                'piggy_bank_id'         => $this->integerFromValue((string)$object['piggy_bank_id']),
-                'piggy_bank_name'       => $this->stringFromValue($object['piggy_bank_name']),
-
-                // some other interesting properties
-                'reconciled'            => $this->convertBoolean((string)$object['reconciled']),
-                'notes'                 => $this->stringFromValue($object['notes']),
-                'tags'                  => $this->arrayFromValue($object['tags']),
-
-                // all custom fields:
-                'internal_reference'    => $this->stringFromValue($object['internal_reference']),
-                'external_id'           => $this->stringFromValue($object['external_id']),
-                'original_source'       => sprintf('ff3-v%s|api-v%s', config('firefly.version'), config('firefly.api_version')),
-                'recurrence_id'         => $this->integerFromValue($object['recurrence_id']),
-                'bunq_payment_id'       => $this->stringFromValue($object['bunq_payment_id']),
-
-                'sepa_cc'       => $this->stringFromValue($object['sepa_cc']),
-                'sepa_ct_op'    => $this->stringFromValue($object['sepa_ct_op']),
-                'sepa_ct_id'    => $this->stringFromValue($object['sepa_ct_id']),
-                'sepa_db'       => $this->stringFromValue($object['sepa_db']),
-                'sepa_country'  => $this->stringFromValue($object['sepa_country']),
-                'sepa_ep'       => $this->stringFromValue($object['sepa_ep']),
-                'sepa_ci'       => $this->stringFromValue($object['sepa_ci']),
-                'sepa_batch_id' => $this->stringFromValue($object['sepa_batch_id']),
-
-
-                // custom date fields. Must be Carbon objects. Presence is optional.
-                'interest_date' => $this->dateFromValue($object['interest_date']),
-                'book_date'     => $this->dateFromValue($object['book_date']),
-                'process_date'  => $this->dateFromValue($object['process_date']),
-                'due_date'      => $this->dateFromValue($object['due_date']),
-                'payment_date'  => $this->dateFromValue($object['payment_date']),
-                'invoice_date'  => $this->dateFromValue($object['invoice_date']),
-
-            ];
-        }
-
-        return $return;
-    }
 }
diff --git a/app/Api/V1/Requests/TransactionUpdateRequest.php b/app/Api/V1/Requests/TransactionUpdateRequest.php
index e2a4a85010..937c588bd0 100644
--- a/app/Api/V1/Requests/TransactionUpdateRequest.php
+++ b/app/Api/V1/Requests/TransactionUpdateRequest.php
@@ -136,6 +136,60 @@ class TransactionUpdateRequest extends Request
         return $data;
     }
 
+    /**
+     * Get transaction data.
+     *
+     * @SuppressWarnings(PHPMD.CyclomaticComplexity)
+     * @SuppressWarnings(PHPMD.NPathComplexity)
+     * @return array
+     */
+    private function getTransactionData(): array
+    {
+        $return = [];
+        /**
+         * @var int $index
+         * @var array $transaction
+         */
+        foreach ($this->get('transactions') as $index => $transaction) {
+            // default response is to update nothing in the transaction:
+            $current = [];
+
+            // for each field, add it to the array if a reference is present in the request:
+            foreach ($this->integerFields as $fieldName) {
+                if (array_key_exists($fieldName, $transaction)) {
+                    $current[$fieldName] = $this->integerFromValue((string)$transaction[$fieldName]);
+                }
+            }
+
+            foreach ($this->stringFields as $fieldName) {
+                if (array_key_exists($fieldName, $transaction)) {
+                    $current[$fieldName] = $this->stringFromValue((string)$transaction[$fieldName]);
+                }
+            }
+
+            foreach ($this->dateFields as $fieldName) {
+                if (array_key_exists($fieldName, $transaction)) {
+                    $current[$fieldName] = $this->dateFromValue((string)$transaction[$fieldName]);
+                }
+            }
+
+            foreach ($this->booleanFields as $fieldName) {
+                if (array_key_exists($fieldName, $transaction)) {
+                    $current[$fieldName] = $this->convertBoolean((string)$transaction[$fieldName]);
+                }
+            }
+
+            foreach ($this->arrayFields as $fieldName) {
+                if (array_key_exists($fieldName, $transaction)) {
+                    $current[$fieldName] = $this->arrayFromValue($transaction[$fieldName]);
+                }
+            }
+            $return[] = $current;
+        }
+
+        return $return;
+    }
+
     /**
      * The rules that the incoming request must be matched against.
      *
@@ -261,58 +315,4 @@ class TransactionUpdateRequest extends Request
             }
         );
     }
-
-    /**
-     * Get transaction data.
-     *
-     * @SuppressWarnings(PHPMD.CyclomaticComplexity)
-     * @SuppressWarnings(PHPMD.NPathComplexity)
-     * @return array
-     */
-    private function getTransactionData(): array
-    {
-        $return = [];
-        /**
-         * @var int   $index
-         * @var array $transaction
-         */
-        foreach ($this->get('transactions') as $index => $transaction) {
-            // default response is to update nothing in the transaction:
-            $current = [];
-
-            // for each field, add it to the array if a reference is present in the request:
-            foreach ($this->integerFields as $fieldName) {
-                if (array_key_exists($fieldName, $transaction)) {
-                    $current[$fieldName] = $this->integerFromValue((string)$transaction[$fieldName]);
-                }
-            }
-
-            foreach ($this->stringFields as $fieldName) {
-                if (array_key_exists($fieldName, $transaction)) {
-                    $current[$fieldName] = $this->stringFromValue((string)$transaction[$fieldName]);
-                }
-            }
-
-            foreach ($this->dateFields as $fieldName) {
-                if (array_key_exists($fieldName, $transaction)) {
-                    $current[$fieldName] = $this->dateFromValue((string)$transaction[$fieldName]);
-                }
-            }
-
-            foreach ($this->booleanFields as $fieldName) {
-                if (array_key_exists($fieldName, $transaction)) {
-                    $current[$fieldName] = $this->convertBoolean((string)$transaction[$fieldName]);
-                }
-            }
-
-            foreach ($this->arrayFields as $fieldName) {
-                if (array_key_exists($fieldName, $transaction)) {
-                    $current[$fieldName] = $this->arrayFromValue($transaction[$fieldName]);
-                }
-            }
-            $return[] = $current;
-        }
-
-        return $return;
-    }
 }