Rule engine and search engine now use the same operators; making them interchangeable.

This commit is contained in:
James Cole
2020-08-21 08:23:44 +02:00
parent 3081911eae
commit d69934ca8f
11 changed files with 141 additions and 165 deletions

View File

@@ -73,7 +73,7 @@ class RuleController extends Controller
public function trigger(Request $request): JsonResponse
{
$count = (int) $request->get('count') > 0 ? (int) $request->get('count') : 1;
$keys = array_keys(config('firefly.rule-triggers'));
$keys = array_keys(config('firefly.search.operators'));
$triggers = [];
foreach ($keys as $key) {
if ('user_action' !== $key) {

View File

@@ -24,6 +24,7 @@ namespace FireflyIII\Http\Requests;
use FireflyIII\Models\Rule;
use FireflyIII\Support\Request\ConvertsDataTypes;
use FireflyIII\Support\Request\GetRuleConfiguration;
use Illuminate\Foundation\Http\FormRequest;
/**
@@ -31,7 +32,7 @@ use Illuminate\Foundation\Http\FormRequest;
*/
class RuleFormRequest extends FormRequest
{
use ConvertsDataTypes;
use ConvertsDataTypes, GetRuleConfiguration;
/**
* Verify the request.
*
@@ -73,14 +74,14 @@ class RuleFormRequest extends FormRequest
*/
public function rules(): array
{
$validTriggers = array_keys(config('firefly.rule-triggers'));
$validTriggers = $this->getTriggers();
$validActions = array_keys(config('firefly.rule-actions'));
// some actions require text (aka context):
$contextActions = implode(',', config('firefly.context-rule-actions'));
// some triggers require text (aka context):
$contextTriggers = implode(',', config('firefly.context-rule-triggers'));
$contextTriggers = implode(',', $this->getTriggersWithContext());
// initial set of rules:
$rules = [

View File

@@ -22,6 +22,7 @@ declare(strict_types=1);
namespace FireflyIII\Http\Requests;
use FireflyIII\Support\Request\GetRuleConfiguration;
use Illuminate\Foundation\Http\FormRequest;
/**
@@ -31,6 +32,7 @@ use Illuminate\Foundation\Http\FormRequest;
*/
class TestRuleFormRequest extends FormRequest
{
use GetRuleConfiguration;
/**
* Verify the request.
*
@@ -51,7 +53,7 @@ class TestRuleFormRequest extends FormRequest
public function rules(): array
{
// fixed
$validTriggers = array_keys(config('firefly.rule-triggers'));
$validTriggers = $this->getTriggers();
$rules = [
'rule-trigger.*' => 'required|min:1|in:' . implode(',', $validTriggers),
'rule-trigger-value.*' => 'required|min:1|ruleTriggerValue',