Remove unused rule.

This commit is contained in:
James Cole 2020-10-31 06:47:29 +01:00
parent 09247cc30b
commit b9963ce0bf
No known key found for this signature in database
GPG Key ID: B5669F9493CDE38D
5 changed files with 38 additions and 63 deletions

View File

@ -23,7 +23,8 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Controllers; namespace FireflyIII\Api\V1\Controllers;
use FireflyIII\Api\V1\Requests\CategoryRequest; use FireflyIII\Api\V1\Requests\CategoryStoreRequest;
use FireflyIII\Api\V1\Requests\CategoryUpdateRequest;
use FireflyIII\Exceptions\FireflyException; use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Helpers\Collector\GroupCollectorInterface; use FireflyIII\Helpers\Collector\GroupCollectorInterface;
use FireflyIII\Models\Category; use FireflyIII\Models\Category;
@ -175,12 +176,12 @@ class CategoryController extends Controller
/** /**
* Store new category. * Store new category.
* *
* @param CategoryRequest $request * @param CategoryStoreRequest $request
* *
* @return JsonResponse * @return JsonResponse
* @throws FireflyException * @throws FireflyException
*/ */
public function store(CategoryRequest $request): JsonResponse public function store(CategoryStoreRequest $request): JsonResponse
{ {
$category = $this->repository->store($request->getAll()); $category = $this->repository->store($request->getAll());
$manager = $this->getManager(); $manager = $this->getManager();
@ -253,12 +254,12 @@ class CategoryController extends Controller
/** /**
* Update the category. * Update the category.
* *
* @param CategoryRequest $request * @param CategoryUpdateRequest $request
* @param Category $category * @param Category $category
* *
* @return JsonResponse * @return JsonResponse
*/ */
public function update(CategoryRequest $request, Category $category): JsonResponse public function update(CategoryUpdateRequest $request, Category $category): JsonResponse
{ {
$data = $request->getAll(); $data = $request->getAll();
$category = $this->repository->update($category, $data); $category = $this->repository->update($category, $data);

View File

@ -1,6 +1,6 @@
<?php <?php
/** /**
* CategoryRequest.php * CategoryStoreRequest.php
* Copyright (c) 2019 james@firefly-iii.org * Copyright (c) 2019 james@firefly-iii.org
* *
* This file is part of Firefly III (https://github.com/firefly-iii). * This file is part of Firefly III (https://github.com/firefly-iii).
@ -23,7 +23,8 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests; namespace FireflyIII\Api\V1\Requests;
use FireflyIII\Models\Category; use FireflyIII\Rules\ZeroOrMore;
use FireflyIII\Support\Request\ChecksLogin;
use FireflyIII\Support\Request\ConvertsDataTypes; use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
@ -31,22 +32,10 @@ use Illuminate\Foundation\Http\FormRequest;
* Class CategoryRequest * Class CategoryRequest
* *
* @codeCoverageIgnore * @codeCoverageIgnore
* TODO AFTER 4.8,0: split this into two request classes.
*/ */
class CategoryRequest extends FormRequest class CategoryStoreRequest extends FormRequest
{ {
use ConvertsDataTypes; use ConvertsDataTypes, ChecksLogin;
/**
* Authorize logged in users.
*
* @return bool
*/
public function authorize(): bool
{
// Only allow authenticated users
return auth()->check();
}
/** /**
* Get all data from the request. * Get all data from the request.
@ -67,20 +56,8 @@ class CategoryRequest extends FormRequest
*/ */
public function rules(): array public function rules(): array
{ {
$rules = [ return [
'name' => 'required|between:1,100|uniqueObjectForUser:categories,name', 'name' => 'required|between:1,100|uniqueObjectForUser:categories,name'
]; ];
switch ($this->method()) {
default:
break;
case 'PUT':
case 'PATCH':
/** @var Category $category */
$category = $this->route()->parameter('category');
$rules['name'] = sprintf('required|between:1,100|uniqueObjectForUser:categories,name,%d', $category->id);
break;
}
return $rules;
} }
} }

View File

@ -1,7 +1,6 @@
<?php <?php
/** /**
* ZeroOrMore.php * CategoryUpdateRequest.php
* Copyright (c) 2019 james@firefly-iii.org * Copyright (c) 2019 james@firefly-iii.org
* *
* This file is part of Firefly III (https://github.com/firefly-iii). * This file is part of Firefly III (https://github.com/firefly-iii).
@ -22,44 +21,44 @@
declare(strict_types=1); declare(strict_types=1);
namespace FireflyIII\Rules; namespace FireflyIII\Api\V1\Requests;
use Illuminate\Contracts\Validation\Rule; use FireflyIII\Support\Request\ChecksLogin;
use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest;
/** /**
* Class CategoryUpdateRequest
* *
* Class ZeroOrMore
* @codeCoverageIgnore * @codeCoverageIgnore
*/ */
class ZeroOrMore implements Rule class CategoryUpdateRequest extends FormRequest
{ {
use ConvertsDataTypes, ChecksLogin;
/** /**
* Get the validation error message. * Get all data from the request.
* *
* @return string * @return array
*/ */
public function message(): string public function getAll(): array
{ {
return trans('validation.zero_or_more'); return [
'name' => $this->string('name'),
];
} }
/** /**
* Determine if the validation rule passes. * The rules that the incoming request must be matched against.
* *
* @param string $attribute * @return array
* @param mixed $value
*
* @return bool
*/ */
public function passes($attribute, $value): bool public function rules(): array
{ {
$value = (string)$value; $category = $this->route()->parameter('category');
if ('' === $value) {
return true;
}
$res = bccomp('0', $value);
return $res <= 0; return [
'name' => sprintf('required|between:1,100|uniqueObjectForUser:categories,name,%d', $category->id),
];
} }
} }

View File

@ -26,7 +26,6 @@ namespace FireflyIII\Api\V1\Requests;
use FireflyIII\Models\PiggyBank; use FireflyIII\Models\PiggyBank;
use FireflyIII\Rules\IsAssetAccountId; use FireflyIII\Rules\IsAssetAccountId;
use FireflyIII\Rules\LessThanPiggyTarget; use FireflyIII\Rules\LessThanPiggyTarget;
use FireflyIII\Rules\ZeroOrMore;
use FireflyIII\Support\Request\ConvertsDataTypes; use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
@ -79,7 +78,7 @@ class PiggyBankRequest extends FormRequest
{ {
$rules = [ $rules = [
'name' => 'required|between:1,255|uniquePiggyBankForUser', 'name' => 'required|between:1,255|uniquePiggyBankForUser',
'current_amount' => ['numeric', new ZeroOrMore, 'lte:target_amount'], 'current_amount' => ['numeric', 'gte:0', 'lte:target_amount'],
'start_date' => 'date|nullable', 'start_date' => 'date|nullable',
'target_date' => 'date|nullable|after:start_date', 'target_date' => 'date|nullable|after:start_date',
'notes' => 'max:65000', 'notes' => 'max:65000',
@ -95,7 +94,7 @@ class PiggyBankRequest extends FormRequest
$rules['name'] = 'between:1,255|uniquePiggyBankForUser:' . $piggyBank->id; $rules['name'] = 'between:1,255|uniquePiggyBankForUser:' . $piggyBank->id;
$rules['account_id'] = ['belongsToUser:accounts', new IsAssetAccountId]; $rules['account_id'] = ['belongsToUser:accounts', new IsAssetAccountId];
$rules['target_amount'] = 'numeric|gt:0'; $rules['target_amount'] = 'numeric|gt:0';
$rules['current_amount'] = ['numeric', new ZeroOrMore, new LessThanPiggyTarget]; $rules['current_amount'] = ['numeric', 'gte:0', new LessThanPiggyTarget];
break; break;
} }

View File

@ -23,7 +23,6 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests; namespace FireflyIII\Api\V1\Requests;
use FireflyIII\Rules\ZeroOrMore;
use FireflyIII\Support\Request\ConvertsDataTypes; use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
@ -76,10 +75,10 @@ class PiggyBankStoreRequest extends FormRequest
{ {
return [ return [
'name' => 'required|between:1,255|uniquePiggyBankForUser', 'name' => 'required|between:1,255|uniquePiggyBankForUser',
'current_amount' => ['numeric', new ZeroOrMore, 'lte:target_amount'], 'current_amount' => ['numeric', 'gte:0', 'lte:target_amount'],
'account_id' => 'required|numeric|belongsToUser:accounts,id', 'account_id' => 'required|numeric|belongsToUser:accounts,id',
'object_group_id' => 'numeric|belongsToUser:object_groups,id', 'object_group_id' => 'numeric|belongsToUser:object_groups,id',
'target_amount' => ['numeric', new ZeroOrMore, 'lte:target_amount', 'required'], 'target_amount' => ['numeric', 'gte:0', 'lte:target_amount', 'required'],
'start_date' => 'date|nullable', 'start_date' => 'date|nullable',
'target_date' => 'date|nullable|after:start_date', 'target_date' => 'date|nullable|after:start_date',
'notes' => 'max:65000', 'notes' => 'max:65000',