Moved creation of Trigger objects to factory for reuse

This commit is contained in:
Robert Horlings
2016-02-17 13:13:23 +01:00
parent 17dad27610
commit d8bb83e8c4
2 changed files with 72 additions and 12 deletions

View File

@@ -16,6 +16,7 @@ use FireflyIII\Models\RuleTrigger;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Rules\Actions\ActionInterface;
use FireflyIII\Rules\Triggers\TriggerInterface;
use FireflyIII\Rules\Triggers\TriggerFactory;
use FireflyIII\Support\Domain;
use Log;
@@ -130,19 +131,9 @@ class Processor
/** @var RuleTrigger $trigger */
foreach ($this->rule->ruleTriggers()->orderBy('order', 'ASC')->get() as $trigger) {
$foundTriggers++;
$type = $trigger->trigger_type;
if (!isset($this->triggerTypes[$type])) {
abort(500, 'No such trigger exists ("' . $type . '").');
}
$class = $this->triggerTypes[$type];
Log::debug('Trigger #' . $trigger->id . ' for rule #' . $trigger->rule_id . ' (' . $type . ')');
if (!class_exists($class)) {
abort(500, 'Could not instantiate class for rule trigger type "' . $type . '" (' . $class . ').');
}
/** @var TriggerInterface $triggerClass */
$triggerClass = new $class($trigger, $this->journal);
$triggerClass = TriggerFactory::getTrigger($trigger, $this->journal);
if ($triggerClass->triggered()) {
$hitTriggers++;
}