. */ declare(strict_types=1); namespace FireflyIII\Http\Requests; use Carbon\Carbon; use Carbon\Exceptions\InvalidDateException; use Exception; use FireflyIII\Support\Request\ConvertsDataTypes; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Validation\Validator; use Log; /** * Class Request. * * @codeCoverageIgnore * */ class Request extends FormRequest { use ConvertsDataTypes; /** * Return floating value. * * @param string $field * * @return float|null */ public function float(string $field): ?float { $res = $this->get($field); if (null === $res) { return null; } return (float) $res; } /** * Return date time or NULL. * * @param string $field * * @return Carbon|null */ protected function dateTime(string $field): ?Carbon { if (null === $this->get($field)) { return null; } $value = (string) $this->get($field); if (10 === strlen($value)) { // probably a date format. try { $result = Carbon::createFromFormat('Y-m-d', $value); } catch (InvalidDateException $e) { Log::error(sprintf('"%s" is not a valid date: %s', $value, $e->getMessage())); return null; } return $result; } // is an atom string, I hope? try { $result = Carbon::parse($value); } catch (InvalidDateException $e) { Log::error(sprintf('"%s" is not a valid date or time: %s', $value, $e->getMessage())); return null; } return $result; } }