Better error handling and remove some warnings.

This commit is contained in:
James Cole
2024-08-05 19:45:04 +02:00
parent d2e9b64bf5
commit e26f78bf50
13 changed files with 316 additions and 46 deletions

View File

@@ -54,6 +54,7 @@ class AccountRepository extends AbstractRepository implements QueriesAll, Create
/**
* SiteRepository constructor.
*/
@@ -101,6 +102,12 @@ class AccountRepository extends AbstractRepository implements QueriesAll, Create
return Capabilities\CrudAccount::make();
}
/**
* TODO piggy banks
* TODO transactions
*
* @return CrudRelations
*/
protected function relations(): CrudRelations
{
Log::debug(__METHOD__);

View File

@@ -2,15 +2,18 @@
namespace FireflyIII\JsonApi\V2\Accounts;
use FireflyIII\Rules\BelongsUser;
use FireflyIII\Rules\Account\IsUniqueAccount;
use FireflyIII\Rules\IsBoolean;
use FireflyIII\Rules\IsValidPositiveAmount;
use FireflyIII\Rules\UniqueAccountNumber;
use FireflyIII\Rules\UniqueIban;
use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Support\Facades\Log;
use Illuminate\Validation\Rule;
use LaravelJsonApi\Laravel\Http\Requests\ResourceRequest;
use LaravelJsonApi\Validation\Rule as JsonApiRule;
class AccountRequest extends ResourceRequest
{
use ConvertsDataTypes;
/**
* Get the validation rules for the resource.
*
@@ -19,16 +22,36 @@ class AccountRequest extends ResourceRequest
public function rules(): array
{
Log::debug(__METHOD__);
die('am i used');
$accountRoles = implode(',', config('firefly.accountRoles'));
$ccPaymentTypes = implode(',', array_keys(config('firefly.ccTypes')));
$types = implode(',', array_keys(config('firefly.subTitlesByIdentifier')));
$type = $this->convertString('type');
//var_dump($types);exit;
return [
'type' => [
new BelongsUser()
],
'name' => [
'nullable',
'string',
'max:255',
],
'name' => ['required', 'max:1024', 'min:1'], // , new IsUniqueAccount()
'account_type' => ['required','max:1024','min:1', sprintf('in:%s', $types)],
// 'iban' => ['iban', 'nullable', new UniqueIban(null, $type)],
// 'bic' => 'bic|nullable',
// 'account_number' => ['min:1', 'max:255', 'nullable', new UniqueAccountNumber(null, $type)],
// 'opening_balance' => 'numeric|required_with:opening_balance_date|nullable',
// 'opening_balance_date' => 'date|required_with:opening_balance|nullable',
// 'virtual_balance' => 'numeric|nullable',
// 'order' => 'numeric|nullable',
// 'currency_id' => 'numeric|exists:transaction_currencies,id',
// 'currency_code' => 'min:3|max:3|exists:transaction_currencies,code',
// 'active' => [new IsBoolean()],
// 'include_net_worth' => [new IsBoolean()],
// 'account_role' => sprintf('nullable|in:%s|required_if:type,asset', $accountRoles),
// 'credit_card_type' => sprintf('nullable|in:%s|required_if:account_role,ccAsset', $ccPaymentTypes),
// 'monthly_payment_date' => 'nullable|date|required_if:account_role,ccAsset|required_if:credit_card_type,monthlyFull',
// 'liability_type' => 'nullable|required_if:type,liability|required_if:type,liabilities|in:loan,debt,mortgage',
// 'liability_amount' => ['required_with:liability_start_date', new IsValidPositiveAmount()],
// 'liability_start_date' => 'required_with:liability_amount|date',
// 'liability_direction' => 'nullable|required_if:type,liability|required_if:type,liabilities|in:credit,debit',
// 'interest' => 'min:0|max:100|numeric',
// 'interest_period' => sprintf('nullable|in:%s', implode(',', config('firefly.interest_periods'))),
// 'notes' => 'min:0|max:32768',
];
}

View File

@@ -6,7 +6,6 @@ namespace FireflyIII\JsonApi\V2\Accounts;
use FireflyIII\Models\Account;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
use LaravelJsonApi\Core\Resources\JsonApiResource;
/**
@@ -38,7 +37,7 @@ class AccountResource extends JsonApiResource
'active' => $this->resource->active,
'order' => $this->resource->order,
'iban' => $this->resource->iban,
'type' => $this->resource->account_type_string,
'account_type' => $this->resource->account_type_string,
'account_role' => $this->resource->account_role,
'account_number' => '' === $this->resource->account_number ? null : $this->resource->account_number,

View File

@@ -40,7 +40,7 @@ class AccountSchema extends Schema
Attribute::make('active')->sortable(),
Attribute::make('order')->sortable(),
Attribute::make('iban')->sortable(),
Attribute::make('type'),
Attribute::make('account_type'),
Attribute::make('account_role'),
Attribute::make('account_number')->sortable(),
@@ -60,7 +60,9 @@ class AccountSchema extends Schema
Attribute::make('liability_direction'),
Attribute::make('interest'),
Attribute::make('interest_period'),
Attribute::make('current_debt')->sortable(),
//Attribute::make('current_debt')->sortable(),
// TODO credit card fields.
// dynamic data
Attribute::make('last_activity')->sortable(),

View File

@@ -53,6 +53,7 @@ class CrudAccount extends CrudResource
}
public function create(array $validatedData): Account {
die('here we are');
var_dump($validatedData);exit;
die('in create method.');
}
}