mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-10-03 19:16:51 +00:00
Fix rule validation issues.
This commit is contained in:
@@ -13,7 +13,7 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Http\Requests;
|
namespace FireflyIII\Http\Requests;
|
||||||
|
|
||||||
use FireflyIII\Repositories\RuleGroup\RuleGroupRepositoryInterface;
|
use FireflyIII\Repositories\Rule\RuleRepositoryInterface;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class RuleFormRequest
|
* Class RuleFormRequest
|
||||||
@@ -57,8 +57,8 @@ class RuleFormRequest extends Request
|
|||||||
*/
|
*/
|
||||||
public function rules()
|
public function rules()
|
||||||
{
|
{
|
||||||
/** @var RuleGroupRepositoryInterface $repository */
|
/** @var RuleRepositoryInterface $repository */
|
||||||
$repository = app(RuleGroupRepositoryInterface::class);
|
$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'));
|
||||||
|
|
||||||
@@ -69,7 +69,6 @@ class RuleFormRequest extends Request
|
|||||||
if (!is_null($repository->find(intval($this->get('id')))->id)) {
|
if (!is_null($repository->find(intval($this->get('id')))->id)) {
|
||||||
$titleRule = 'required|between:1,100|uniqueObjectForUser:rules,title,' . intval($this->get('id'));
|
$titleRule = 'required|between:1,100|uniqueObjectForUser:rules,title,' . intval($this->get('id'));
|
||||||
}
|
}
|
||||||
|
|
||||||
$rules = [
|
$rules = [
|
||||||
'title' => $titleRule,
|
'title' => $titleRule,
|
||||||
'description' => 'between:1,5000',
|
'description' => 'between:1,5000',
|
||||||
|
@@ -56,6 +56,21 @@ class RuleRepository implements RuleRepositoryInterface
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param int $ruleId
|
||||||
|
*
|
||||||
|
* @return Rule
|
||||||
|
*/
|
||||||
|
public function find(int $ruleId): Rule
|
||||||
|
{
|
||||||
|
$rule = $this->user->rules()->find($ruleId);
|
||||||
|
if (is_null($rule)) {
|
||||||
|
return new Rule;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $rule;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FIxXME can return null
|
* FIxXME can return null
|
||||||
*
|
*
|
||||||
|
@@ -38,6 +38,14 @@ interface RuleRepositoryInterface
|
|||||||
*/
|
*/
|
||||||
public function destroy(Rule $rule): bool;
|
public function destroy(Rule $rule): bool;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param int $ruleId
|
||||||
|
*
|
||||||
|
* @return Rule
|
||||||
|
*/
|
||||||
|
public function find(int $ruleId): Rule;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return RuleGroup
|
* @return RuleGroup
|
||||||
*/
|
*/
|
||||||
|
@@ -245,11 +245,10 @@ class RuleControllerTest extends TestCase
|
|||||||
// mock stuff
|
// mock stuff
|
||||||
$repository = $this->mock(RuleRepositoryInterface::class);
|
$repository = $this->mock(RuleRepositoryInterface::class);
|
||||||
$journalRepos = $this->mock(JournalRepositoryInterface::class);
|
$journalRepos = $this->mock(JournalRepositoryInterface::class);
|
||||||
$ruleGroupRepos = $this->mock(RuleGroupRepositoryInterface::class);
|
|
||||||
|
|
||||||
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
|
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
|
||||||
$ruleGroupRepos->shouldReceive('find')->andReturn(new RuleGroup)->once();
|
|
||||||
$repository->shouldReceive('store')->andReturn(new Rule);
|
$repository->shouldReceive('store')->andReturn(new Rule);
|
||||||
|
$repository->shouldReceive('find')->withArgs([0])->andReturn(new Rule)->once();
|
||||||
|
|
||||||
$this->session(['rules.create.uri' => 'http://localhost']);
|
$this->session(['rules.create.uri' => 'http://localhost']);
|
||||||
$data = [
|
$data = [
|
||||||
@@ -377,10 +376,9 @@ class RuleControllerTest extends TestCase
|
|||||||
// mock stuff
|
// mock stuff
|
||||||
$repository = $this->mock(RuleRepositoryInterface::class);
|
$repository = $this->mock(RuleRepositoryInterface::class);
|
||||||
$journalRepos = $this->mock(JournalRepositoryInterface::class);
|
$journalRepos = $this->mock(JournalRepositoryInterface::class);
|
||||||
$ruleGroupRepos = $this->mock(RuleGroupRepositoryInterface::class);
|
$rule = Rule::find(1);
|
||||||
|
|
||||||
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
|
$journalRepos->shouldReceive('first')->once()->andReturn(new TransactionJournal);
|
||||||
$ruleGroupRepos->shouldReceive('find')->andReturn(new RuleGroup)->once();
|
$repository->shouldReceive('find')->withArgs([1])->andReturn($rule)->once();
|
||||||
$repository->shouldReceive('update');
|
$repository->shouldReceive('update');
|
||||||
|
|
||||||
$data = [
|
$data = [
|
||||||
|
Reference in New Issue
Block a user