Offload stuff to repositories for rules and rule groups, see issue #185

This commit is contained in:
James Cole
2016-02-17 17:27:41 +01:00
parent 2ef1c54417
commit f9e2a677d9
5 changed files with 124 additions and 76 deletions

View File

@@ -7,6 +7,8 @@ namespace FireflyIII\Repositories\RuleGroup;
use Auth;
use FireflyIII\Models\Rule;
use FireflyIII\Models\RuleGroup;
use FireflyIII\User;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Support\Collection;
/**
@@ -73,6 +75,33 @@ class RuleGroupRepository implements RuleGroupRepositoryInterface
return intval($entry);
}
/**
* @param User $user
*
* @return Collection
*/
public function getRuleGroupsWithRules(User $user): Collection
{
return $user->ruleGroups()
->orderBy('active', 'DESC')
->orderBy('order', 'ASC')
->with(
[
'rules' => function (HasMany $query) {
$query->orderBy('active', 'DESC');
$query->orderBy('order', 'ASC');
},
'rules.ruleTriggers' => function (HasMany $query) {
$query->orderBy('order', 'ASC');
},
'rules.ruleActions' => function (HasMany $query) {
$query->orderBy('order', 'ASC');
},
]
)->get();
}
/**
* @param RuleGroup $ruleGroup
*
@@ -203,5 +232,4 @@ class RuleGroupRepository implements RuleGroupRepositoryInterface
return $ruleGroup;
}
}