. */ declare(strict_types=1); namespace FireflyIII\Http\Requests; use Carbon\Carbon; use Illuminate\Foundation\Http\FormRequest; /** * Class Request. */ class Request extends FormRequest { /** * @param string $field * * @return bool */ public function boolean(string $field): bool { if ((string)$this->input($field) === 'true') { return true; } if ((string)$this->input($field) === 'false') { return false; } return 1 === (int)$this->input($field); } /** * @param string $field * * @return float */ public function float(string $field): float { return (float)$this->get($field); } /** * @param string $field * * @return int */ public function integer(string $field): int { return (int)$this->get($field); } /** * @param string $field * * @return string */ public function string(string $field): string { $string = $this->get($field) ?? ''; $search = [ "\u{0001}", // start of heading "\u{0002}", // start of text "\u{0003}", // end of text "\u{0004}", // end of transmission "\u{0005}", // enquiry "\u{0006}", // ACK "\u{0007}", // BEL "\u{0008}", // backspace "\u{000E}", // shift out "\u{000F}", // shift in "\u{0010}", // data link escape "\u{0011}", // DC1 "\u{0012}", // DC2 "\u{0013}", // DC3 "\u{0014}", // DC4 "\u{0015}", // NAK "\u{0016}", // SYN "\u{0017}", // ETB "\u{0018}", // CAN "\u{0019}", // EM "\u{001A}", // SUB "\u{001B}", // escape "\u{001C}", // file separator "\u{001D}", // group separator "\u{001E}", // record separator "\u{001F}", // unit separator "\u{007F}", // DEL "\u{00A0}", // non-breaking space "\u{1680}", // ogham space mark "\u{180E}", // mongolian vowel separator "\u{2000}", // en quad "\u{2001}", // em quad "\u{2002}", // en space "\u{2003}", // em space "\u{2004}", // three-per-em space "\u{2005}", // four-per-em space "\u{2006}", // six-per-em space "\u{2007}", // figure space "\u{2008}", // punctuation space "\u{2009}", // thin space "\u{200A}", // hair space "\u{200B}", // zero width space "\u{202F}", // narrow no-break space "\u{3000}", // ideographic space "\u{FEFF}", // zero width no -break space ]; $replace = "\x20"; // plain old normal space $string = str_replace($search, $replace, $string); return trim($string); } /** * @param string $field * * @return Carbon|null */ protected function date(string $field) { return $this->get($field) ? new Carbon($this->get($field)) : null; } }