Created / updated rule repository and provider.

This commit is contained in:
James Cole 2016-03-03 09:02:04 +01:00
parent a51d752a35
commit 297c2e244d
3 changed files with 67 additions and 5 deletions

View File

@ -86,7 +86,6 @@ class FireflyServiceProvider extends ServiceProvider
$this->app->bind('FireflyIII\Repositories\Category\SingleCategoryRepositoryInterface', 'FireflyIII\Repositories\Category\SingleCategoryRepository');
$this->app->bind('FireflyIII\Repositories\Currency\CurrencyRepositoryInterface', 'FireflyIII\Repositories\Currency\CurrencyRepository');
$this->app->bind('FireflyIII\Repositories\Tag\TagRepositoryInterface', 'FireflyIII\Repositories\Tag\TagRepository');
$this->app->bind('FireflyIII\Repositories\Rule\RuleRepositoryInterface', 'FireflyIII\Repositories\Rule\RuleRepository');
$this->app->bind('FireflyIII\Support\Search\SearchInterface', 'FireflyIII\Support\Search\Search');
// CSV import

View File

@ -0,0 +1,49 @@
<?php
namespace FireflyIII\Providers;
use Auth;
use FireflyIII\Exceptions\FireflyException;
use Illuminate\Foundation\Application;
use Illuminate\Support\ServiceProvider;
/**
* Class RuleServiceProvider
*
* @package FireflyIII\Providers
*/
class RuleServiceProvider extends ServiceProvider
{
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
//
}
/**
* Register the application services.
*
* @return void
*/
public function register()
{
$this->app->bind(
'FireflyIII\Repositories\Rule\RuleRepositoryInterface',
function (Application $app, array $arguments) {
if (!isset($arguments[0]) && Auth::check()) {
return app('FireflyIII\Repositories\Rule\RuleRepository', [Auth::user()]);
} else {
if (!isset($arguments[0]) && !Auth::check()) {
throw new FireflyException('There is no user present.');
}
}
return app('FireflyIII\Repositories\Rule\RuleRepository', $arguments);
}
);
}
}

View File

@ -10,12 +10,13 @@ declare(strict_types = 1);
namespace FireflyIII\Repositories\Rule;
use Auth;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Models\Rule;
use FireflyIII\Models\RuleAction;
use FireflyIII\Models\RuleGroup;
use FireflyIII\Models\RuleTrigger;
use FireflyIII\User;
use Log;
/**
* Class RuleRepository
@ -24,13 +25,26 @@ use FireflyIII\Models\RuleTrigger;
*/
class RuleRepository implements RuleRepositoryInterface
{
/** @var User */
private $user;
/**
* BillRepository constructor.
*
* @param User $user
*/
public function __construct(User $user)
{
Log::debug('Constructed rule repository for user #' . $user->id . ' (' . $user->email . ')');
$this->user = $user;
}
/**
* @return int
*/
public function count()
{
return Auth::user()->rules()->count();
return $this->user->rules()->count();
}
/**
@ -56,7 +70,7 @@ class RuleRepository implements RuleRepositoryInterface
*/
public function getFirstRuleGroup()
{
return Auth::user()->ruleGroups()->first();
return $this->user->ruleGroups()->first();
}
/**
@ -205,7 +219,7 @@ class RuleRepository implements RuleRepositoryInterface
public function store(array $data)
{
/** @var RuleGroup $ruleGroup */
$ruleGroup = Auth::user()->ruleGroups()->find($data['rule_group_id']);
$ruleGroup = $this->user->ruleGroups()->find($data['rule_group_id']);
// get max order:
$order = $this->getHighestOrderInRuleGroup($ruleGroup);