mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-12-10 13:21:21 +00:00
Fix #11228
This commit is contained in:
@@ -23,15 +23,16 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Api\V1\Requests\Generic;
|
namespace FireflyIII\Api\V1\Requests\Generic;
|
||||||
|
|
||||||
use Override;
|
|
||||||
use Illuminate\Contracts\Validation\Validator;
|
|
||||||
use FireflyIII\Api\V1\Requests\ApiRequest;
|
use FireflyIII\Api\V1\Requests\ApiRequest;
|
||||||
|
use FireflyIII\Enums\AccountTypeEnum;
|
||||||
use FireflyIII\Models\Account;
|
use FireflyIII\Models\Account;
|
||||||
use FireflyIII\Models\Transaction;
|
use FireflyIII\Models\Transaction;
|
||||||
use FireflyIII\Rules\Account\IsValidAccountTypeList;
|
use FireflyIII\Rules\Account\IsValidAccountTypeList;
|
||||||
use FireflyIII\Rules\TransactionType\IsValidTransactionTypeList;
|
use FireflyIII\Rules\TransactionType\IsValidTransactionTypeList;
|
||||||
use FireflyIII\Support\Http\Api\AccountFilter;
|
use FireflyIII\Support\Http\Api\AccountFilter;
|
||||||
use FireflyIII\Support\Http\Api\TransactionFilter;
|
use FireflyIII\Support\Http\Api\TransactionFilter;
|
||||||
|
use Illuminate\Contracts\Validation\Validator;
|
||||||
|
use Override;
|
||||||
use RuntimeException;
|
use RuntimeException;
|
||||||
|
|
||||||
class ObjectTypeApiRequest extends ApiRequest
|
class ObjectTypeApiRequest extends ApiRequest
|
||||||
@@ -55,7 +56,7 @@ class ObjectTypeApiRequest extends ApiRequest
|
|||||||
|
|
||||||
public function rules(): array
|
public function rules(): array
|
||||||
{
|
{
|
||||||
$rule = null;
|
$rule = null;
|
||||||
if (Account::class === $this->objectType) {
|
if (Account::class === $this->objectType) {
|
||||||
$rule = new IsValidAccountTypeList();
|
$rule = new IsValidAccountTypeList();
|
||||||
}
|
}
|
||||||
@@ -86,9 +87,13 @@ class ObjectTypeApiRequest extends ApiRequest
|
|||||||
default:
|
default:
|
||||||
$this->attributes->set('types', []);
|
$this->attributes->set('types', []);
|
||||||
|
|
||||||
// no break
|
// no break
|
||||||
case Account::class:
|
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;
|
break;
|
||||||
|
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ class IsValidAccountTypeList implements ValidationRule
|
|||||||
$keys = array_keys($this->types);
|
$keys = array_keys($this->types);
|
||||||
foreach ($values as $entry) {
|
foreach ($values as $entry) {
|
||||||
if (!in_array($entry, $keys, true)) {
|
if (!in_array($entry, $keys, true)) {
|
||||||
$fail('validation.invalid_account_list')->translate();
|
$fail('validation.invalid_account_list')->translate(['value'=> $entry]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -76,6 +76,7 @@ trait AccountFilter
|
|||||||
AccountTypeEnum::MORTGAGE->value => [AccountTypeEnum::MORTGAGE->value],
|
AccountTypeEnum::MORTGAGE->value => [AccountTypeEnum::MORTGAGE->value],
|
||||||
AccountTypeEnum::DEBT->value => [AccountTypeEnum::DEBT->value],
|
AccountTypeEnum::DEBT->value => [AccountTypeEnum::DEBT->value],
|
||||||
AccountTypeEnum::CREDITCARD->value => [AccountTypeEnum::CREDITCARD->value],
|
AccountTypeEnum::CREDITCARD->value => [AccountTypeEnum::CREDITCARD->value],
|
||||||
|
AccountTypeEnum::LIABILITY_CREDIT->value => [AccountTypeEnum::LIABILITY_CREDIT->value],
|
||||||
'default account' => [AccountTypeEnum::DEFAULT->value],
|
'default account' => [AccountTypeEnum::DEFAULT->value],
|
||||||
'cash account' => [AccountTypeEnum::CASH->value],
|
'cash account' => [AccountTypeEnum::CASH->value],
|
||||||
'asset account' => [AccountTypeEnum::ASSET->value],
|
'asset account' => [AccountTypeEnum::ASSET->value],
|
||||||
@@ -104,6 +105,7 @@ trait AccountFilter
|
|||||||
$return = array_merge($return, $this->types[$part]);
|
$return = array_merge($return, $this->types[$part]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (0 === count($return)) {
|
if (0 === count($return)) {
|
||||||
$return = $this->types['normal'];
|
$return = $this->types['normal'];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
return [
|
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',
|
'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.',
|
'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".',
|
'invalid_sort_instruction' => 'The sort instruction is invalid for an object of type ":object".',
|
||||||
|
|||||||
Reference in New Issue
Block a user