From f1462dbd3dbbb2311e44ad6d199c99a1b0ec3672 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sat, 14 Jul 2018 23:22:08 +0200 Subject: [PATCH] Small code quality improvements. --- .../Category/NoCategoryController.php | 1 + .../Controllers/Chart/AccountController.php | 28 ++++++++++--------- .../Controllers/Chart/BudgetController.php | 14 ++-------- .../Controllers/Chart/PiggyBankController.php | 14 ++-------- app/Support/Facades/Preferences.php | 2 +- .../Http/Controllers/DateCalculation.php | 26 ++++++++++++++++- app/Validation/FireflyValidator.php | 2 +- 7 files changed, 49 insertions(+), 38 deletions(-) diff --git a/app/Http/Controllers/Category/NoCategoryController.php b/app/Http/Controllers/Category/NoCategoryController.php index d98a546e75..a02b20dc95 100644 --- a/app/Http/Controllers/Category/NoCategoryController.php +++ b/app/Http/Controllers/Category/NoCategoryController.php @@ -143,6 +143,7 @@ class NoCategoryController extends Controller * @param Carbon $theDate * * @return Collection + * @SuppressWarnings(PHPMD.ExcessiveMethodLength) */ private function getNoCategoryPeriodOverview(Carbon $theDate): Collection { diff --git a/app/Http/Controllers/Chart/AccountController.php b/app/Http/Controllers/Chart/AccountController.php index fc1af1ff91..d5aa05d78f 100644 --- a/app/Http/Controllers/Chart/AccountController.php +++ b/app/Http/Controllers/Chart/AccountController.php @@ -36,15 +36,22 @@ use FireflyIII\Repositories\Budget\BudgetRepositoryInterface; use FireflyIII\Repositories\Category\CategoryRepositoryInterface; use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface; use FireflyIII\Support\CacheProperties; +use FireflyIII\Support\Http\Controllers\DateCalculation; use Illuminate\Http\JsonResponse; use Illuminate\Support\Collection; use Log; -/** checked +/** * Class AccountController. + * + * @SuppressWarnings(PHPMD.TooManyPublicMethods) + * @SuppressWarnings(PHPMD.ExcessiveClassComplexity) + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) */ class AccountController extends Controller { + use DateCalculation; + /** @var GeneratorInterface */ protected $generator; @@ -310,6 +317,8 @@ class AccountController extends Controller * @param Carbon $end * * @return JsonResponse + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + * @SuppressWarnings(PHPMD.ExcessiveMethodLength) */ public function period(Account $account, Carbon $start, Carbon $end): JsonResponse { @@ -321,18 +330,8 @@ class AccountController extends Controller if ($cache->has()) { return response()->json($cache->get()); // @codeCoverageIgnore } - // depending on diff, do something with range of chart. - $step = '1D'; - $months = $start->diffInMonths($end); - if ($months > 3) { - $step = '1W'; // @codeCoverageIgnore - } - if ($months > 24) { - $step = '1M'; // @codeCoverageIgnore - } - if ($months > 100) { - $step = '1Y'; // @codeCoverageIgnore - } + + $step = $this->calculateStep($start, $end); $chartData = []; $current = clone $start; switch ($step) { @@ -433,6 +432,9 @@ class AccountController extends Controller * @param Carbon $end * * @return array + * + * @SuppressWarnigns(PHPMD.CyclomaticComplexity) + * @SuppressWarnigns(PHPMD.ExcessiveMethodLength) */ private function accountBalanceChart(Collection $accounts, Carbon $start, Carbon $end): array { diff --git a/app/Http/Controllers/Chart/BudgetController.php b/app/Http/Controllers/Chart/BudgetController.php index d954ab92b0..f91c99a4b0 100644 --- a/app/Http/Controllers/Chart/BudgetController.php +++ b/app/Http/Controllers/Chart/BudgetController.php @@ -36,6 +36,7 @@ use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Repositories\Budget\BudgetRepositoryInterface; use FireflyIII\Repositories\Category\CategoryRepositoryInterface; use FireflyIII\Support\CacheProperties; +use FireflyIII\Support\Http\Controllers\DateCalculation; use Illuminate\Http\JsonResponse; use Illuminate\Support\Collection; @@ -45,6 +46,7 @@ use Illuminate\Support\Collection; */ class BudgetController extends Controller { + use DateCalculation; /** @var GeneratorInterface */ protected $generator; @@ -89,17 +91,7 @@ class BudgetController extends Controller } // depending on diff, do something with range of chart. - $step = '1D'; - $months = $start->diffInMonths($end); - if ($months > 3) { - $step = '1W'; - } - if ($months > 24) { - $step = '1M'; - } - if ($months > 60) { - $step = '1Y'; // @codeCoverageIgnore - } + $step = $this->calculateStep($start, $end); $budgetCollection = new Collection([$budget]); $chartData = []; $current = clone $start; diff --git a/app/Http/Controllers/Chart/PiggyBankController.php b/app/Http/Controllers/Chart/PiggyBankController.php index c023656ed6..fa0fa29105 100644 --- a/app/Http/Controllers/Chart/PiggyBankController.php +++ b/app/Http/Controllers/Chart/PiggyBankController.php @@ -29,6 +29,7 @@ use FireflyIII\Models\PiggyBank; use FireflyIII\Models\PiggyBankEvent; use FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface; use FireflyIII\Support\CacheProperties; +use FireflyIII\Support\Http\Controllers\DateCalculation; use Illuminate\Http\JsonResponse; use Illuminate\Support\Collection; @@ -37,6 +38,7 @@ use Illuminate\Support\Collection; */ class PiggyBankController extends Controller { + use DateCalculation; /** @var GeneratorInterface */ protected $generator; @@ -81,17 +83,7 @@ class PiggyBankController extends Controller $oldest = $startDate->lt($firstDate) ? $startDate : $firstDate; $today = new Carbon; // depending on diff, do something with range of chart. - $step = '1D'; - $months = $oldest->diffInMonths($today); - if ($months > 3) { - $step = '1W'; // @codeCoverageIgnore - } - if ($months > 24) { - $step = '1M'; // @codeCoverageIgnore - } - if ($months > 100) { - $step = '1Y'; // @codeCoverageIgnore - } + $step = $this->calculateStep($oldest, $today); $chartData = []; while ($oldest <= $today) { diff --git a/app/Support/Facades/Preferences.php b/app/Support/Facades/Preferences.php index d438f999f8..98ae01a5d0 100644 --- a/app/Support/Facades/Preferences.php +++ b/app/Support/Facades/Preferences.php @@ -32,7 +32,7 @@ use Illuminate\Support\Facades\Facade; * * @method Preference set(string $name, $value) * @method Preference get(string $name, $value) - * @method Preference|null getForUser(User $user, string $name, $default) + * @method Preference|null getForUser(User $user, string $name, $default = null) * @method void mark() */ class Preferences extends Facade diff --git a/app/Support/Http/Controllers/DateCalculation.php b/app/Support/Http/Controllers/DateCalculation.php index 14b7616d49..13cb1e221a 100644 --- a/app/Support/Http/Controllers/DateCalculation.php +++ b/app/Support/Http/Controllers/DateCalculation.php @@ -33,6 +33,30 @@ use Log; */ trait DateCalculation { + /** + * @param Carbon $start + * @param Carbon $end + * + * @return string + */ + protected function calculateStep(Carbon $start, Carbon $end): string + { + + $step = '1D'; + $months = $start->diffInMonths($end); + if ($months > 3) { + $step = '1W'; // @codeCoverageIgnore + } + if ($months > 24) { + $step = '1M'; // @codeCoverageIgnore + } + if ($months > 100) { + $step = '1Y'; // @codeCoverageIgnore + } + + return $step; + } + /** * Returns the number of days between the two given dates. * - If today is within the two dates, give the number of days between today and the end date. @@ -111,7 +135,7 @@ trait DateCalculation while ($count < 12) { $format = $current->format('Y-m-d'); $loop[$format] = app('navigation')->periodShow($current, $range); - $current = app('navigation')->endOfPeriod($current, $range); + $current = app('navigation')->endOfPeriod($current, $range); ++$count; $current->addDay(); } diff --git a/app/Validation/FireflyValidator.php b/app/Validation/FireflyValidator.php index f0aab84bf0..ff0669a98c 100644 --- a/app/Validation/FireflyValidator.php +++ b/app/Validation/FireflyValidator.php @@ -55,7 +55,7 @@ class FireflyValidator extends Validator */ public function validate2faCode($attribute, $value): bool { - if (!\is_string($value) || null === $value || 6 != \strlen($value)) { + if (!\is_string($value) || null === $value || 6 !== \strlen($value)) { return false; }