Improve test coverage, mark as deprecated.

This commit is contained in:
James Cole
2018-05-05 13:53:12 +02:00
parent bc7c3bb9b3
commit 19fff681d2
22 changed files with 701 additions and 379 deletions

View File

@@ -32,6 +32,7 @@ use FireflyIII\Models\Note;
use FireflyIII\Models\PiggyBankEvent;
use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Models\TransactionJournalMeta;
use FireflyIII\Models\TransactionType;
use FireflyIII\Services\Internal\Destroy\JournalDestroyService;
use FireflyIII\Services\Internal\Update\JournalUpdateService;
@@ -147,6 +148,22 @@ class JournalRepository implements JournalRepositoryInterface
return $journal;
}
/**
* Find a journal by its hash.
*
* @param string $hash
*
* @return TransactionJournalMeta|null
*/
public function findByHash(string $hash): ?TransactionJournalMeta
{
return TransactionJournalMeta
::leftJoin('transaction_journals', 'transaction_journals.id', '=', 'journal_meta.transaction_journal_id')
->where('data', $hash)
->where('name', 'importHashV2')
->first(['journal_meta.*']);
}
/**
* Find a specific journal.
*

View File

@@ -27,6 +27,7 @@ use FireflyIII\Models\Account;
use FireflyIII\Models\Note;
use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Models\TransactionJournalMeta;
use FireflyIII\Models\TransactionType;
use FireflyIII\User;
use Illuminate\Support\Collection;
@@ -37,6 +38,14 @@ use Illuminate\Support\MessageBag;
*/
interface JournalRepositoryInterface
{
/**
* Find a journal by its hash.
*
* @param string $hash
*
* @return TransactionJournalMeta|null
*/
public function findByHash(string $hash): ?TransactionJournalMeta;
/**
* @param TransactionJournal $journal

View File

@@ -28,6 +28,7 @@ use FireflyIII\Models\RuleAction;
use FireflyIII\Models\RuleGroup;
use FireflyIII\Models\RuleTrigger;
use FireflyIII\User;
use Illuminate\Support\Collection;
/**
* Class RuleRepository.
@@ -89,6 +90,26 @@ class RuleRepository implements RuleRepositoryInterface
return $this->user->ruleGroups()->first();
}
/**
* Get the rules for a user tailored to the import process.
*
* @return Collection
*/
public function getForImport(): Collection
{
return Rule::distinct()
->where('rules.user_id', $this->user->user_id)
->leftJoin('rule_groups', 'rule_groups.id', '=', 'rules.rule_group_id')
->leftJoin('rule_triggers', 'rules.id', '=', 'rule_triggers.rule_id')
->where('rule_groups.active', 1)
->where('rule_triggers.trigger_type', 'user_action')
->where('rule_triggers.trigger_value', 'store-journal')
->where('rules.active', 1)
->orderBy('rule_groups.order', 'ASC')
->orderBy('rules.order', 'ASC')
->get(['rules.*', 'rule_groups.order']);
}
/**
* @param RuleGroup $ruleGroup
*

View File

@@ -27,12 +27,14 @@ use FireflyIII\Models\RuleAction;
use FireflyIII\Models\RuleGroup;
use FireflyIII\Models\RuleTrigger;
use FireflyIII\User;
use Illuminate\Support\Collection;
/**
* Interface RuleRepositoryInterface.
*/
interface RuleRepositoryInterface
{
/**
* @return int
*/
@@ -57,6 +59,13 @@ interface RuleRepositoryInterface
*/
public function getFirstRuleGroup(): RuleGroup;
/**
* Get the rules for a user tailored to the import process.
*
* @return Collection
*/
public function getForImport(): Collection;
/**
* @param RuleGroup $ruleGroup
*