Rules will no longer list the "user-action" trigger

Rules will have a "moment" field that says either "update-journal" or "store-journal".
This commit is contained in:
James Cole
2019-08-25 07:35:26 +02:00
parent af2f085aa7
commit aa1b9fa5a5

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Transformers;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Models\Rule;
use FireflyIII\Models\RuleAction;
use FireflyIII\Models\RuleTrigger;
@@ -73,6 +74,7 @@ class RuleTransformer extends AbstractTransformer
'active' => $rule->active,
'strict' => $rule->strict,
'stop_processing' => $rule->stop_processing,
'moment' => $this->getRuleMoment($rule),
'triggers' => $this->triggers($rule),
'actions' => $this->actions($rule),
'links' => [
@@ -112,6 +114,29 @@ class RuleTransformer extends AbstractTransformer
return $result;
}
/**
* @param Rule $rule
*
* @return string
* @throws FireflyException
*/
private function getRuleMoment(Rule $rule): string
{
$moment = null;
$triggers = $this->ruleRepository->getRuleTriggers($rule);
/** @var RuleTrigger $ruleTrigger */
foreach ($triggers as $ruleTrigger) {
if ('user_action' === $ruleTrigger->trigger_type) {
$moment = $ruleTrigger->trigger_value;
}
}
if (null === $moment) {
throw new FireflyException(sprintf('Rule #%d has no valid trigger moment. Edit it in the Firefly III user interface to correct this.', $rule->id));
}
return $moment;
}
/**
* @param Rule $rule
*
@@ -123,6 +148,9 @@ class RuleTransformer extends AbstractTransformer
$triggers = $this->ruleRepository->getRuleTriggers($rule);
/** @var RuleTrigger $ruleTrigger */
foreach ($triggers as $ruleTrigger) {
if ('user_action' === $ruleTrigger->trigger_type) {
continue;
}
$result[] = [
'id' => (int)$ruleTrigger->id,
'created_at' => $ruleTrigger->created_at->toAtomString(),