Clean up API code.

This commit is contained in:
James Cole
2018-07-05 06:10:35 +02:00
parent 7c3aaf7b7c
commit f6f8bb7fd1
21 changed files with 157 additions and 89 deletions

View File

@@ -23,7 +23,6 @@
declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests;
/**
* Class AccountRequest
*/

View File

@@ -26,7 +26,6 @@ namespace FireflyIII\Api\V1\Requests;
use FireflyIII\Models\Bill;
use FireflyIII\Models\ImportJob;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Rules\IsBase64;
use FireflyIII\Rules\IsValidAttachmentModel;
/**

View File

@@ -28,6 +28,7 @@ use FireflyIII\Models\Account;
use FireflyIII\Models\AccountType;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Rules\BelongsUser;
use FireflyIII\User;
use Illuminate\Validation\Validator;
use InvalidArgumentException;
use Log;
@@ -196,6 +197,8 @@ class RecurrenceRequest extends Request
*/
protected function assetAccountExists(Validator $validator, ?int $accountId, ?string $accountName, string $idField, string $nameField): ?Account
{
/** @var User $admin */
$admin = auth()->user();
$accountId = (int)$accountId;
$accountName = (string)$accountName;
// both empty? hard exit.
@@ -207,7 +210,7 @@ class RecurrenceRequest extends Request
// ID belongs to user and is asset account:
/** @var AccountRepositoryInterface $repository */
$repository = app(AccountRepositoryInterface::class);
$repository->setUser(auth()->user());
$repository->setUser($admin);
$set = $repository->getAccountsById([$accountId]);
Log::debug(sprintf('Count of accounts found by ID %d is: %d', $accountId, $set->count()));
if ($set->count() === 1) {
@@ -302,17 +305,19 @@ class RecurrenceRequest extends Request
*/
protected function opposingAccountExists(Validator $validator, string $type, ?int $accountId, ?string $accountName, string $idField): ?Account
{
/** @var User $admin */
$admin = auth()->user();
$accountId = (int)$accountId;
$accountName = (string)$accountName;
// both empty? done!
if ($accountId < 1 && \strlen($accountName) === 0) {
if ($accountId < 1 && '' === $accountName) {
return null;
}
if ($accountId !== 0) {
// ID belongs to user and is $type account:
/** @var AccountRepositoryInterface $repository */
$repository = app(AccountRepositoryInterface::class);
$repository->setUser(auth()->user());
$repository->setUser($admin);
$set = $repository->getAccountsById([$accountId]);
if ($set->count() === 1) {
/** @var Account $first */

View File

@@ -30,6 +30,7 @@ use FireflyIII\Models\AccountType;
use FireflyIII\Models\Transaction;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Rules\BelongsUser;
use FireflyIII\User;
use Illuminate\Validation\Validator;
@@ -200,11 +201,12 @@ class TransactionRequest extends Request
*/
protected function assetAccountExists(Validator $validator, ?int $accountId, ?string $accountName, string $idField, string $nameField): ?Account
{
/** @var User $admin */
$admin = auth()->user();
$accountId = (int)$accountId;
$accountName = (string)$accountName;
// both empty? hard exit.
if ($accountId < 1 && \strlen($accountName) === 0) {
if ($accountId < 1 && '' === $accountName) {
$validator->errors()->add($idField, trans('validation.filled', ['attribute' => $idField]));
return null;
@@ -212,7 +214,7 @@ class TransactionRequest extends Request
// ID belongs to user and is asset account:
/** @var AccountRepositoryInterface $repository */
$repository = app(AccountRepositoryInterface::class);
$repository->setUser(auth()->user());
$repository->setUser($admin);
$set = $repository->getAccountsById([$accountId]);
if ($set->count() === 1) {
/** @var Account $first */
@@ -271,7 +273,7 @@ class TransactionRequest extends Request
}
// no valid descriptions and empty journal description? error.
if ($validDescriptions === 0 && \strlen($journalDescription) === 0) {
if ($validDescriptions === 0 && '' === $journalDescription) {
$validator->errors()->add('description', trans('validation.filled', ['attribute' => trans('validation.attributes.description')]));
}
@@ -290,7 +292,7 @@ class TransactionRequest extends Request
foreach ($transactions as $index => $transaction) {
$description = (string)($transaction['description'] ?? '');
// filled description is mandatory for split transactions.
if (\count($transactions) > 1 && \strlen($description) === 0) {
if ('' === $description && \count($transactions) > 1) {
$validator->errors()->add(
'transactions.' . $index . '.description',
trans('validation.filled', ['attribute' => trans('validation.attributes.transaction_description')])
@@ -358,17 +360,19 @@ class TransactionRequest extends Request
*/
protected function opposingAccountExists(Validator $validator, string $type, ?int $accountId, ?string $accountName, string $idField): ?Account
{
/** @var User $admin */
$admin = auth()->user();
$accountId = (int)$accountId;
$accountName = (string)$accountName;
// both empty? done!
if ($accountId < 1 && \strlen($accountName) === 0) {
if ($accountId < 1 && '' === $accountName) {
return null;
}
if ($accountId !== 0) {
// ID belongs to user and is $type account:
/** @var AccountRepositoryInterface $repository */
$repository = app(AccountRepositoryInterface::class);
$repository->setUser(auth()->user());
$repository->setUser($admin);
$set = $repository->getAccountsById([$accountId]);
if ($set->count() === 1) {
/** @var Account $first */

View File

@@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests;
use FireflyIII\Repositories\User\UserRepositoryInterface;
use FireflyIII\User;
@@ -43,7 +44,11 @@ class UserRequest extends Request
}
/** @var User $user */
$user = auth()->user();
if (!$user->hasRole('owner')) {
/** @var UserRepositoryInterface $repository */
$repository = app(UserRepositoryInterface::class);
if (!$repository->hasRole($user, 'owner')) {
return false; // @codeCoverageIgnore
}