. */ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests\Models\Rule; use Carbon\Carbon; use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ConvertsDataTypes; use Illuminate\Foundation\Http\FormRequest; /** * Class TriggerRequest */ class TriggerRequest extends FormRequest { use ChecksLogin; use ConvertsDataTypes; public function getTriggerParameters(): array { return [ 'start' => $this->getDate('start'), 'end' => $this->getDate('end'), 'accounts' => $this->getAccounts(), ]; } private function getDate(string $field): ?Carbon { $value = $this->query($field); if (is_array($value)) { return null; } $value = (string) $value; return null === $this->query($field) ? null : Carbon::createFromFormat('Y-m-d', substr($value, 0, 10)); } private function getAccounts(): array { return $this->get('accounts') ?? []; } public function rules(): array { return [ 'start' => 'date|after:1900-01-01|before:2099-12-31', 'end' => 'date|after_or_equal:start|after:1900-01-01|before:2099-12-31', 'accounts' => '', 'accounts.*' => 'exists:accounts,id|belongsToUser:accounts', ]; } }