mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2024-11-30 20:54:04 -06:00
144 lines
3.6 KiB
PHP
144 lines
3.6 KiB
PHP
<?php
|
|
/**
|
|
* Request.php
|
|
* Copyright (C) 2016 thegrumpydictator@gmail.com
|
|
*
|
|
* This software may be modified and distributed under the terms of the
|
|
* Creative Commons Attribution-ShareAlike 4.0 International License.
|
|
*
|
|
* See the LICENSE file for details.
|
|
*/
|
|
|
|
declare(strict_types = 1);
|
|
|
|
namespace FireflyIII\Http\Requests;
|
|
|
|
use Carbon\Carbon;
|
|
use Illuminate\Foundation\Http\FormRequest;
|
|
|
|
/**
|
|
* Class Request
|
|
*
|
|
* @package FireflyIII\Http\Requests
|
|
*/
|
|
class Request extends FormRequest
|
|
{
|
|
/**
|
|
* @param string $field
|
|
*
|
|
* @return bool
|
|
*/
|
|
protected function boolean(string $field): bool
|
|
{
|
|
return intval($this->input($field)) === 1;
|
|
}
|
|
|
|
/**
|
|
* @param string $field
|
|
*
|
|
* @return Carbon|null
|
|
*/
|
|
protected function date(string $field)
|
|
{
|
|
return $this->get($field) ? new Carbon($this->get($field)) : null;
|
|
}
|
|
|
|
/**
|
|
* @param string $field
|
|
*
|
|
* @return float
|
|
*/
|
|
protected function float(string $field): float
|
|
{
|
|
return round($this->input($field), 12);
|
|
}
|
|
|
|
/**
|
|
* @param string $field
|
|
* @param string $type
|
|
*
|
|
* @return array
|
|
*/
|
|
protected function getArray(string $field, string $type): array
|
|
{
|
|
$original = $this->get($field);
|
|
$return = [];
|
|
foreach ($original as $index => $value) {
|
|
$return[$index] = $this->$type($value);
|
|
}
|
|
|
|
return $return;
|
|
}
|
|
|
|
/**
|
|
* @param string $field
|
|
*
|
|
* @return int
|
|
*/
|
|
protected function integer(string $field): int
|
|
{
|
|
return intval($this->get($field));
|
|
}
|
|
|
|
/**
|
|
* @param string $field
|
|
*
|
|
* @return string
|
|
*/
|
|
protected 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);
|
|
}
|
|
}
|