More resources for rules.

This commit is contained in:
James Cole
2016-01-14 10:33:24 +01:00
parent 97770da619
commit b9b0413510
6 changed files with 54 additions and 7 deletions

View File

@@ -12,6 +12,7 @@ namespace FireflyIII\Repositories\Rule;
use Auth;
use FireflyIII\Models\Rule;
use FireflyIII\Models\RuleGroup;
use Illuminate\Support\Collection;
use Log;
/**
@@ -77,19 +78,31 @@ class RuleRepository implements RuleRepositoryInterface
/**
* @param RuleGroup $ruleGroup
* @param RuleGroup $moveTo
*
* @return boolean
*/
public function destroyRuleGroup(RuleGroup $ruleGroup)
public function destroyRuleGroup(RuleGroup $ruleGroup, RuleGroup $moveTo = null)
{
/** @var Rule $rule */
foreach ($ruleGroup->rules as $rule) {
$rule->delete();
if (is_null($moveTo)) {
$rule->delete();
} else {
// move
$rule->ruleGroup()->associate($moveTo);
$rule->save();
}
}
$ruleGroup->delete();
$this->resetRuleGroupOrder();
if (!is_null($moveTo)) {
$this->resetRulesInGroupOrder($moveTo);
}
return true;
}
@@ -215,4 +228,12 @@ class RuleRepository implements RuleRepositoryInterface
$ruleGroup->save();
$this->resetRuleGroupOrder();
}
/**
* @return Collection
*/
public function getRuleGroups()
{
return Auth::user()->ruleGroups()->orderBy('order', 'ASC')->get();
}
}

View File

@@ -11,6 +11,7 @@ namespace FireflyIII\Repositories\Rule;
use FireflyIII\Models\Rule;
use FireflyIII\Models\RuleGroup;
use Illuminate\Support\Collection;
/**
* Interface RuleRepositoryInterface
@@ -43,10 +44,11 @@ interface RuleRepositoryInterface
/**
* @param RuleGroup $ruleGroup
* @param RuleGroup $moveTo
*
* @return boolean
*/
public function destroyRuleGroup(RuleGroup $ruleGroup);
public function destroyRuleGroup(RuleGroup $ruleGroup, RuleGroup $moveTo = null);
/**
* @return bool
@@ -82,4 +84,9 @@ interface RuleRepositoryInterface
*/
public function moveRuleGroupDown(RuleGroup $ruleGroup);
/**
* @return Collection
*/
public function getRuleGroups();
}