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; - } }