Small code quality things.

This commit is contained in:
James Cole
2025-06-09 07:06:42 +02:00
parent be11778c53
commit e786bf47c2
24 changed files with 61 additions and 48 deletions

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\Chart;
use FireflyIII\Exceptions\ValidationException;
use FireflyIII\Models\TransactionCurrency;
use Carbon\Carbon;
use FireflyIII\Api\V1\Controllers\Controller;
@@ -35,6 +36,7 @@ use FireflyIII\Models\Account;
use FireflyIII\Models\Preference;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Support\Chart\ChartData;
use FireflyIII\Support\Facades\Preferences;
use FireflyIII\Support\Facades\Steam;
use FireflyIII\Support\Http\Api\ApiSupport;
use FireflyIII\Support\Http\Api\CollectsAccountsFromFilter;
@@ -139,7 +141,9 @@ class AccountController extends Controller
* This endpoint is documented at:
* https://api-docs.firefly-iii.org/?urls.primaryName=2.0.0%20(v1)#/charts/getChartAccountOverview
*
* @throws FireflyException
* @param DateRequest $request
* @return JsonResponse
* @throws ValidationException
*/
public function overview(DateRequest $request): JsonResponse
{
@@ -160,7 +164,7 @@ class AccountController extends Controller
$defaultSet = $this->repository->getAccountsByType([AccountTypeEnum::ASSET->value])->pluck('id')->toArray();
/** @var Preference $frontpage */
$frontpage = app('preferences')->get('frontpageAccounts', $defaultSet);
Preferences::get('frontpageAccounts', $defaultSet);
if (!(is_array($frontpage->data) && count($frontpage->data) > 0)) {
$frontpage->data = $defaultSet;

View File

@@ -233,16 +233,13 @@ class BudgetController extends Controller
$end->endOfDay();
$spent = $this->opsRepository->listExpenses($limit->start_date, $end, null, new Collection([$budget]));
$limitCurrencyId = $limit->transaction_currency_id;
$filtered = [];
/** @var array $entry */
foreach ($spent as $currencyId => $entry) {
// only spent the entry where the entry's currency matches the budget limit's currency
// so $filtered will only have 1 or 0 entries
if ($entry['currency_id'] === $limitCurrencyId) {
$filtered[$currencyId] = $entry;
}
}
// only spent the entry where the entry's currency matches the budget limit's currency
// so $filtered will only have 1 or 0 entries
$filtered = array_filter($spent, function ($entry) use ($limitCurrencyId) {
return $entry['currency_id'] === $limitCurrencyId;
});
$result = $this->processExpenses($budget->id, $filtered, $limit->start_date, $end);
if (1 === count($result)) {
$compare = bccomp($limit->amount, (string) app('steam')->positive($result[$limitCurrencyId]['spent']));

View File

@@ -127,7 +127,6 @@ abstract class Controller extends BaseController
Log::error(sprintf('Request field "%s" contains a non-scalar value. Value set to NULL.', $field));
Log::error($e->getMessage());
Log::error($e->getTraceAsString());
$value = null;
}
$obj = null;
if (null !== $date) {

View File

@@ -64,7 +64,7 @@ class DestroyController extends Controller
public function destroy(DestroyRequest $request): JsonResponse
{
$objects = $request->getObjects();
$this->unused = $request->boolean('unused', false);
$this->unused = $request->boolean('unused');
$allExceptAssets = [AccountTypeEnum::BENEFICIARY->value, AccountTypeEnum::CASH->value, AccountTypeEnum::CREDITCARD->value, AccountTypeEnum::DEFAULT->value, AccountTypeEnum::EXPENSE->value, AccountTypeEnum::IMPORT->value, AccountTypeEnum::INITIAL_BALANCE->value, AccountTypeEnum::LIABILITY_CREDIT->value, AccountTypeEnum::RECONCILIATION->value, AccountTypeEnum::REVENUE->value];
$all = [AccountTypeEnum::ASSET->value, AccountTypeEnum::BENEFICIARY->value, AccountTypeEnum::CASH->value, AccountTypeEnum::CREDITCARD->value, AccountTypeEnum::DEBT->value, AccountTypeEnum::DEFAULT->value, AccountTypeEnum::EXPENSE->value, AccountTypeEnum::IMPORT->value, AccountTypeEnum::INITIAL_BALANCE->value, AccountTypeEnum::LIABILITY_CREDIT->value, AccountTypeEnum::LOAN->value, AccountTypeEnum::MORTGAGE->value, AccountTypeEnum::RECONCILIATION->value];

View File

@@ -30,6 +30,7 @@ use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Support\Export\ExportDataGenerator;
use Illuminate\Http\Response as LaravelResponse;
use Safe\Exceptions\DatetimeException;
use function Safe\date;
/**
@@ -71,7 +72,10 @@ class ExportController extends Controller
}
/**
* @param string $key
* @return LaravelResponse
* @throws FireflyException
* @throws DatetimeException
*/
private function returnExport(string $key): LaravelResponse
{

View File

@@ -69,7 +69,6 @@ class StoreController extends Controller
$data = $request->getAll();
$data['start_date'] = $data['start'];
$data['end_date'] = $data['end'];
$data['notes'] = $data['notes'];
$data['budget_id'] = $budget->id;
$budgetLimit = $this->blRepository->store($data);

View File

@@ -32,6 +32,7 @@ use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface;
use FireflyIII\Repositories\User\UserRepositoryInterface;
use FireflyIII\User;
use Illuminate\Http\JsonResponse;
use Illuminate\Validation\ValidationException;
/**
* Class DestroyController
@@ -64,7 +65,10 @@ class DestroyController extends Controller
*
* Remove the specified resource from storage.
*
* @param TransactionCurrency $currency
* @return JsonResponse
* @throws FireflyException
* @throws ValidationException
*/
public function destroy(TransactionCurrency $currency): JsonResponse
{

View File

@@ -250,10 +250,8 @@ class ListController extends Controller
$collection = $unfiltered->filter(
static function (Recurrence $recurrence) use ($currency) { // @phpstan-ignore-line
/** @var RecurrenceTransaction $transaction */
foreach ($recurrence->recurrenceTransactions as $transaction) {
if ($transaction->transaction_currency_id === $currency->id || $transaction->foreign_currency_id === $currency->id) {
return $recurrence;
}
if (array_any($recurrence->recurrenceTransactions, fn($transaction) => $transaction->transaction_currency_id === $currency->id || $transaction->foreign_currency_id === $currency->id)) {
return $recurrence;
}
return null;
@@ -297,10 +295,8 @@ class ListController extends Controller
$collection = $unfiltered->filter(
static function (Rule $rule) use ($currency) { // @phpstan-ignore-line
/** @var RuleTrigger $trigger */
foreach ($rule->ruleTriggers as $trigger) {
if ('currency_is' === $trigger->trigger_type && $currency->name === $trigger->trigger_value) {
return $rule;
}
if (array_any($rule->ruleTriggers, fn($trigger) => 'currency_is' === $trigger->trigger_type && $currency->name === $trigger->trigger_value)) {
return $rule;
}
return null;

View File

@@ -34,6 +34,7 @@ use FireflyIII\Support\Http\Api\TransactionFilter;
use FireflyIII\Transformers\LinkTypeTransformer;
use FireflyIII\User;
use Illuminate\Http\JsonResponse;
use Illuminate\Validation\ValidationException;
use League\Fractal\Resource\Item;
/**
@@ -71,7 +72,9 @@ class StoreController extends Controller
*
* Store new object.
*
* @throws FireflyException
* @param StoreRequest $request
* @return JsonResponse
* @throws ValidationException
*/
public function store(StoreRequest $request): JsonResponse
{

View File

@@ -35,6 +35,7 @@ use FireflyIII\Support\Http\Api\TransactionFilter;
use FireflyIII\Transformers\LinkTypeTransformer;
use FireflyIII\User;
use Illuminate\Http\JsonResponse;
use Illuminate\Validation\ValidationException;
use League\Fractal\Resource\Item;
/**
@@ -72,7 +73,11 @@ class UpdateController extends Controller
*
* Update object.
*
* @param UpdateRequest $request
* @param LinkType $linkType
* @return JsonResponse
* @throws FireflyException
* @throws ValidationException
*/
public function update(UpdateRequest $request, LinkType $linkType): JsonResponse
{

View File

@@ -130,8 +130,6 @@ class BasicController extends Controller
$convertToNative = Amount::convertToNative();
$default = Amount::getNativeCurrency();
// prep some arrays:
$incomes = [];
$expenses = [];
$sums = [];
$return = [];
$currencies = [

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers\System;
use FireflyIII\Support\Facades\FireflyConfig;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Validator;
use FireflyIII\Api\V1\Controllers\Controller;
@@ -32,6 +33,7 @@ use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Repositories\User\UserRepositoryInterface;
use FireflyIII\Support\Binder\EitherConfigKey;
use Illuminate\Http\JsonResponse;
use Illuminate\Validation\ValidationException;
/**
* Class ConfigurationController
@@ -93,13 +95,14 @@ class ConfigurationController extends Controller
/**
* Get all config values.
* @throws FireflyException
*/
private function getDynamicConfiguration(): array
{
$isDemoSite = app('fireflyconfig')->get('is_demo_site');
$updateCheck = app('fireflyconfig')->get('permission_update_check');
$lastCheck = app('fireflyconfig')->get('last_update_check');
$singleUser = app('fireflyconfig')->get('single_user_mode');
$isDemoSite = FireflyConfig::get('is_demo_site');
$updateCheck = FireflyConfig::get('permission_update_check');
$lastCheck = FireflyConfig::get('last_update_check');
$singleUser = FireflyConfig::get('single_user_mode');
return [
'is_demo_site' => $isDemoSite?->data,
@@ -153,7 +156,11 @@ class ConfigurationController extends Controller
*
* Update the configuration.
*
* @param UpdateRequest $request
* @param string $name
* @return JsonResponse
* @throws FireflyException
* @throws ValidationException
*/
public function update(UpdateRequest $request, string $name): JsonResponse
{
@@ -165,7 +172,7 @@ class ConfigurationController extends Controller
$data = $request->getAll();
$shortName = str_replace('configuration.', '', $name);
app('fireflyconfig')->set($shortName, $data['value']);
FireflyConfig::set($shortName, $data['value']);
// get updated config:
$newConfig = $this->getDynamicConfiguration();

View File

@@ -76,6 +76,6 @@ class SubmitController extends Controller
SendWebhookMessage::dispatch($message)->afterResponse();
}
return response()->json([]);
return response()->json();
}
}

View File

@@ -54,7 +54,7 @@ class TransactionRequest extends FormRequest
'query' => json_decode($this->get('query'), true, 8, JSON_THROW_ON_ERROR),
];
} catch (JsonException $e) {
// dont really care. the validation should catch invalid json.
// don't really care. the validation should catch invalid json.
Log::error($e->getMessage());
}

View File

@@ -128,7 +128,6 @@ class StoreRequest extends FormRequest
$failed = $validator->fails();
} catch (TypeError $e) {
Log::error($e->getMessage());
$failed = false;
}
if ($failed) {
Log::channel('audit')->error(sprintf('Validation errors in %s', self::class), $validator->errors()->toArray());

View File

@@ -76,7 +76,7 @@ class StoreRequest extends FormRequest
/**
* 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.
* standards, but it just has a lot of ??-statements because of the fields that may or may not exist.
*/
private function getTransactionData(): array
{

View File

@@ -122,7 +122,7 @@ class UpdateRequest extends FormRequest
/**
* 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.
* standards, but it just has a lot of ??-statements because of the fields that may or may not exist.
*/
private function getTransactionData(): array
{

View File

@@ -183,7 +183,7 @@ class UpdateRequest extends FormRequest
foreach ($this->dateFields as $fieldName) {
app('log')->debug(sprintf('Now at date field %s', $fieldName));
if (array_key_exists($fieldName, $transaction)) {
app('log')->debug(sprintf('New value: "%s"', (string) $transaction[$fieldName]));
Log::debug(sprintf('New value: "%s"', $transaction[$fieldName]));
$current[$fieldName] = $this->dateFromValue((string) $transaction[$fieldName]);
}
}

View File

@@ -53,9 +53,6 @@ class UpdateRequest extends FormRequest
*/
public function rules(): array
{
/** @var UserGroup $userGroup */
$userGroup = $this->route()->parameter('userGroup');
return [
'title' => ['required', 'min:1', 'max:255'],
'native_currency_id' => 'exists:transaction_currencies,id',

View File

@@ -82,7 +82,7 @@ class Controller extends BaseController
try {
$page = (int) request()->get('page');
} catch (ContainerExceptionInterface|NotFoundExceptionInterface $e) {
} catch (ContainerExceptionInterface) {
$page = 1;
}

View File

@@ -53,7 +53,7 @@ class ListController extends Controller
*/
public function index(): JsonResponse
{
return response()->json([]);
return response()->json();
// throw new FireflyException('Needs refactoring, move to IndexController.');
// $pageSize = $this->parameters->get('limit');
// $dates = $request->getAll();

View File

@@ -69,9 +69,8 @@ class UpdateController extends Controller
$transactionGroup = $this->groupRepository->update($transactionGroup, $data);
$applyRules = $data['apply_rules'] ?? true;
$fireWebhooks = $data['fire_webhooks'] ?? true;
$runRecalculations = true;
event(new UpdatedTransactionGroup($transactionGroup, $applyRules, $fireWebhooks, $runRecalculations));
event(new UpdatedTransactionGroup($transactionGroup, $applyRules, $fireWebhooks, true));
app('preferences')->mark();
/** @var User $admin */

View File

@@ -31,6 +31,7 @@ use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface;
use FireflyIII\Transformers\CurrencyTransformer;
use Illuminate\Http\JsonResponse;
use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Support\Collection;
class IndexController extends Controller
{
@@ -56,6 +57,7 @@ class IndexController extends Controller
public function index(IndexRequest $request): JsonResponse
{
$settings = $request->getAll();
$currencies = new Collection();
if (true === $settings['enabled']) {
$currencies = $this->repository->get();
}

View File

@@ -68,7 +68,7 @@ class UpdateRequest extends Request
#[Override]
public function getAll(): array
{
app('log')->debug(sprintf('Now in %s', __METHOD__));
Log::debug(sprintf('Now in %s', __METHOD__));
$this->integerFields = ['order', 'currency_id', 'foreign_currency_id', 'transaction_journal_id', 'source_id', 'destination_id', 'budget_id', 'category_id', 'bill_id', 'recurrence_id'];
$this->dateFields = ['date', 'interest_date', 'book_date', 'process_date', 'due_date', 'payment_date', 'invoice_date'];
$this->textareaFields = ['notes'];
@@ -101,7 +101,7 @@ class UpdateRequest extends Request
*/
private function getTransactionData(): array
{
app('log')->debug(sprintf('Now in %s', __METHOD__));
Log::debug(sprintf('Now in %s', __METHOD__));
$return = [];
/** @var null|array $transactions */
@@ -185,9 +185,9 @@ class UpdateRequest extends Request
private function getDateData(array $current, array $transaction): array
{
foreach ($this->dateFields as $fieldName) {
app('log')->debug(sprintf('Now at date field %s', $fieldName));
Log::debug(sprintf('Now at date field %s', $fieldName));
if (array_key_exists($fieldName, $transaction)) {
app('log')->debug(sprintf('New value: "%s"', (string) $transaction[$fieldName]));
Log::debug(sprintf('New value: "%s"', $transaction[$fieldName]));
$current[$fieldName] = $this->dateFromValue((string) $transaction[$fieldName]);
}
}
@@ -252,7 +252,7 @@ class UpdateRequest extends Request
#[Override]
public function rules(): array
{
app('log')->debug(sprintf('Now in %s', __METHOD__));
Log::debug(sprintf('Now in %s', __METHOD__));
$validProtocols = config('firefly.valid_url_protocols');
return [
@@ -336,7 +336,7 @@ class UpdateRequest extends Request
#[Override]
public function withValidator(Validator $validator): void
{
app('log')->debug('Now in withValidator');
Log::debug('Now in withValidator');
/** @var TransactionGroup $transactionGroup */
$transactionGroup = $this->route()->parameter('userGroupTransaction');