. */ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests\Models\RuleGroup; 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 ConvertsDataTypes; use 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 { $value = $this->query($field); if (is_array($value)) { return null; } $value = (string)$value; $result = null === $this->query($field) ? null : Carbon::createFromFormat('Y-m-d', substr($value, 0, 10)); if (false === $result) { return null; } return $result; } /** * @return array */ private function getAccounts(): array { return $this->get('accounts'); } /** * @return array */ public function rules(): array { return [ 'start' => 'date', 'end' => 'date|after_or_equal:start', ]; } }