. */ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests; use Carbon\Carbon; use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ConvertsDataTypes; use Illuminate\Foundation\Http\FormRequest; /** * Class RuleGroupTriggerRequest */ class RuleGroupTriggerRequest extends FormRequest { use ConvertsDataTypes, ChecksLogin; /** * @return array */ public function getTriggerParameters(): array { return [ 'start' => $this->getDate('start'), 'end' => $this->getDate('end'), 'accounts' => $this->getAccounts(), ]; } /** * @param string $field * * @return Carbon|null */ private function getDate(string $field): ?Carbon { return null === $this->query($field) ? null : Carbon::createFromFormat('Y-m-d', $this->query($field)); } /** * @return string */ private function getAccounts(): string { return (string) $this->query('accounts'); } /** * @return array */ public function rules(): array { return [ 'start' => 'date', 'end' => 'date|after:start', ]; } }