mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-11-02 03:51:18 +00:00
Improve test coverage, mark as deprecated.
This commit is contained in:
@@ -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.
|
||||
*
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
*
|
||||
|
||||
@@ -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
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user