Set up and manage rule endpoints.

This commit is contained in:
James Cole
2021-03-06 17:43:06 +01:00
parent 2437759368
commit cfa9e8b318
12 changed files with 616 additions and 361 deletions

View File

@@ -21,7 +21,7 @@
declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests;
namespace FireflyIII\Api\V1\Requests\Models\Rule;
use FireflyIII\Rules\IsBoolean;
use FireflyIII\Support\Request\ChecksLogin;
@@ -33,9 +33,9 @@ use function is_array;
/**
* Class RuleStoreRequest
* Class StoreRequest
*/
class RuleStoreRequest extends FormRequest
class StoreRequest extends FormRequest
{
use ConvertsDataTypes, GetRuleConfiguration, ChecksLogin;
@@ -178,7 +178,7 @@ class RuleStoreRequest extends FormRequest
$data = $validator->getData();
$triggers = $data['triggers'] ?? [];
// need at least one trigger
if (0 === count($triggers)) {
if (!is_countable($triggers) || 0 === count($triggers)) {
$validator->errors()->add('title', (string) trans('validation.at_least_one_trigger'));
}
}
@@ -193,7 +193,7 @@ class RuleStoreRequest extends FormRequest
$data = $validator->getData();
$actions = $data['actions'] ?? [];
// need at least one trigger
if (0 === count($actions)) {
if (!is_countable($actions) || 0 === count($actions)) {
$validator->errors()->add('title', (string) trans('validation.at_least_one_action'));
}
}

View File

@@ -22,7 +22,7 @@
declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests;
namespace FireflyIII\Api\V1\Requests\Models\Rule;
use Carbon\Carbon;
@@ -31,14 +31,13 @@ use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest;
/**
* Class RuleTestRequest
* Class TestRequest
*/
class RuleTestRequest extends FormRequest
class TestRequest extends FormRequest
{
use ConvertsDataTypes, ChecksLogin;
/**
* @return array
*/
@@ -58,7 +57,7 @@ class RuleTestRequest extends FormRequest
*/
private function getPage(): int
{
return 0 === (int) $this->query('page') ? 1 : (int) $this->query('page');
return 0 === (int)$this->query('page') ? 1 : (int)$this->query('page');
}
@@ -73,11 +72,11 @@ class RuleTestRequest extends FormRequest
}
/**
* @return string
* @return array
*/
private function getAccounts(): string
private function getAccounts(): array
{
return (string) $this->query('accounts');
return $this->get('accounts');
}
/**

View File

@@ -22,7 +22,7 @@
declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests;
namespace FireflyIII\Api\V1\Requests\Models\Rule;
use Carbon\Carbon;
@@ -31,9 +31,9 @@ use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest;
/**
* Class RuleTriggerRequest
* Class TriggerRequest
*/
class RuleTriggerRequest extends FormRequest
class TriggerRequest extends FormRequest
{
use ConvertsDataTypes, ChecksLogin;
@@ -62,11 +62,11 @@ class RuleTriggerRequest extends FormRequest
}
/**
* @return string
* @return array
*/
private function getAccounts(): string
private function getAccounts(): array
{
return (string) $this->query('accounts');
return $this->get('accounts');
}
/**

View File

@@ -21,7 +21,7 @@
declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests;
namespace FireflyIII\Api\V1\Requests\Models\Rule;
use FireflyIII\Rules\IsBoolean;
use FireflyIII\Support\Request\ChecksLogin;
@@ -33,14 +33,12 @@ use function is_array;
/**
* Class RuleUpdateRequest
* Class UpdateRequest
*/
class RuleUpdateRequest extends FormRequest
class UpdateRequest extends FormRequest
{
use ConvertsDataTypes, GetRuleConfiguration, ChecksLogin;
/**
* Get all data from the request.
*