Update requests.

This commit is contained in:
James Cole
2018-08-07 19:24:07 +02:00
parent cd2a251f22
commit 201bc7db53
9 changed files with 58 additions and 37 deletions

View File

@@ -121,7 +121,7 @@ class AccountFormRequest extends Request
if (null !== $account) { if (null !== $account) {
// add rules: // add rules:
$rules['id'] = 'belongsToUser:accounts'; $rules['id'] = 'belongsToUser:accounts';
$rules['name'] = 'required|min:1|uniqueAccountForUser:' . (int)$this->get('id'); $rules['name'] = 'required|min:1|uniqueAccountForUser:' . $account->id;
$rules['iban'] = ['iban', 'nullable', new UniqueIban($account, $account->accountType->type)]; $rules['iban'] = ['iban', 'nullable', new UniqueIban($account, $account->accountType->type)];
} }

View File

@@ -22,6 +22,8 @@ declare(strict_types=1);
namespace FireflyIII\Http\Requests; namespace FireflyIII\Http\Requests;
use FireflyIII\Models\Bill;
/** /**
* Class BillFormRequest. * Class BillFormRequest.
*/ */
@@ -66,8 +68,10 @@ class BillFormRequest extends Request
public function rules(): array public function rules(): array
{ {
$nameRule = 'required|between:1,255|uniqueObjectForUser:bills,name'; $nameRule = 'required|between:1,255|uniqueObjectForUser:bills,name';
if ($this->integer('id') > 0) { /** @var Bill $bill */
$nameRule .= ',' . $this->integer('id'); $bill = $this->route()->parameter('bill');
if (null !== $bill) {
$nameRule = 'required|between:1,255|uniqueObjectForUser:bills,name,' . $bill->id;
} }
// is OK // is OK
$rules = [ $rules = [

View File

@@ -22,7 +22,7 @@ declare(strict_types=1);
namespace FireflyIII\Http\Requests; namespace FireflyIII\Http\Requests;
use FireflyIII\Repositories\Budget\BudgetRepositoryInterface; use FireflyIII\Models\Budget;
/** /**
* Class BudgetFormRequest. * Class BudgetFormRequest.
@@ -61,12 +61,13 @@ class BudgetFormRequest extends Request
*/ */
public function rules(): array public function rules(): array
{ {
// fixed $nameRule = 'required|between:1,100|uniqueObjectForUser:budgets,name';
/** @var BudgetRepositoryInterface $repository */
$repository = app(BudgetRepositoryInterface::class); /** @var Budget $budget */
$nameRule = 'required|between:1,100|uniqueObjectForUser:budgets,name'; $budget = $this->route()->parameter('budget');
if (null !== $repository->findNull((int)$this->get('id'))) {
$nameRule = 'required|between:1,100|uniqueObjectForUser:budgets,name,' . (int)$this->get('id'); if (null !== $budget) {
$nameRule = 'required|between:1,100|uniqueObjectForUser:budgets,name,' . $budget->id;
} }
return [ return [

View File

@@ -22,7 +22,7 @@ declare(strict_types=1);
namespace FireflyIII\Http\Requests; namespace FireflyIII\Http\Requests;
use FireflyIII\Repositories\Category\CategoryRepositoryInterface; use FireflyIII\Models\Category;
/** /**
* Class CategoryFormRequest. * Class CategoryFormRequest.
@@ -59,11 +59,12 @@ class CategoryFormRequest extends Request
*/ */
public function rules(): array public function rules(): array
{ {
/** @var CategoryRepositoryInterface $repository */ $nameRule = 'required|between:1,100|uniqueObjectForUser:categories,name';
$repository = app(CategoryRepositoryInterface::class); /** @var Category $category */
$nameRule = 'required|between:1,100|uniqueObjectForUser:categories,name'; $category = $this->route()->parameter('category');
if (null !== $repository->findNull($this->integer('id'))) {
$nameRule = 'required|between:1,100|uniqueObjectForUser:categories,name,' . $this->integer('id'); if (null !== $category) {
$nameRule = 'required|between:1,100|uniqueObjectForUser:categories,name,' . $category->id;
} }
// fixed // fixed

View File

@@ -22,6 +22,8 @@ declare(strict_types=1);
namespace FireflyIII\Http\Requests; namespace FireflyIII\Http\Requests;
use FireflyIII\Models\TransactionCurrency;
/** /**
* Class CurrencyFormRequest. * Class CurrencyFormRequest.
*/ */
@@ -67,7 +69,11 @@ class CurrencyFormRequest extends Request
'symbol' => 'required|min:1|max:8|unique:transaction_currencies,symbol', 'symbol' => 'required|min:1|max:8|unique:transaction_currencies,symbol',
'decimal_places' => 'required|min:0|max:12|numeric', 'decimal_places' => 'required|min:0|max:12|numeric',
]; ];
if ($this->integer('id') > 0) {
/** @var TransactionCurrency $currency */
$currency = $this->route()->parameter('currency');
if (null !== $currency) {
$rules = [ $rules = [
'name' => 'required|max:48|min:1', 'name' => 'required|max:48|min:1',
'code' => 'required|min:3|max:3', 'code' => 'required|min:3|max:3',

View File

@@ -21,6 +21,7 @@
declare(strict_types=1); declare(strict_types=1);
namespace FireflyIII\Http\Requests; namespace FireflyIII\Http\Requests;
use FireflyIII\Models\PiggyBank;
/** /**
* Class PiggyBankFormRequest. * Class PiggyBankFormRequest.
@@ -51,7 +52,7 @@ class PiggyBankFormRequest extends Request
'account_id' => $this->integer('account_id'), 'account_id' => $this->integer('account_id'),
'targetamount' => $this->string('targetamount'), 'targetamount' => $this->string('targetamount'),
'targetdate' => $this->date('targetdate'), 'targetdate' => $this->date('targetdate'),
'note' => $this->string('note'), 'notes' => $this->string('notes'),
]; ];
} }
@@ -63,8 +64,12 @@ class PiggyBankFormRequest extends Request
public function rules(): array public function rules(): array
{ {
$nameRule = 'required|between:1,255|uniquePiggyBankForUser'; $nameRule = 'required|between:1,255|uniquePiggyBankForUser';
if ($this->integer('id')) {
$nameRule = 'required|between:1,255|uniquePiggyBankForUser:' . $this->integer('id'); /** @var PiggyBank $piggy */
$piggy = $this->route()->parameter('piggyBank');
if (null !== $piggy) {
$nameRule = 'required|between:1,255|uniquePiggyBankForUser:' . $piggy->id;
} }
$rules = [ $rules = [

View File

@@ -22,7 +22,7 @@ declare(strict_types=1);
namespace FireflyIII\Http\Requests; namespace FireflyIII\Http\Requests;
use FireflyIII\Repositories\Rule\RuleRepositoryInterface; use FireflyIII\Models\Rule;
/** /**
* Class RuleFormRequest. * Class RuleFormRequest.
@@ -72,8 +72,6 @@ class RuleFormRequest extends Request
*/ */
public function rules(): array public function rules(): array
{ {
/** @var RuleRepositoryInterface $repository */
$repository = app(RuleRepositoryInterface::class);
$validTriggers = array_keys(config('firefly.rule-triggers')); $validTriggers = array_keys(config('firefly.rule-triggers'));
$validActions = array_keys(config('firefly.rule-actions')); $validActions = array_keys(config('firefly.rule-actions'));
@@ -81,8 +79,11 @@ class RuleFormRequest extends Request
$contextActions = implode(',', config('firefly.rule-actions-text')); $contextActions = implode(',', config('firefly.rule-actions-text'));
$titleRule = 'required|between:1,100|uniqueObjectForUser:rules,title'; $titleRule = 'required|between:1,100|uniqueObjectForUser:rules,title';
if (null !== $repository->find((int)$this->get('id'))) { /** @var Rule $rule */
$titleRule = 'required|between:1,100|uniqueObjectForUser:rules,title,' . (int)$this->get('id'); $rule = $this->route()->parameter('rule');
if (null !== $rule) {
$titleRule = 'required|between:1,100|uniqueObjectForUser:rules,title,' . $rule->id;
} }
$rules = [ $rules = [
'title' => $titleRule, 'title' => $titleRule,

View File

@@ -22,6 +22,7 @@ declare(strict_types=1);
namespace FireflyIII\Http\Requests; namespace FireflyIII\Http\Requests;
use FireflyIII\Models\RuleGroup;
use FireflyIII\Repositories\RuleGroup\RuleGroupRepositoryInterface; use FireflyIII\Repositories\RuleGroup\RuleGroupRepositoryInterface;
/** /**
@@ -60,12 +61,13 @@ class RuleGroupFormRequest extends Request
*/ */
public function rules(): array public function rules(): array
{ {
// fixed
/** @var RuleGroupRepositoryInterface $repository */
$repository = app(RuleGroupRepositoryInterface::class);
$titleRule = 'required|between:1,100|uniqueObjectForUser:rule_groups,title'; $titleRule = 'required|between:1,100|uniqueObjectForUser:rule_groups,title';
if (null !== $repository->find((int)$this->get('id'))) {
$titleRule = 'required|between:1,100|uniqueObjectForUser:rule_groups,title,' . (int)$this->get('id'); /** @var RuleGroup $ruleGroup */
$ruleGroup = $this->route()->parameter('ruleGroup');
if (null !== $ruleGroup) {
$titleRule = 'required|between:1,100|uniqueObjectForUser:rule_groups,title,' . $ruleGroup->id;
} }
return [ return [

View File

@@ -22,7 +22,7 @@ declare(strict_types=1);
namespace FireflyIII\Http\Requests; namespace FireflyIII\Http\Requests;
use FireflyIII\Repositories\Tag\TagRepositoryInterface; use FireflyIII\Models\Tag;
/** /**
* Class TagFormRequest. * Class TagFormRequest.
@@ -76,13 +76,14 @@ class TagFormRequest extends Request
*/ */
public function rules(): array public function rules(): array
{ {
/** @var TagRepositoryInterface $repository */ $idRule = '';
$repository = app(TagRepositoryInterface::class);
$idRule = ''; /** @var Tag $tag */
$tagRule = 'required|min:1|uniqueObjectForUser:tags,tag'; $tag = $this->route()->parameter('tag');
if (null !== $repository->findNull((int)$this->get('id'))) { $tagRule = 'required|min:1|uniqueObjectForUser:tags,tag';
if (null !== $tag) {
$idRule = 'belongsToUser:tags'; $idRule = 'belongsToUser:tags';
$tagRule = 'required|min:1|uniqueObjectForUser:tags,tag,' . $this->get('id'); $tagRule = 'required|min:1|uniqueObjectForUser:tags,tag,' . $tag->id;
} }
return [ return [