. */ declare(strict_types=1); namespace FireflyIII\Http\Requests; use FireflyIII\Models\TransactionCurrency; use FireflyIII\Support\Request\ConvertsDataTypes; use Illuminate\Foundation\Http\FormRequest; /** * Class CurrencyFormRequest. */ class CurrencyFormRequest extends FormRequest { use ConvertsDataTypes; /** * Verify the request. * * @return bool */ public function authorize(): bool { // Only allow logged in users return auth()->check(); } /** * Returns the data required by the controller. * * @return array */ public function getCurrencyData(): array { return [ 'name' => $this->string('name'), 'code' => $this->string('code'), 'symbol' => $this->string('symbol'), 'decimal_places' => $this->integer('decimal_places'), 'enabled' => $this->boolean('enabled'), ]; } /** * Rules for this request. * * @return array */ public function rules(): array { // fixed $rules = [ 'name' => 'required|max:48|min:1|unique:transaction_currencies,name', 'code' => 'required|min:3|max:3|unique:transaction_currencies,code', 'symbol' => 'required|min:1|max:8|unique:transaction_currencies,symbol', 'decimal_places' => 'required|min:0|max:12|numeric', 'enabled' => 'in:0,1', ]; /** @var TransactionCurrency $currency */ $currency = $this->route()->parameter('currency'); if (null !== $currency) { $rules = [ 'name' => 'required|max:48|min:1', 'code' => 'required|min:3|max:3', 'symbol' => 'required|min:1|max:8', 'decimal_places' => 'required|min:0|max:12|numeric', 'enabled' => 'in:0,1', ]; } return $rules; } }