Clean up some classes, extend API validation.

This commit is contained in:
James Cole
2025-11-02 14:00:55 +01:00
parent d5e431c3a1
commit a57cf4e9be
28 changed files with 324 additions and 109 deletions

View File

@@ -31,39 +31,48 @@ use FireflyIII\Enums\TransactionTypeEnum;
*/
trait TransactionFilter
{
/**
* All the types you can request.
*/
protected function mapTransactionTypes(string $type): array
{
$types = [
'all' => [
protected $transactionTypes
= [
'all' => [
TransactionTypeEnum::WITHDRAWAL->value,
TransactionTypeEnum::DEPOSIT->value,
TransactionTypeEnum::TRANSFER->value,
TransactionTypeEnum::OPENING_BALANCE->value,
TransactionTypeEnum::RECONCILIATION->value,
],
'withdrawal' => [TransactionTypeEnum::WITHDRAWAL->value],
'withdrawals' => [TransactionTypeEnum::WITHDRAWAL->value],
'expense' => [TransactionTypeEnum::WITHDRAWAL->value],
'expenses' => [TransactionTypeEnum::WITHDRAWAL->value],
'income' => [TransactionTypeEnum::DEPOSIT->value],
'deposit' => [TransactionTypeEnum::DEPOSIT->value],
'deposits' => [TransactionTypeEnum::DEPOSIT->value],
'transfer' => [TransactionTypeEnum::TRANSFER->value],
'transfers' => [TransactionTypeEnum::TRANSFER->value],
'opening_balance' => [TransactionTypeEnum::OPENING_BALANCE->value],
'reconciliation' => [TransactionTypeEnum::RECONCILIATION->value],
'reconciliations' => [TransactionTypeEnum::RECONCILIATION->value],
'special' => [TransactionTypeEnum::OPENING_BALANCE->value, TransactionTypeEnum::RECONCILIATION->value],
'specials' => [TransactionTypeEnum::OPENING_BALANCE->value, TransactionTypeEnum::RECONCILIATION->value],
'default' => [TransactionTypeEnum::WITHDRAWAL->value, TransactionTypeEnum::DEPOSIT->value, TransactionTypeEnum::TRANSFER->value],
TransactionTypeEnum::WITHDRAWAL->value => [TransactionTypeEnum::WITHDRAWAL->value],
'withdrawal' => [TransactionTypeEnum::WITHDRAWAL->value],
'withdrawals' => [TransactionTypeEnum::WITHDRAWAL->value],
'expense' => [TransactionTypeEnum::WITHDRAWAL->value],
'expenses' => [TransactionTypeEnum::WITHDRAWAL->value],
TransactionTypeEnum::DEPOSIT->value => [TransactionTypeEnum::DEPOSIT->value],
'income' => [TransactionTypeEnum::DEPOSIT->value],
'deposit' => [TransactionTypeEnum::DEPOSIT->value],
'deposits' => [TransactionTypeEnum::DEPOSIT->value],
TransactionTypeEnum::TRANSFER->value => [TransactionTypeEnum::TRANSFER->value],
'transfer' => [TransactionTypeEnum::TRANSFER->value],
'transfers' => [TransactionTypeEnum::TRANSFER->value],
TransactionTypeEnum::OPENING_BALANCE->value => [TransactionTypeEnum::OPENING_BALANCE->value],
'opening_balance' => [TransactionTypeEnum::OPENING_BALANCE->value],
TransactionTypeEnum::RECONCILIATION->value => [TransactionTypeEnum::RECONCILIATION->value],
'reconciliation' => [TransactionTypeEnum::RECONCILIATION->value],
'reconciliations' => [TransactionTypeEnum::RECONCILIATION->value],
'special' => [TransactionTypeEnum::OPENING_BALANCE->value, TransactionTypeEnum::RECONCILIATION->value],
'specials' => [TransactionTypeEnum::OPENING_BALANCE->value, TransactionTypeEnum::RECONCILIATION->value],
'default' => [TransactionTypeEnum::WITHDRAWAL->value, TransactionTypeEnum::DEPOSIT->value, TransactionTypeEnum::TRANSFER->value],
];
/**
* All the types you can request.
*/
protected function mapTransactionTypes(string $type): array
{
$return = [];
$parts = explode(',', $type);
foreach ($parts as $part) {
$return = array_merge($return, $types[$part] ?? $types['default']);
if(array_key_exists($part, $this->transactionTypes)) {
$return = array_merge($return, $this->transactionTypes[$part]);
}
}
return array_unique($return);

View File

@@ -25,6 +25,7 @@ declare(strict_types=1);
namespace FireflyIII\Support\Http\Api;
use FireflyIII\Enums\UserRoleEnum;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Models\UserGroup;
use FireflyIII\Repositories\UserGroup\UserGroupRepositoryInterface;
use FireflyIII\User;