Can now leave out actions and triggers.

If added though, all data must be present. #2477
This commit is contained in:
James Cole
2019-08-25 07:55:21 +02:00
parent c0909aebba
commit 8680254503
2 changed files with 71 additions and 15 deletions

View File

@@ -387,25 +387,29 @@ class RuleRepository implements RuleRepositoryInterface
public function update(Rule $rule, array $data): Rule
{
// update rule:
$rule->rule_group_id = $data['rule_group_id'];
$rule->active = $data['active'];
$rule->stop_processing = $data['stop_processing'];
$rule->title = $data['title'];
$rule->strict = $data['strict'] ?? false;
$rule->description = $data['description'];
$rule->rule_group_id = $data['rule_group_id'] ?? $rule->rule_group_id;
$rule->active = $data['active'] ?? $rule->active;
$rule->stop_processing = $data['stop_processing'] ?? $rule->stop_processing;
$rule->title = $data['title'] ?? $rule->title;
$rule->strict = $data['strict'] ?? $rule->strict;
$rule->description = $data['description'] ?? $rule->description;
$rule->save();
// delete triggers:
$rule->ruleTriggers()->delete();
if (null !== $data['triggers']) {
// delete triggers:
$rule->ruleTriggers()->delete();
// delete actions:
$rule->ruleActions()->delete();
// recreate triggers:
$this->storeTriggers($rule, $data);
}
if (null !== $data['actions']) {
// delete actions:
$rule->ruleActions()->delete();
// recreate triggers:
$this->storeTriggers($rule, $data);
// recreate actions:
$this->storeActions($rule, $data);
// recreate actions:
$this->storeActions($rule, $data);
}
return $rule;
}