mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-12-22 11:11:25 +00:00
Refactor request classes.
This commit is contained in:
@@ -24,7 +24,8 @@ declare(strict_types=1);
|
|||||||
namespace FireflyIII\Api\V1\Controllers;
|
namespace FireflyIII\Api\V1\Controllers;
|
||||||
|
|
||||||
|
|
||||||
use FireflyIII\Api\V1\Requests\BudgetLimitRequest;
|
use FireflyIII\Api\V1\Requests\BudgetLimitStoreRequest;
|
||||||
|
use FireflyIII\Api\V1\Requests\BudgetLimitUpdateRequest;
|
||||||
use FireflyIII\Exceptions\FireflyException;
|
use FireflyIII\Exceptions\FireflyException;
|
||||||
use FireflyIII\Helpers\Collector\GroupCollectorInterface;
|
use FireflyIII\Helpers\Collector\GroupCollectorInterface;
|
||||||
use FireflyIII\Models\BudgetLimit;
|
use FireflyIII\Models\BudgetLimit;
|
||||||
@@ -156,13 +157,13 @@ class BudgetLimitController extends Controller
|
|||||||
/**
|
/**
|
||||||
* Store a newly created resource in storage.
|
* Store a newly created resource in storage.
|
||||||
*
|
*
|
||||||
* @param BudgetLimitRequest $request
|
* @param BudgetLimitStoreRequest $request
|
||||||
*
|
*
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
* @throws FireflyException
|
* @throws FireflyException
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public function store(BudgetLimitRequest $request): JsonResponse
|
public function store(BudgetLimitStoreRequest $request): JsonResponse
|
||||||
{
|
{
|
||||||
$data = $request->getAll();
|
$data = $request->getAll();
|
||||||
$data['start_date'] = $data['start'];
|
$data['start_date'] = $data['start'];
|
||||||
@@ -237,12 +238,12 @@ class BudgetLimitController extends Controller
|
|||||||
/**
|
/**
|
||||||
* Update the specified resource in storage.
|
* Update the specified resource in storage.
|
||||||
*
|
*
|
||||||
* @param BudgetLimitRequest $request
|
* @param BudgetLimitUpdateRequest $request
|
||||||
* @param BudgetLimit $budgetLimit
|
* @param BudgetLimit $budgetLimit
|
||||||
*
|
*
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
*/
|
*/
|
||||||
public function update(BudgetLimitRequest $request, BudgetLimit $budgetLimit): JsonResponse
|
public function update(BudgetLimitUpdateRequest $request, BudgetLimit $budgetLimit): JsonResponse
|
||||||
{
|
{
|
||||||
$data = $request->getAll();
|
$data = $request->getAll();
|
||||||
$budgetLimit = $this->blRepository->update($budgetLimit, $data);
|
$budgetLimit = $this->blRepository->update($budgetLimit, $data);
|
||||||
|
|||||||
@@ -23,7 +23,8 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Api\V1\Controllers;
|
namespace FireflyIII\Api\V1\Controllers;
|
||||||
|
|
||||||
use FireflyIII\Api\V1\Requests\CurrencyRequest;
|
use FireflyIII\Api\V1\Requests\CurrencyUpdateRequest;
|
||||||
|
use FireflyIII\Api\V1\Requests\CurrencyStoreRequest;
|
||||||
use FireflyIII\Exceptions\FireflyException;
|
use FireflyIII\Exceptions\FireflyException;
|
||||||
use FireflyIII\Helpers\Collector\GroupCollectorInterface;
|
use FireflyIII\Helpers\Collector\GroupCollectorInterface;
|
||||||
use FireflyIII\Models\Account;
|
use FireflyIII\Models\Account;
|
||||||
@@ -580,12 +581,12 @@ class CurrencyController extends Controller
|
|||||||
/**
|
/**
|
||||||
* Store new currency.
|
* Store new currency.
|
||||||
*
|
*
|
||||||
* @param CurrencyRequest $request
|
* @param CurrencyStoreRequest $request
|
||||||
*
|
*
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
* @throws FireflyException
|
* @throws FireflyException
|
||||||
*/
|
*/
|
||||||
public function store(CurrencyRequest $request): JsonResponse
|
public function store(CurrencyStoreRequest $request): JsonResponse
|
||||||
{
|
{
|
||||||
$currency = $this->repository->store($request->getAll());
|
$currency = $this->repository->store($request->getAll());
|
||||||
if (true === $request->boolean('default')) {
|
if (true === $request->boolean('default')) {
|
||||||
@@ -664,12 +665,12 @@ class CurrencyController extends Controller
|
|||||||
/**
|
/**
|
||||||
* Update a currency.
|
* Update a currency.
|
||||||
*
|
*
|
||||||
* @param CurrencyRequest $request
|
* @param CurrencyUpdateRequest $request
|
||||||
* @param TransactionCurrency $currency
|
* @param TransactionCurrency $currency
|
||||||
*
|
*
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
*/
|
*/
|
||||||
public function update(CurrencyRequest $request, TransactionCurrency $currency): JsonResponse
|
public function update(CurrencyUpdateRequest $request, TransactionCurrency $currency): JsonResponse
|
||||||
{
|
{
|
||||||
$data = $request->getAll();
|
$data = $request->getAll();
|
||||||
$currency = $this->repository->update($currency, $data);
|
$currency = $this->repository->update($currency, $data);
|
||||||
|
|||||||
@@ -23,7 +23,8 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Api\V1\Controllers;
|
namespace FireflyIII\Api\V1\Controllers;
|
||||||
|
|
||||||
use FireflyIII\Api\V1\Requests\LinkTypeRequest;
|
use FireflyIII\Api\V1\Requests\LinkTypeStoreRequest;
|
||||||
|
use FireflyIII\Api\V1\Requests\LinkTypeUpdateRequest;
|
||||||
use FireflyIII\Exceptions\FireflyException;
|
use FireflyIII\Exceptions\FireflyException;
|
||||||
use FireflyIII\Helpers\Collector\GroupCollectorInterface;
|
use FireflyIII\Helpers\Collector\GroupCollectorInterface;
|
||||||
use FireflyIII\Models\LinkType;
|
use FireflyIII\Models\LinkType;
|
||||||
@@ -150,12 +151,12 @@ class LinkTypeController extends Controller
|
|||||||
/**
|
/**
|
||||||
* Store new object.
|
* Store new object.
|
||||||
*
|
*
|
||||||
* @param LinkTypeRequest $request
|
* @param LinkTypeStoreRequest $request
|
||||||
*
|
*
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
* @throws FireflyException
|
* @throws FireflyException
|
||||||
*/
|
*/
|
||||||
public function store(LinkTypeRequest $request): JsonResponse
|
public function store(LinkTypeStoreRequest $request): JsonResponse
|
||||||
{
|
{
|
||||||
/** @var User $admin */
|
/** @var User $admin */
|
||||||
$admin = auth()->user();
|
$admin = auth()->user();
|
||||||
@@ -239,13 +240,13 @@ class LinkTypeController extends Controller
|
|||||||
/**
|
/**
|
||||||
* Update object.
|
* Update object.
|
||||||
*
|
*
|
||||||
* @param LinkTypeRequest $request
|
* @param LinkTypeUpdateRequest $request
|
||||||
* @param LinkType $linkType
|
* @param LinkType $linkType
|
||||||
*
|
*
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
* @throws FireflyException
|
* @throws FireflyException
|
||||||
*/
|
*/
|
||||||
public function update(LinkTypeRequest $request, LinkType $linkType): JsonResponse
|
public function update(LinkTypeUpdateRequest $request, LinkType $linkType): JsonResponse
|
||||||
{
|
{
|
||||||
if (false === $linkType->editable) {
|
if (false === $linkType->editable) {
|
||||||
throw new FireflyException('200020: Link type cannot be changed.');
|
throw new FireflyException('200020: Link type cannot be changed.');
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Api\V1\Controllers;
|
namespace FireflyIII\Api\V1\Controllers;
|
||||||
|
|
||||||
use FireflyIII\Api\V1\Requests\PiggyBankRequest;
|
use FireflyIII\Api\V1\Requests\PiggyBankUpdateRequest;
|
||||||
use FireflyIII\Api\V1\Requests\PiggyBankStoreRequest;
|
use FireflyIII\Api\V1\Requests\PiggyBankStoreRequest;
|
||||||
use FireflyIII\Exceptions\FireflyException;
|
use FireflyIII\Exceptions\FireflyException;
|
||||||
use FireflyIII\Models\PiggyBank;
|
use FireflyIII\Models\PiggyBank;
|
||||||
@@ -224,12 +224,12 @@ class PiggyBankController extends Controller
|
|||||||
/**
|
/**
|
||||||
* Update piggy bank.
|
* Update piggy bank.
|
||||||
*
|
*
|
||||||
* @param PiggyBankRequest $request
|
* @param PiggyBankUpdateRequest $request
|
||||||
* @param PiggyBank $piggyBank
|
* @param PiggyBank $piggyBank
|
||||||
*
|
*
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
*/
|
*/
|
||||||
public function update(PiggyBankRequest $request, PiggyBank $piggyBank): JsonResponse
|
public function update(PiggyBankUpdateRequest $request, PiggyBank $piggyBank): JsonResponse
|
||||||
{
|
{
|
||||||
$data = $request->getAll();
|
$data = $request->getAll();
|
||||||
$piggyBank = $this->repository->update($piggyBank, $data);
|
$piggyBank = $this->repository->update($piggyBank, $data);
|
||||||
|
|||||||
@@ -24,7 +24,8 @@ declare(strict_types=1);
|
|||||||
namespace FireflyIII\Api\V1\Controllers;
|
namespace FireflyIII\Api\V1\Controllers;
|
||||||
|
|
||||||
use Exception;
|
use Exception;
|
||||||
use FireflyIII\Api\V1\Requests\RuleGroupRequest;
|
use FireflyIII\Api\V1\Requests\RuleGroupUpdateRequest;
|
||||||
|
use FireflyIII\Api\V1\Requests\RuleGroupStoreRequest;
|
||||||
use FireflyIII\Api\V1\Requests\RuleGroupTestRequest;
|
use FireflyIII\Api\V1\Requests\RuleGroupTestRequest;
|
||||||
use FireflyIII\Api\V1\Requests\RuleGroupTriggerRequest;
|
use FireflyIII\Api\V1\Requests\RuleGroupTriggerRequest;
|
||||||
use FireflyIII\Exceptions\FireflyException;
|
use FireflyIII\Exceptions\FireflyException;
|
||||||
@@ -221,11 +222,11 @@ class RuleGroupController extends Controller
|
|||||||
/**
|
/**
|
||||||
* Store new object.
|
* Store new object.
|
||||||
*
|
*
|
||||||
* @param RuleGroupRequest $request
|
* @param RuleGroupStoreRequest $request
|
||||||
*
|
*
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
*/
|
*/
|
||||||
public function store(RuleGroupRequest $request): JsonResponse
|
public function store(RuleGroupStoreRequest $request): JsonResponse
|
||||||
{
|
{
|
||||||
$ruleGroup = $this->ruleGroupRepository->store($request->getAll());
|
$ruleGroup = $this->ruleGroupRepository->store($request->getAll());
|
||||||
$manager = $this->getManager();
|
$manager = $this->getManager();
|
||||||
@@ -341,12 +342,12 @@ class RuleGroupController extends Controller
|
|||||||
/**
|
/**
|
||||||
* Update a rule group.
|
* Update a rule group.
|
||||||
*
|
*
|
||||||
* @param RuleGroupRequest $request
|
* @param RuleGroupUpdateRequest $request
|
||||||
* @param RuleGroup $ruleGroup
|
* @param RuleGroup $ruleGroup
|
||||||
*
|
*
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
*/
|
*/
|
||||||
public function update(RuleGroupRequest $request, RuleGroup $ruleGroup): JsonResponse
|
public function update(RuleGroupUpdateRequest $request, RuleGroup $ruleGroup): JsonResponse
|
||||||
{
|
{
|
||||||
$ruleGroup = $this->ruleGroupRepository->update($ruleGroup, $request->getAll());
|
$ruleGroup = $this->ruleGroupRepository->update($ruleGroup, $request->getAll());
|
||||||
$manager = $this->getManager();
|
$manager = $this->getManager();
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ use FireflyIII\Models\TransactionJournal;
|
|||||||
use FireflyIII\Repositories\Journal\JournalAPIRepositoryInterface;
|
use FireflyIII\Repositories\Journal\JournalAPIRepositoryInterface;
|
||||||
use FireflyIII\Repositories\Journal\JournalRepositoryInterface;
|
use FireflyIII\Repositories\Journal\JournalRepositoryInterface;
|
||||||
use FireflyIII\Repositories\TransactionGroup\TransactionGroupRepositoryInterface;
|
use FireflyIII\Repositories\TransactionGroup\TransactionGroupRepositoryInterface;
|
||||||
|
use FireflyIII\Rules\IsDuplicateTransaction;
|
||||||
use FireflyIII\Support\Http\Api\TransactionFilter;
|
use FireflyIII\Support\Http\Api\TransactionFilter;
|
||||||
use FireflyIII\Transformers\AttachmentTransformer;
|
use FireflyIII\Transformers\AttachmentTransformer;
|
||||||
use FireflyIII\Transformers\PiggyBankEventTransformer;
|
use FireflyIII\Transformers\PiggyBankEventTransformer;
|
||||||
@@ -45,11 +46,13 @@ use FireflyIII\User;
|
|||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
|
use Illuminate\Validation\ValidationException;
|
||||||
use League\Fractal\Pagination\IlluminatePaginatorAdapter;
|
use League\Fractal\Pagination\IlluminatePaginatorAdapter;
|
||||||
use League\Fractal\Resource\Collection as FractalCollection;
|
use League\Fractal\Resource\Collection as FractalCollection;
|
||||||
use League\Fractal\Resource\Item;
|
use League\Fractal\Resource\Item;
|
||||||
use Log;
|
use Log;
|
||||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||||
|
use Validator;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class TransactionController
|
* Class TransactionController
|
||||||
@@ -289,7 +292,7 @@ class TransactionController extends Controller
|
|||||||
* @param TransactionStoreRequest $request
|
* @param TransactionStoreRequest $request
|
||||||
*
|
*
|
||||||
* @return JsonResponse
|
* @return JsonResponse
|
||||||
* @throws FireflyException
|
* @throws FireflyException|ValidationException
|
||||||
*/
|
*/
|
||||||
public function store(TransactionStoreRequest $request): JsonResponse
|
public function store(TransactionStoreRequest $request): JsonResponse
|
||||||
{
|
{
|
||||||
@@ -304,29 +307,16 @@ class TransactionController extends Controller
|
|||||||
$transactionGroup = $this->groupRepository->store($data);
|
$transactionGroup = $this->groupRepository->store($data);
|
||||||
} catch (DuplicateTransactionException $e) {
|
} catch (DuplicateTransactionException $e) {
|
||||||
Log::warning('Caught a duplicate transaction. Return error message.');
|
Log::warning('Caught a duplicate transaction. Return error message.');
|
||||||
// return bad validation message.
|
$validator = Validator::make(
|
||||||
// TODO use Laravel's internal validation thing to do this.
|
['transactions' => [['description' => $e->getMessage()]]], ['transactions.0.description' => new IsDuplicateTransaction]
|
||||||
$response = [
|
);
|
||||||
'message' => 'The given data was invalid.',
|
throw new ValidationException($validator);
|
||||||
'errors' => [
|
|
||||||
'transactions.0.description' => [$e->getMessage()],
|
|
||||||
],
|
|
||||||
];
|
|
||||||
|
|
||||||
return response()->json($response, 422);
|
|
||||||
} catch (FireflyException $e) {
|
} catch (FireflyException $e) {
|
||||||
Log::warning('Caught an exception. Return error message.');
|
Log::warning('Caught an exception. Return error message.');
|
||||||
Log::error($e->getMessage());
|
Log::error($e->getMessage());
|
||||||
// return bad validation message.
|
$message = sprintf('Internal exception: %s', $e->getMessage());
|
||||||
// TODO use Laravel's internal validation thing to do this.
|
$validator = Validator::make(['transactions' => [['description' => $message]]], ['transactions.0.description' => new IsDuplicateTransaction]);
|
||||||
$response = [
|
throw new ValidationException($validator);
|
||||||
'message' => 'The given data was invalid.',
|
|
||||||
'errors' => [
|
|
||||||
'transactions.0.description' => [sprintf('Internal exception: %s', $e->getMessage())],
|
|
||||||
],
|
|
||||||
];
|
|
||||||
|
|
||||||
return response()->json($response, 422);
|
|
||||||
}
|
}
|
||||||
app('preferences')->mark();
|
app('preferences')->mark();
|
||||||
event(new StoredTransactionGroup($transactionGroup, $data['apply_rules'] ?? true));
|
event(new StoredTransactionGroup($transactionGroup, $data['apply_rules'] ?? true));
|
||||||
|
|||||||
73
app/Api/V1/Requests/BudgetLimitStoreRequest.php
Normal file
73
app/Api/V1/Requests/BudgetLimitStoreRequest.php
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* BudgetLimitStoreRequest.php
|
||||||
|
* Copyright (c) 2019 james@firefly-iii.org
|
||||||
|
*
|
||||||
|
* This file is part of Firefly III (https://github.com/firefly-iii).
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License as
|
||||||
|
* published by the Free Software Foundation, either version 3 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Affero General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace FireflyIII\Api\V1\Requests;
|
||||||
|
|
||||||
|
use FireflyIII\Support\Request\ChecksLogin;
|
||||||
|
use FireflyIII\Support\Request\ConvertsDataTypes;
|
||||||
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class BudgetLimitStoreRequest
|
||||||
|
*
|
||||||
|
* @codeCoverageIgnore
|
||||||
|
*/
|
||||||
|
class BudgetLimitStoreRequest extends FormRequest
|
||||||
|
{
|
||||||
|
use ConvertsDataTypes, ChecksLogin;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get all data from the request.
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getAll(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'budget_id' => $this->integer('budget_id'),
|
||||||
|
'start' => $this->date('start'),
|
||||||
|
'end' => $this->date('end'),
|
||||||
|
'amount' => $this->string('amount'),
|
||||||
|
'currency_id' => $this->integer('currency_id'),
|
||||||
|
'currency_code' => $this->string('currency_code'),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The rules that the incoming request must be matched against.
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function rules(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'budget_id' => 'required|exists:budgets,id|belongsToUser:budgets,id',
|
||||||
|
'start' => 'required|before:end|date',
|
||||||
|
'end' => 'required|after:start|date',
|
||||||
|
'amount' => 'required|gt:0',
|
||||||
|
'currency_id' => 'numeric|exists:transaction_currencies,id',
|
||||||
|
'currency_code' => 'min:3|max:3|exists:transaction_currencies,code',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* BudgetLimitRequest.php
|
* BudgetLimitUpdateRequest.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,29 +23,18 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Api\V1\Requests;
|
namespace FireflyIII\Api\V1\Requests;
|
||||||
|
|
||||||
|
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;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class BudgetLimitRequest
|
* Class BudgetLimitUpdateRequest
|
||||||
*
|
*
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
* TODO AFTER 4.8,0: split this into two request classes.
|
|
||||||
*/
|
*/
|
||||||
class BudgetLimitRequest extends FormRequest
|
class BudgetLimitUpdateRequest 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.
|
||||||
@@ -85,21 +74,12 @@ class BudgetLimitRequest extends FormRequest
|
|||||||
'currency_id' => 'numeric|exists:transaction_currencies,id',
|
'currency_id' => 'numeric|exists:transaction_currencies,id',
|
||||||
'currency_code' => 'min:3|max:3|exists:transaction_currencies,code',
|
'currency_code' => 'min:3|max:3|exists:transaction_currencies,code',
|
||||||
];
|
];
|
||||||
switch ($this->method()) {
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
case 'PUT':
|
|
||||||
case 'PATCH':
|
|
||||||
$rules['budget_id'] = 'required|exists:budgets,id|belongsToUser:budgets,id';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
// if request has a budget already, drop the rule.
|
// if request has a budget already, drop the rule.
|
||||||
$budget = $this->route()->parameter('budget');
|
$budget = $this->route()->parameter('budget');
|
||||||
if (null !== $budget) {
|
if (null !== $budget) {
|
||||||
unset($rules['budget_id']);
|
unset($rules['budget_id']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return $rules;
|
return $rules;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* CurrencyRequest.php
|
* CurrencyStoreRequest.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).
|
||||||
@@ -24,30 +24,19 @@ declare(strict_types=1);
|
|||||||
namespace FireflyIII\Api\V1\Requests;
|
namespace FireflyIII\Api\V1\Requests;
|
||||||
|
|
||||||
use FireflyIII\Rules\IsBoolean;
|
use FireflyIII\Rules\IsBoolean;
|
||||||
|
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;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class CurrencyRequest
|
* Class CurrencyStoreRequest
|
||||||
*
|
*
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
* TODO AFTER 4.8,0: split this into two request classes.
|
|
||||||
*/
|
*/
|
||||||
class CurrencyRequest extends FormRequest
|
class CurrencyStoreRequest 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.
|
||||||
@@ -82,7 +71,7 @@ class CurrencyRequest extends FormRequest
|
|||||||
*/
|
*/
|
||||||
public function rules(): array
|
public function rules(): array
|
||||||
{
|
{
|
||||||
$rules = [
|
return [
|
||||||
'name' => 'required|between:1,255|unique:transaction_currencies,name',
|
'name' => 'required|between:1,255|unique:transaction_currencies,name',
|
||||||
'code' => 'required|between:3,3|unique:transaction_currencies,code',
|
'code' => 'required|between:3,3|unique:transaction_currencies,code',
|
||||||
'symbol' => 'required|between:1,8|unique:transaction_currencies,symbol',
|
'symbol' => 'required|between:1,8|unique:transaction_currencies,symbol',
|
||||||
@@ -91,20 +80,5 @@ class CurrencyRequest extends FormRequest
|
|||||||
'default' => [new IsBoolean()],
|
'default' => [new IsBoolean()],
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
switch ($this->method()) {
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
case 'PUT':
|
|
||||||
case 'PATCH':
|
|
||||||
$currency = $this->route()->parameter('currency_code');
|
|
||||||
$rules['name'] = 'required|between:1,255|unique:transaction_currencies,name,' . $currency->id;
|
|
||||||
$rules['code'] = 'required|between:3,3|unique:transaction_currencies,code,' . $currency->id;
|
|
||||||
$rules['symbol'] = 'required|between:1,8|unique:transaction_currencies,symbol,' . $currency->id;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $rules;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
84
app/Api/V1/Requests/CurrencyUpdateRequest.php
Normal file
84
app/Api/V1/Requests/CurrencyUpdateRequest.php
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* CurrencyUpdateRequest.php
|
||||||
|
* Copyright (c) 2019 james@firefly-iii.org
|
||||||
|
*
|
||||||
|
* This file is part of Firefly III (https://github.com/firefly-iii).
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License as
|
||||||
|
* published by the Free Software Foundation, either version 3 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Affero General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace FireflyIII\Api\V1\Requests;
|
||||||
|
|
||||||
|
use FireflyIII\Rules\IsBoolean;
|
||||||
|
use FireflyIII\Support\Request\ChecksLogin;
|
||||||
|
use FireflyIII\Support\Request\ConvertsDataTypes;
|
||||||
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class CurrencyUpdateRequest
|
||||||
|
*
|
||||||
|
* @codeCoverageIgnore
|
||||||
|
*/
|
||||||
|
class CurrencyUpdateRequest extends FormRequest
|
||||||
|
{
|
||||||
|
use ConvertsDataTypes, ChecksLogin;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get all data from the request.
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getAll(): array
|
||||||
|
{
|
||||||
|
$enabled = true;
|
||||||
|
$default = false;
|
||||||
|
if (null !== $this->get('enabled')) {
|
||||||
|
$enabled = $this->boolean('enabled');
|
||||||
|
}
|
||||||
|
if (null !== $this->get('default')) {
|
||||||
|
$default = $this->boolean('default');
|
||||||
|
}
|
||||||
|
|
||||||
|
return [
|
||||||
|
'name' => $this->string('name'),
|
||||||
|
'code' => $this->string('code'),
|
||||||
|
'symbol' => $this->string('symbol'),
|
||||||
|
'decimal_places' => $this->integer('decimal_places'),
|
||||||
|
'default' => $default,
|
||||||
|
'enabled' => $enabled,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The rules that the incoming request must be matched against.
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function rules(): array
|
||||||
|
{
|
||||||
|
$currency = $this->route()->parameter('currency_code');
|
||||||
|
return [
|
||||||
|
'name' => sprintf('required|between:1,255|unique:transaction_currencies,name,%d', $currency->id),
|
||||||
|
'code' => sprintf('required|between:3,3|unique:transaction_currencies,code,%d', $currency->id),
|
||||||
|
'symbol' => sprintf('required|between:1,8|unique:transaction_currencies,symbol,%d', $currency->id),
|
||||||
|
'decimal_places' => 'between:0,20|numeric|min:0|max:20',
|
||||||
|
'enabled' => [new IsBoolean()],
|
||||||
|
'default' => [new IsBoolean()],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* LinkTypeRequest.php
|
* LinkTypeStoreRequest.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).
|
||||||
@@ -24,30 +24,19 @@ declare(strict_types=1);
|
|||||||
namespace FireflyIII\Api\V1\Requests;
|
namespace FireflyIII\Api\V1\Requests;
|
||||||
|
|
||||||
use FireflyIII\Models\LinkType;
|
use FireflyIII\Models\LinkType;
|
||||||
|
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;
|
||||||
use Illuminate\Validation\Rule;
|
use Illuminate\Validation\Rule;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class LinkTypeRequest
|
* Class LinkTypeStoreRequest
|
||||||
*
|
*
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
* TODO AFTER 4.8,0: split this into two request classes.
|
|
||||||
*/
|
*/
|
||||||
class LinkTypeRequest extends FormRequest
|
class LinkTypeStoreRequest 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.
|
||||||
@@ -72,26 +61,10 @@ class LinkTypeRequest extends FormRequest
|
|||||||
*/
|
*/
|
||||||
public function rules(): array
|
public function rules(): array
|
||||||
{
|
{
|
||||||
$rules = [
|
return [
|
||||||
'name' => 'required|unique:link_types,name|min:1',
|
'name' => 'required|unique:link_types,name|min:1',
|
||||||
'outward' => 'required|unique:link_types,outward|min:1|different:inward',
|
'outward' => 'required|unique:link_types,outward|min:1|different:inward',
|
||||||
'inward' => 'required|unique:link_types,inward|min:1|different:outward',
|
'inward' => 'required|unique:link_types,inward|min:1|different:outward',
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
switch ($this->method()) {
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
case 'PUT':
|
|
||||||
case 'PATCH':
|
|
||||||
/** @var LinkType $linkType */
|
|
||||||
$linkType = $this->route()->parameter('linkType');
|
|
||||||
$rules['name'] = ['required', Rule::unique('link_types', 'name')->ignore($linkType->id), 'min:1'];
|
|
||||||
$rules['outward'] = ['required', 'different:inward', Rule::unique('link_types', 'outward')->ignore($linkType->id), 'min:1'];
|
|
||||||
$rules['inward'] = ['required', 'different:outward', Rule::unique('link_types', 'inward')->ignore($linkType->id), 'min:1'];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $rules;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
71
app/Api/V1/Requests/LinkTypeUpdateRequest.php
Normal file
71
app/Api/V1/Requests/LinkTypeUpdateRequest.php
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* LinkTypeUpdateRequest.php
|
||||||
|
* Copyright (c) 2019 james@firefly-iii.org
|
||||||
|
*
|
||||||
|
* This file is part of Firefly III (https://github.com/firefly-iii).
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License as
|
||||||
|
* published by the Free Software Foundation, either version 3 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Affero General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace FireflyIII\Api\V1\Requests;
|
||||||
|
|
||||||
|
use FireflyIII\Models\LinkType;
|
||||||
|
use FireflyIII\Support\Request\ChecksLogin;
|
||||||
|
use FireflyIII\Support\Request\ConvertsDataTypes;
|
||||||
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
|
use Illuminate\Validation\Rule;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class LinkTypeUpdateRequest
|
||||||
|
*
|
||||||
|
* @codeCoverageIgnore
|
||||||
|
*/
|
||||||
|
class LinkTypeUpdateRequest extends FormRequest
|
||||||
|
{
|
||||||
|
use ConvertsDataTypes, ChecksLogin;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get all data from the request.
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getAll(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'name' => $this->string('name'),
|
||||||
|
'outward' => $this->string('outward'),
|
||||||
|
'inward' => $this->string('inward'),
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The rules that the incoming request must be matched against.
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function rules(): array
|
||||||
|
{
|
||||||
|
$linkType = $this->route()->parameter('linkType');
|
||||||
|
return [
|
||||||
|
'name' => ['required', Rule::unique('link_types', 'name')->ignore($linkType->id), 'min:1'],
|
||||||
|
'outward' => ['required', 'different:inward', Rule::unique('link_types', 'outward')->ignore($linkType->id), 'min:1'],
|
||||||
|
'inward' => ['required', 'different:outward', Rule::unique('link_types', 'inward')->ignore($linkType->id), 'min:1'],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -23,6 +23,7 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Api\V1\Requests;
|
namespace FireflyIII\Api\V1\Requests;
|
||||||
|
|
||||||
|
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;
|
||||||
|
|
||||||
@@ -33,18 +34,7 @@ use Illuminate\Foundation\Http\FormRequest;
|
|||||||
*/
|
*/
|
||||||
class PiggyBankStoreRequest extends FormRequest
|
class PiggyBankStoreRequest 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.
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* PiggyBankRequest.php
|
* PiggyBankUpdateRequest.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).
|
||||||
@@ -26,29 +26,18 @@ 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\Support\Request\ChecksLogin;
|
||||||
use FireflyIII\Support\Request\ConvertsDataTypes;
|
use FireflyIII\Support\Request\ConvertsDataTypes;
|
||||||
use Illuminate\Foundation\Http\FormRequest;
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class PiggyBankRequest
|
* Class PiggyBankUpdateRequest
|
||||||
*
|
*
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
* TODO AFTER 4.8,0: split this into two request classes.
|
|
||||||
*/
|
*/
|
||||||
class PiggyBankRequest extends FormRequest
|
class PiggyBankUpdateRequest 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.
|
||||||
@@ -76,30 +65,16 @@ class PiggyBankRequest extends FormRequest
|
|||||||
*/
|
*/
|
||||||
public function rules(): array
|
public function rules(): array
|
||||||
{
|
{
|
||||||
$rules = [
|
$piggyBank = $this->route()->parameter('piggyBank');
|
||||||
'name' => 'required|between:1,255|uniquePiggyBankForUser',
|
return [
|
||||||
'current_amount' => ['numeric', 'gte:0', 'lte:target_amount'],
|
'name' => 'between:1,255|uniquePiggyBankForUser:' . $piggyBank->id,
|
||||||
|
'current_amount' => ['numeric', 'gte:0', new LessThanPiggyTarget],
|
||||||
|
'target_amount' => 'numeric|gt:0',
|
||||||
'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',
|
||||||
|
'account_id' => ['belongsToUser:accounts', new IsAssetAccountId],
|
||||||
];
|
];
|
||||||
|
|
||||||
switch ($this->method()) {
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
case 'PUT':
|
|
||||||
case 'PATCH':
|
|
||||||
/** @var PiggyBank $piggyBank */
|
|
||||||
$piggyBank = $this->route()->parameter('piggyBank');
|
|
||||||
$rules['name'] = 'between:1,255|uniquePiggyBankForUser:' . $piggyBank->id;
|
|
||||||
$rules['account_id'] = ['belongsToUser:accounts', new IsAssetAccountId];
|
|
||||||
$rules['target_amount'] = 'numeric|gt:0';
|
|
||||||
$rules['current_amount'] = ['numeric', 'gte:0', new LessThanPiggyTarget];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
return $rules;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* RuleGroupRequest.php
|
* RuleGroupStoreRequest.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).
|
||||||
@@ -25,29 +25,18 @@ namespace FireflyIII\Api\V1\Requests;
|
|||||||
|
|
||||||
use FireflyIII\Models\RuleGroup;
|
use FireflyIII\Models\RuleGroup;
|
||||||
use FireflyIII\Rules\IsBoolean;
|
use FireflyIII\Rules\IsBoolean;
|
||||||
|
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;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
* Class RuleGroupRequest
|
* Class RuleGroupStoreRequest
|
||||||
* TODO AFTER 4.8,0: split this into two request classes.
|
|
||||||
*/
|
*/
|
||||||
class RuleGroupRequest extends FormRequest
|
class RuleGroupStoreRequest 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.
|
||||||
@@ -76,22 +65,10 @@ class RuleGroupRequest extends FormRequest
|
|||||||
*/
|
*/
|
||||||
public function rules(): array
|
public function rules(): array
|
||||||
{
|
{
|
||||||
$rules = [
|
return [
|
||||||
'title' => 'required|between:1,100|uniqueObjectForUser:rule_groups,title',
|
'title' => 'required|between:1,100|uniqueObjectForUser:rule_groups,title',
|
||||||
'description' => 'between:1,5000|nullable',
|
'description' => 'between:1,5000|nullable',
|
||||||
'active' => [new IsBoolean],
|
'active' => [new IsBoolean],
|
||||||
];
|
];
|
||||||
switch ($this->method()) {
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
case 'PUT':
|
|
||||||
case 'PATCH':
|
|
||||||
/** @var RuleGroup $ruleGroup */
|
|
||||||
$ruleGroup = $this->route()->parameter('ruleGroup');
|
|
||||||
$rules['title'] = 'required|between:1,100|uniqueObjectForUser:rule_groups,title,' . $ruleGroup->id;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $rules;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
74
app/Api/V1/Requests/RuleGroupUpdateRequest.php
Normal file
74
app/Api/V1/Requests/RuleGroupUpdateRequest.php
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* RuleGroupUpdateRequest.php
|
||||||
|
* Copyright (c) 2019 james@firefly-iii.org
|
||||||
|
*
|
||||||
|
* This file is part of Firefly III (https://github.com/firefly-iii).
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License as
|
||||||
|
* published by the Free Software Foundation, either version 3 of the
|
||||||
|
* License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Affero General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace FireflyIII\Api\V1\Requests;
|
||||||
|
|
||||||
|
use FireflyIII\Rules\IsBoolean;
|
||||||
|
use FireflyIII\Support\Request\ChecksLogin;
|
||||||
|
use FireflyIII\Support\Request\ConvertsDataTypes;
|
||||||
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @codeCoverageIgnore
|
||||||
|
* Class RuleGroupUpdateRequest
|
||||||
|
*/
|
||||||
|
class RuleGroupUpdateRequest extends FormRequest
|
||||||
|
{
|
||||||
|
use ConvertsDataTypes, ChecksLogin;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get all data from the request.
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getAll(): array
|
||||||
|
{
|
||||||
|
$active = true;
|
||||||
|
|
||||||
|
if (null !== $this->get('active')) {
|
||||||
|
$active = $this->boolean('active');
|
||||||
|
}
|
||||||
|
|
||||||
|
return [
|
||||||
|
'title' => $this->string('title'),
|
||||||
|
'description' => $this->string('description'),
|
||||||
|
'active' => $active,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The rules that the incoming request must be matched against.
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function rules(): array
|
||||||
|
{
|
||||||
|
$ruleGroup = $this->route()->parameter('ruleGroup');
|
||||||
|
return [
|
||||||
|
'title' => 'required|between:1,100|uniqueObjectForUser:rule_groups,title,' . $ruleGroup->id,
|
||||||
|
'description' => 'between:1,5000|nullable',
|
||||||
|
'active' => [new IsBoolean],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user