. */ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests; /** * Class CurrencyRequest */ class CurrencyRequest extends Request { /** * Authorize logged in users. * * @return bool */ public function authorize(): bool { // Only allow authenticated users return auth()->check(); } /** * Get all data from the request. * * @return array */ public function getAll(): array { return [ 'name' => $this->string('name'), 'code' => $this->string('code'), 'symbol' => $this->string('symbol'), 'decimal_places' => $this->integer('decimal_places'), 'default' => $this->boolean('default'), ]; } /** * The rules that the incoming request must be matched against. * * @return array */ public function rules(): array { $rules = [ 'name' => 'required|between:1,255|unique:transaction_currencies,name', 'code' => 'required|between:3,3|unique:transaction_currencies,code', 'symbol' => 'required|between:1,5|unique:transaction_currencies,symbol', 'decimal_places' => 'required|between:0,20|numeric|min:0|max:20', 'default' => 'boolean', ]; switch ($this->method()) { default: break; case 'PUT': case 'PATCH': $currency = $this->route()->parameter('currency'); $rules['name'] = 'required|between:1,255|unique:transaction_currencies,name,' . $currency->id; $rules['code'] = 'required|between:1,255|unique:transaction_currencies,code,' . $currency->id; $rules['symbol'] = 'required|between:1,255|unique:transaction_currencies,symbol,' . $currency->id; break; } return $rules; } }