mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-10-13 07:53:16 +00:00
Simplified some methods.
This commit is contained in:
@@ -41,16 +41,6 @@ class RuleRepository implements RuleRepositoryInterface
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @param RuleGroup $ruleGroup
|
|
||||||
*
|
|
||||||
* @return int
|
|
||||||
*/
|
|
||||||
public function getHighestOrderInRuleGroup(RuleGroup $ruleGroup)
|
|
||||||
{
|
|
||||||
return intval($ruleGroup->rules()->max('order'));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Rule $rule
|
* @param Rule $rule
|
||||||
*
|
*
|
||||||
@@ -73,6 +63,31 @@ class RuleRepository implements RuleRepositoryInterface
|
|||||||
$this->resetRulesInGroupOrder($rule->ruleGroup);
|
$this->resetRulesInGroupOrder($rule->ruleGroup);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param RuleGroup $ruleGroup
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function resetRulesInGroupOrder(RuleGroup $ruleGroup)
|
||||||
|
{
|
||||||
|
$ruleGroup->rules()->whereNotNull('deleted_at')->update(['order' => 0]);
|
||||||
|
|
||||||
|
$set = $ruleGroup->rules()
|
||||||
|
->orderBy('order', 'ASC')
|
||||||
|
->orderBy('updated_at', 'DESC')
|
||||||
|
->get();
|
||||||
|
$count = 1;
|
||||||
|
/** @var Rule $entry */
|
||||||
|
foreach ($set as $entry) {
|
||||||
|
$entry->order = $count;
|
||||||
|
$entry->save();
|
||||||
|
$count++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Rule $rule
|
* @param Rule $rule
|
||||||
*
|
*
|
||||||
@@ -138,31 +153,6 @@ class RuleRepository implements RuleRepositoryInterface
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @param RuleGroup $ruleGroup
|
|
||||||
*
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
public function resetRulesInGroupOrder(RuleGroup $ruleGroup)
|
|
||||||
{
|
|
||||||
$ruleGroup->rules()->whereNotNull('deleted_at')->update(['order' => 0]);
|
|
||||||
|
|
||||||
$set = $ruleGroup->rules()
|
|
||||||
->orderBy('order', 'ASC')
|
|
||||||
->orderBy('updated_at', 'DESC')
|
|
||||||
->get();
|
|
||||||
$count = 1;
|
|
||||||
/** @var Rule $entry */
|
|
||||||
foreach ($set as $entry) {
|
|
||||||
$entry->order = $count;
|
|
||||||
$entry->save();
|
|
||||||
$count++;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array $data
|
* @param array $data
|
||||||
*
|
*
|
||||||
@@ -192,10 +182,26 @@ class RuleRepository implements RuleRepositoryInterface
|
|||||||
// start storing triggers:
|
// start storing triggers:
|
||||||
$order = 1;
|
$order = 1;
|
||||||
$stopProcessing = false;
|
$stopProcessing = false;
|
||||||
|
|
||||||
|
$triggerValues = [
|
||||||
|
'action' => 'user_action',
|
||||||
|
'value' => $data['trigger'],
|
||||||
|
'stopProcessing' => $stopProcessing,
|
||||||
|
'order' => $order,
|
||||||
|
];
|
||||||
|
|
||||||
$this->storeTrigger($rule, 'user_action', $data['trigger'], $stopProcessing, $order);
|
$this->storeTrigger($rule, 'user_action', $data['trigger'], $stopProcessing, $order);
|
||||||
foreach ($data['rule-triggers'] as $index => $trigger) {
|
foreach ($data['rule-triggers'] as $index => $trigger) {
|
||||||
$value = $data['rule-trigger-values'][$index];
|
$value = $data['rule-trigger-values'][$index];
|
||||||
$stopProcessing = isset($data['rule-trigger-stop'][$index]) ? true : false;
|
$stopProcessing = isset($data['rule-trigger-stop'][$index]) ? true : false;
|
||||||
|
|
||||||
|
$triggerValues = [
|
||||||
|
'action' => $trigger,
|
||||||
|
'value' => $value,
|
||||||
|
'stopProcessing' => $stopProcessing,
|
||||||
|
'order' => $order,
|
||||||
|
];
|
||||||
|
|
||||||
$this->storeTrigger($rule, $trigger, $value, $stopProcessing, $order);
|
$this->storeTrigger($rule, $trigger, $value, $stopProcessing, $order);
|
||||||
$order++;
|
$order++;
|
||||||
}
|
}
|
||||||
@@ -205,6 +211,14 @@ class RuleRepository implements RuleRepositoryInterface
|
|||||||
foreach ($data['rule-actions'] as $index => $action) {
|
foreach ($data['rule-actions'] as $index => $action) {
|
||||||
$value = $data['rule-action-values'][$index];
|
$value = $data['rule-action-values'][$index];
|
||||||
$stopProcessing = isset($data['rule-action-stop'][$index]) ? true : false;
|
$stopProcessing = isset($data['rule-action-stop'][$index]) ? true : false;
|
||||||
|
|
||||||
|
$actionValues = [
|
||||||
|
'action' => $action,
|
||||||
|
'value' => $value,
|
||||||
|
'stopProcessing' => $stopProcessing,
|
||||||
|
'order' => $order,
|
||||||
|
];
|
||||||
|
|
||||||
$this->storeAction($rule, $action, $value, $stopProcessing, $order);
|
$this->storeAction($rule, $action, $value, $stopProcessing, $order);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -212,52 +226,56 @@ class RuleRepository implements RuleRepositoryInterface
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Rule $rule
|
* @param RuleGroup $ruleGroup
|
||||||
* @param string $action
|
*
|
||||||
* @param string $value
|
* @return int
|
||||||
* @param bool $stopProcessing
|
*/
|
||||||
* @param int $order
|
public function getHighestOrderInRuleGroup(RuleGroup $ruleGroup)
|
||||||
|
{
|
||||||
|
return intval($ruleGroup->rules()->max('order'));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param Rule $rule
|
||||||
|
* @param array $values
|
||||||
|
*
|
||||||
|
* @return RuleTrigger
|
||||||
|
*/
|
||||||
|
public function storeTrigger(Rule $rule, array $values)
|
||||||
|
{
|
||||||
|
$ruleTrigger = new RuleTrigger;
|
||||||
|
$ruleTrigger->rule()->associate($rule);
|
||||||
|
$ruleTrigger->order = $values['order'];
|
||||||
|
$ruleTrigger->active = 1;
|
||||||
|
$ruleTrigger->stop_processing = $values['stopProcessing'];
|
||||||
|
$ruleTrigger->trigger_type = $values['action'];
|
||||||
|
$ruleTrigger->trigger_value = $values['value'];
|
||||||
|
$ruleTrigger->save();
|
||||||
|
|
||||||
|
return $ruleTrigger;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param Rule $rule
|
||||||
|
* @param array $values
|
||||||
*
|
*
|
||||||
* @return RuleAction
|
* @return RuleAction
|
||||||
*/
|
*/
|
||||||
public function storeAction(Rule $rule, $action, $value, $stopProcessing, $order)
|
public function storeAction(Rule $rule, array $values)
|
||||||
{
|
{
|
||||||
$ruleAction = new RuleAction;
|
$ruleAction = new RuleAction;
|
||||||
$ruleAction->rule()->associate($rule);
|
$ruleAction->rule()->associate($rule);
|
||||||
$ruleAction->order = $order;
|
$ruleAction->order = $values['order'];
|
||||||
$ruleAction->active = 1;
|
$ruleAction->active = 1;
|
||||||
$ruleAction->stop_processing = $stopProcessing;
|
$ruleAction->stop_processing = $values['stopProcessing'];
|
||||||
$ruleAction->action_type = $action;
|
$ruleAction->action_type = $values['action'];
|
||||||
$ruleAction->action_value = $value;
|
$ruleAction->action_value = $values['value'];
|
||||||
$ruleAction->save();
|
$ruleAction->save();
|
||||||
|
|
||||||
|
|
||||||
return $ruleAction;
|
return $ruleAction;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Rule $rule
|
|
||||||
* @param string $action
|
|
||||||
* @param string $value
|
|
||||||
* @param bool $stopProcessing
|
|
||||||
* @param int $order
|
|
||||||
*
|
|
||||||
* @return RuleTrigger
|
|
||||||
*/
|
|
||||||
public function storeTrigger(Rule $rule, $action, $value, $stopProcessing, $order)
|
|
||||||
{
|
|
||||||
$ruleTrigger = new RuleTrigger;
|
|
||||||
$ruleTrigger->rule()->associate($rule);
|
|
||||||
$ruleTrigger->order = $order;
|
|
||||||
$ruleTrigger->active = 1;
|
|
||||||
$ruleTrigger->stop_processing = $stopProcessing;
|
|
||||||
$ruleTrigger->trigger_type = $action;
|
|
||||||
$ruleTrigger->trigger_value = $value;
|
|
||||||
$ruleTrigger->save();
|
|
||||||
|
|
||||||
return $ruleTrigger;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Rule $rule
|
* @param Rule $rule
|
||||||
* @param array $data
|
* @param array $data
|
||||||
@@ -282,10 +300,26 @@ class RuleRepository implements RuleRepositoryInterface
|
|||||||
// recreate triggers:
|
// recreate triggers:
|
||||||
$order = 1;
|
$order = 1;
|
||||||
$stopProcessing = false;
|
$stopProcessing = false;
|
||||||
|
|
||||||
|
$triggerValues = [
|
||||||
|
'action' => 'user_action',
|
||||||
|
'value' => $data['trigger'],
|
||||||
|
'stopProcessing' => $stopProcessing,
|
||||||
|
'order' => $order,
|
||||||
|
];
|
||||||
|
|
||||||
$this->storeTrigger($rule, 'user_action', $data['trigger'], $stopProcessing, $order);
|
$this->storeTrigger($rule, 'user_action', $data['trigger'], $stopProcessing, $order);
|
||||||
foreach ($data['rule-triggers'] as $index => $trigger) {
|
foreach ($data['rule-triggers'] as $index => $trigger) {
|
||||||
$value = $data['rule-trigger-values'][$index];
|
$value = $data['rule-trigger-values'][$index];
|
||||||
$stopProcessing = isset($data['rule-trigger-stop'][$index]) ? true : false;
|
$stopProcessing = isset($data['rule-trigger-stop'][$index]) ? true : false;
|
||||||
|
|
||||||
|
$triggerValues = [
|
||||||
|
'action' => $trigger,
|
||||||
|
'value' => $value,
|
||||||
|
'stopProcessing' => $stopProcessing,
|
||||||
|
'order' => $order,
|
||||||
|
];
|
||||||
|
|
||||||
$this->storeTrigger($rule, $trigger, $value, $stopProcessing, $order);
|
$this->storeTrigger($rule, $trigger, $value, $stopProcessing, $order);
|
||||||
$order++;
|
$order++;
|
||||||
}
|
}
|
||||||
@@ -295,10 +329,18 @@ class RuleRepository implements RuleRepositoryInterface
|
|||||||
foreach ($data['rule-actions'] as $index => $action) {
|
foreach ($data['rule-actions'] as $index => $action) {
|
||||||
$value = $data['rule-action-values'][$index];
|
$value = $data['rule-action-values'][$index];
|
||||||
$stopProcessing = isset($data['rule-action-stop'][$index]) ? true : false;
|
$stopProcessing = isset($data['rule-action-stop'][$index]) ? true : false;
|
||||||
|
|
||||||
|
$actionValues = [
|
||||||
|
'action' => $action,
|
||||||
|
'value' => $value,
|
||||||
|
'stopProcessing' => $stopProcessing,
|
||||||
|
'order' => $order,
|
||||||
|
];
|
||||||
|
|
||||||
$this->storeAction($rule, $action, $value, $stopProcessing, $order);
|
$this->storeAction($rule, $action, $value, $stopProcessing, $order);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return $rule;
|
return $rule;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -81,25 +81,19 @@ interface RuleRepositoryInterface
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Rule $rule
|
* @param Rule $rule
|
||||||
* @param string $action
|
* @param array $values
|
||||||
* @param string $value
|
|
||||||
* @param bool $stopProcessing
|
|
||||||
* @param int $order
|
|
||||||
*
|
*
|
||||||
* @return RuleAction
|
* @return RuleAction
|
||||||
*/
|
*/
|
||||||
public function storeAction(Rule $rule, $action, $value, $stopProcessing, $order);
|
public function storeAction(Rule $rule, array $values);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Rule $rule
|
* @param Rule $rule
|
||||||
* @param string $action
|
* @param array $values
|
||||||
* @param string $value
|
|
||||||
* @param bool $stopProcessing
|
|
||||||
* @param int $order
|
|
||||||
*
|
*
|
||||||
* @return RuleTrigger
|
* @return RuleTrigger
|
||||||
*/
|
*/
|
||||||
public function storeTrigger(Rule $rule, $action, $value, $stopProcessing, $order);
|
public function storeTrigger(Rule $rule, array $values);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Rule $rule
|
* @param Rule $rule
|
||||||
@@ -109,4 +103,4 @@ interface RuleRepositoryInterface
|
|||||||
*/
|
*/
|
||||||
public function update(Rule $rule, array $data);
|
public function update(Rule $rule, array $data);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user