This commit is contained in:
James Cole
2025-11-12 18:02:24 +01:00
parent 4456b00cae
commit 78de800777
4 changed files with 14 additions and 7 deletions

View File

@@ -23,15 +23,16 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests\Generic;
use Override;
use Illuminate\Contracts\Validation\Validator;
use FireflyIII\Api\V1\Requests\ApiRequest;
use FireflyIII\Enums\AccountTypeEnum;
use FireflyIII\Models\Account;
use FireflyIII\Models\Transaction;
use FireflyIII\Rules\Account\IsValidAccountTypeList;
use FireflyIII\Rules\TransactionType\IsValidTransactionTypeList;
use FireflyIII\Support\Http\Api\AccountFilter;
use FireflyIII\Support\Http\Api\TransactionFilter;
use Illuminate\Contracts\Validation\Validator;
use Override;
use RuntimeException;
class ObjectTypeApiRequest extends ApiRequest
@@ -88,7 +89,11 @@ class ObjectTypeApiRequest extends ApiRequest
// no break
case Account::class:
$this->attributes->set('types', $this->mapAccountTypes($type));
$types = $this->mapAccountTypes($type);
// remove system account types because autocomplete doesn't need them.
$types = array_values(array_diff($types, [AccountTypeEnum::INITIAL_BALANCE->value, AccountTypeEnum::RECONCILIATION->value, AccountTypeEnum::LIABILITY_CREDIT->value]));
$this->attributes->set('types', $types);
break;

View File

@@ -48,7 +48,7 @@ class IsValidAccountTypeList implements ValidationRule
$keys = array_keys($this->types);
foreach ($values as $entry) {
if (!in_array($entry, $keys, true)) {
$fail('validation.invalid_account_list')->translate();
$fail('validation.invalid_account_list')->translate(['value'=> $entry]);
}
}
}

View File

@@ -76,6 +76,7 @@ trait AccountFilter
AccountTypeEnum::MORTGAGE->value => [AccountTypeEnum::MORTGAGE->value],
AccountTypeEnum::DEBT->value => [AccountTypeEnum::DEBT->value],
AccountTypeEnum::CREDITCARD->value => [AccountTypeEnum::CREDITCARD->value],
AccountTypeEnum::LIABILITY_CREDIT->value => [AccountTypeEnum::LIABILITY_CREDIT->value],
'default account' => [AccountTypeEnum::DEFAULT->value],
'cash account' => [AccountTypeEnum::CASH->value],
'asset account' => [AccountTypeEnum::ASSET->value],
@@ -104,6 +105,7 @@ trait AccountFilter
$return = array_merge($return, $this->types[$part]);
}
}
if (0 === count($return)) {
$return = $this->types['normal'];
}

View File

@@ -24,7 +24,7 @@
declare(strict_types=1);
return [
'invalid_account_list' => 'Invalid account type list',
'invalid_account_list' => 'Invalid account type list entry ":value"',
'invalid_transaction_type_list' => 'Invalid transaction type list',
'limit_exists' => 'There is already a budget limit (amount) for this budget and currency in the given period.',
'invalid_sort_instruction' => 'The sort instruction is invalid for an object of type ":object".',