. */ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests; use Illuminate\Validation\Validator; class DateRequest extends ApiRequest { public function rules(): array { return [ 'date' => 'date|after:1970-01-02|before:2038-01-17|'.$this->required, ]; } public function withValidator(Validator $validator): void { $validator->after( function (Validator $validator): void { if (!$validator->valid()) { return; } $date = $this->getCarbonDate('date')?->endOfDay(); // if we also have a range, date must be in that range $start = $this->attributes->get('start'); $end = $this->attributes->get('end'); if ($date && $start && $end && !$date->between($start, $end)) { $validator->errors()->add('date', (string)trans('validation.between_date')); } $this->attributes->set('date', $date); } ); } }