. */ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests\Data; use FireflyIII\Exceptions\FireflyException; use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ConvertsDataTypes; use Illuminate\Foundation\Http\FormRequest; /** * Request class for end points that require date parameters. * * Class DateRequest */ class DateRequest extends FormRequest { use ChecksLogin; use ConvertsDataTypes; /** * Get all data from the request. */ public function getAll(): array { $start = $this->getCarbonDate('start'); $end = $this->getCarbonDate('end'); if ($start->diffInYears($end, true) > 5) { throw new FireflyException('Date range out of range.'); } return [ 'start' => $start, 'end' => $end, ]; } /** * The rules that the incoming request must be matched against. */ public function rules(): array { return [ 'start' => 'required|date', 'end' => 'required|date|after:start', ]; } }