Point to all the right classes.

This commit is contained in:
James Cole 2020-07-18 08:34:00 +02:00
parent 427bcaa522
commit d73195ec36
No known key found for this signature in database
GPG Key ID: B5669F9493CDE38D
37 changed files with 270 additions and 171 deletions

View File

@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests;
use FireflyIII\Rules\IsValidAttachmentModel;
use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest;
/**
@ -33,6 +34,7 @@ use Illuminate\Foundation\Http\FormRequest;
*/
class AttachmentStoreRequest extends FormRequest
{
use ConvertsDataTypes;
/**
* Authorize logged in users.
*

View File

@ -23,6 +23,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests;
use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest;
/**
@ -32,6 +33,7 @@ use Illuminate\Foundation\Http\FormRequest;
*/
class AttachmentUpdateRequest extends FormRequest
{
use ConvertsDataTypes;
/**
* Authorize logged in users.
*

View File

@ -23,6 +23,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests;
use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest;
/**
@ -32,6 +33,7 @@ use Illuminate\Foundation\Http\FormRequest;
*/
class AvailableBudgetRequest extends FormRequest
{
use ConvertsDataTypes;
/**
* Authorize logged in users.
*

View File

@ -25,6 +25,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests;
use FireflyIII\Rules\IsBoolean;
use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Validator;
@ -37,7 +38,7 @@ use Illuminate\Validation\Validator;
*/
class BillRequest extends FormRequest
{
use ConvertsDataTypes;
/**
* Authorize logged in users.
*

View File

@ -23,6 +23,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests;
use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest;
/**
@ -33,6 +34,7 @@ use Illuminate\Foundation\Http\FormRequest;
*/
class BudgetLimitRequest extends FormRequest
{
use ConvertsDataTypes;
/**
* Authorize logged in users.
*

View File

@ -24,6 +24,8 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests;
use FireflyIII\Rules\IsBoolean;
use FireflyIII\Support\Request\ConvertsDataTypes;
use FireflyIII\Validation\AutoBudget\ValidatesAutoBudgetRequest;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Validator;
@ -34,6 +36,7 @@ use Illuminate\Validation\Validator;
*/
class BudgetStoreRequest extends FormRequest
{
use ConvertsDataTypes, ValidatesAutoBudgetRequest;
/**
* Authorize logged in users.
*

View File

@ -24,6 +24,8 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests;
use FireflyIII\Rules\IsBoolean;
use FireflyIII\Support\Request\ConvertsDataTypes;
use FireflyIII\Validation\AutoBudget\ValidatesAutoBudgetRequest;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Validator;
@ -34,6 +36,7 @@ use Illuminate\Validation\Validator;
*/
class BudgetUpdateRequest extends FormRequest
{
use ConvertsDataTypes, ValidatesAutoBudgetRequest;
/**
* Authorize logged in users.
*

View File

@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests;
use FireflyIII\Models\Category;
use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest;
/**
@ -34,6 +35,7 @@ use Illuminate\Foundation\Http\FormRequest;
*/
class CategoryRequest extends FormRequest
{
use ConvertsDataTypes;
/**
* Authorize logged in users.
*

View File

@ -25,6 +25,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests;
use FireflyIII\Rules\IsBoolean;
use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest;
/**
@ -34,7 +35,7 @@ use Illuminate\Foundation\Http\FormRequest;
*/
class ConfigurationRequest extends FormRequest
{
use ConvertsDataTypes;
/**
* Authorize logged in users.
*

View File

@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests;
use FireflyIII\Rules\IsBoolean;
use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest;
@ -35,6 +36,7 @@ use Illuminate\Foundation\Http\FormRequest;
*/
class CurrencyRequest extends FormRequest
{
use ConvertsDataTypes;
/**
* Authorize logged in users.
*

View File

@ -23,6 +23,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests;
use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest;
/**
@ -30,6 +31,7 @@ use Illuminate\Foundation\Http\FormRequest;
*/
class DataDestroyRequest extends FormRequest
{
use ConvertsDataTypes;
/**
* Authorize logged in users.
*

View File

@ -25,6 +25,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests;
use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest;
/**
@ -34,6 +35,7 @@ use Illuminate\Foundation\Http\FormRequest;
*/
class DateRequest extends FormRequest
{
use ConvertsDataTypes;
/**
* Authorize logged in users.
*

View File

@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests;
use FireflyIII\Models\LinkType;
use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;
@ -36,6 +37,7 @@ use Illuminate\Validation\Rule;
*/
class LinkTypeRequest extends FormRequest
{
use ConvertsDataTypes;
/**
* Authorize logged in users.
*

View File

@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests;
use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest;
/**
@ -33,7 +34,7 @@ use Illuminate\Foundation\Http\FormRequest;
*/
class ObjectGroupUpdateRequest extends FormRequest
{
use ConvertsDataTypes;
/**
* Authorize logged in users.
*

View File

@ -27,6 +27,7 @@ use FireflyIII\Models\PiggyBank;
use FireflyIII\Rules\IsAssetAccountId;
use FireflyIII\Rules\LessThanPiggyTarget;
use FireflyIII\Rules\ZeroOrMore;
use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest;
/**
@ -38,6 +39,8 @@ use Illuminate\Foundation\Http\FormRequest;
*/
class PiggyBankRequest extends FormRequest
{
use ConvertsDataTypes;
/**
* Authorize logged in users.
*

View File

@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests;
use FireflyIII\Rules\ZeroOrMore;
use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest;
/**
@ -34,6 +35,7 @@ use Illuminate\Foundation\Http\FormRequest;
*/
class PiggyBankStoreRequest extends FormRequest
{
use ConvertsDataTypes;
/**
* Authorize logged in users.
*

View File

@ -23,6 +23,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests;
use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest;
/**
@ -33,7 +34,7 @@ use Illuminate\Foundation\Http\FormRequest;
*/
class PreferenceRequest extends FormRequest
{
use ConvertsDataTypes;
/**
* Authorize logged in users.

View File

@ -26,6 +26,7 @@ namespace FireflyIII\Api\V1\Requests;
use Carbon\Carbon;
use FireflyIII\Rules\BelongsUser;
use FireflyIII\Rules\IsBoolean;
use FireflyIII\Support\Request\ConvertsDataTypes;
use FireflyIII\Support\Request\GetRecurrenceData;
use FireflyIII\Validation\CurrencyValidation;
use FireflyIII\Validation\RecurrenceValidation;
@ -38,8 +39,7 @@ use Illuminate\Validation\Validator;
*/
class RecurrenceStoreRequest extends FormRequest
{
use RecurrenceValidation, TransactionValidation, CurrencyValidation, GetRecurrenceData;
use ConvertsDataTypes, RecurrenceValidation, TransactionValidation, CurrencyValidation, GetRecurrenceData;
/**
* Authorize logged in users.
*

View File

@ -26,6 +26,8 @@ namespace FireflyIII\Api\V1\Requests;
use FireflyIII\Models\Recurrence;
use FireflyIII\Rules\BelongsUser;
use FireflyIII\Rules\IsBoolean;
use FireflyIII\Support\Request\ConvertsDataTypes;
use FireflyIII\Support\Request\GetRecurrenceData;
use FireflyIII\Validation\CurrencyValidation;
use FireflyIII\Validation\RecurrenceValidation;
use FireflyIII\Validation\TransactionValidation;
@ -37,7 +39,7 @@ use Illuminate\Validation\Validator;
*/
class RecurrenceUpdateRequest extends FormRequest
{
use RecurrenceValidation, TransactionValidation, CurrencyValidation;
use ConvertsDataTypes, RecurrenceValidation, TransactionValidation, CurrencyValidation, GetRecurrenceData;
/**
* Authorize logged in users.

View File

@ -25,6 +25,7 @@ namespace FireflyIII\Api\V1\Requests;
use FireflyIII\Models\RuleGroup;
use FireflyIII\Rules\IsBoolean;
use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest;
@ -35,6 +36,7 @@ use Illuminate\Foundation\Http\FormRequest;
*/
class RuleGroupRequest extends FormRequest
{
use ConvertsDataTypes;
/**
* Authorize logged in users.
*

View File

@ -30,6 +30,7 @@ use Carbon\Carbon;
use FireflyIII\Models\Account;
use FireflyIII\Models\AccountType;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Collection;
use Log;
@ -39,6 +40,7 @@ use Log;
*/
class RuleGroupTestRequest extends FormRequest
{
use ConvertsDataTypes;
/**
* Authorize logged in users.
*

View File

@ -30,6 +30,7 @@ use Carbon\Carbon;
use FireflyIII\Models\Account;
use FireflyIII\Models\AccountType;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Collection;
use Log;
@ -39,6 +40,7 @@ use Log;
*/
class RuleGroupTriggerRequest extends FormRequest
{
use ConvertsDataTypes;
/**
* Authorize logged in users.
*

View File

@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests;
use FireflyIII\Rules\IsBoolean;
use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Validator;
use function is_array;
@ -35,6 +36,7 @@ use function is_array;
*/
class RuleStoreRequest extends FormRequest
{
use ConvertsDataTypes;
/**
* Authorize logged in users.
*

View File

@ -30,6 +30,7 @@ use Carbon\Carbon;
use FireflyIII\Models\Account;
use FireflyIII\Models\AccountType;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Collection;
use Log;
@ -39,6 +40,7 @@ use Log;
*/
class RuleTestRequest extends FormRequest
{
use ConvertsDataTypes;
/**
* Authorize logged in users.
*

View File

@ -29,6 +29,7 @@ use Carbon\Carbon;
use FireflyIII\Models\Account;
use FireflyIII\Models\AccountType;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Collection;
use Log;
@ -38,6 +39,7 @@ use Log;
*/
class RuleTriggerRequest extends FormRequest
{
use ConvertsDataTypes;
/**
* Authorize logged in users.
*

View File

@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests;
use FireflyIII\Rules\IsBoolean;
use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Validator;
use function is_array;
@ -35,6 +36,7 @@ use function is_array;
*/
class RuleUpdateRequest extends FormRequest
{
use ConvertsDataTypes;
/**
* Authorize logged in users.
*

View File

@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests;
use FireflyIII\Models\Location;
use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest;
/**
@ -34,7 +35,7 @@ use Illuminate\Foundation\Http\FormRequest;
*/
class TagStoreRequest extends FormRequest
{
use ConvertsDataTypes;
/**
* Authorize logged in users.
*

View File

@ -25,6 +25,7 @@ declare(strict_types=1);
namespace FireflyIII\Api\V1\Requests;
use FireflyIII\Models\Location;
use FireflyIII\Support\Request\ConvertsDataTypes;
use Illuminate\Foundation\Http\FormRequest;
/**
@ -35,7 +36,7 @@ use Illuminate\Foundation\Http\FormRequest;
*/
class TagUpdateRequest extends FormRequest
{
use ConvertsDataTypes;
/**
* Authorize logged in users.
*

View File

@ -25,6 +25,7 @@ namespace FireflyIII\Api\V1\Requests;
use FireflyIII\Repositories\Journal\JournalRepositoryInterface;
use FireflyIII\Repositories\LinkType\LinkTypeRepositoryInterface;
use FireflyIII\Support\Request\ConvertsDataTypes;
use FireflyIII\User;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Validator;
@ -35,6 +36,7 @@ use Illuminate\Validation\Validator;
*/
class TransactionLinkRequest extends FormRequest
{
use ConvertsDataTypes;
/**
* Authorize logged in users.
*

View File

@ -28,6 +28,7 @@ use FireflyIII\Rules\BelongsUser;
use FireflyIII\Rules\IsBoolean;
use FireflyIII\Rules\IsDateOrTime;
use FireflyIII\Support\NullArrayObject;
use FireflyIII\Support\Request\ConvertsDataTypes;
use FireflyIII\Validation\CurrencyValidation;
use FireflyIII\Validation\GroupValidation;
use FireflyIII\Validation\TransactionValidation;
@ -40,7 +41,7 @@ use Log;
*/
class TransactionStoreRequest extends FormRequest
{
use TransactionValidation, GroupValidation, CurrencyValidation;
use TransactionValidation, GroupValidation, CurrencyValidation, ConvertsDataTypes;
/**
* Authorize logged in users.

View File

@ -28,6 +28,7 @@ use FireflyIII\Models\TransactionGroup;
use FireflyIII\Rules\BelongsUser;
use FireflyIII\Rules\IsBoolean;
use FireflyIII\Rules\IsDateOrTime;
use FireflyIII\Support\Request\ConvertsDataTypes;
use FireflyIII\Validation\GroupValidation;
use FireflyIII\Validation\TransactionValidation;
use Illuminate\Foundation\Http\FormRequest;
@ -39,7 +40,7 @@ use Log;
*/
class TransactionUpdateRequest extends FormRequest
{
use TransactionValidation, GroupValidation;
use TransactionValidation, GroupValidation, ConvertsDataTypes;
/** @var array Array values. */
private $arrayFields;

View File

@ -26,6 +26,7 @@ namespace FireflyIII\Api\V1\Requests;
use FireflyIII\Repositories\User\UserRepositoryInterface;
use FireflyIII\Rules\IsBoolean;
use FireflyIII\Support\Request\ConvertsDataTypes;
use FireflyIII\User;
use Illuminate\Foundation\Http\FormRequest;
@ -35,6 +36,7 @@ use Illuminate\Foundation\Http\FormRequest;
*/
class UserStoreRequest extends FormRequest
{
use ConvertsDataTypes;
/**
* Authorize logged in users.
*

View File

@ -26,6 +26,7 @@ namespace FireflyIII\Api\V1\Requests;
use FireflyIII\Repositories\User\UserRepositoryInterface;
use FireflyIII\Rules\IsBoolean;
use FireflyIII\Support\Request\ConvertsDataTypes;
use FireflyIII\User;
use Illuminate\Foundation\Http\FormRequest;
@ -35,6 +36,7 @@ use Illuminate\Foundation\Http\FormRequest;
*/
class UserUpdateRequest extends FormRequest
{
use ConvertsDataTypes;
/**
* Authorize logged in users.
*

View File

@ -39,78 +39,7 @@ use Log;
class Request extends FormRequest
{
use ConvertsDataTypes;
/**
* @param $array
*
* @return array|null
*/
public function arrayFromValue($array): ?array
{
if (is_array($array)) {
return $array;
}
if (null === $array) {
return null;
}
if (is_string($array)) {
return explode(',', $array);
}
return null;
}
/**
* @param string $value
*
* @return bool
*/
public function convertBoolean(?string $value): bool
{
if (null === $value) {
return false;
}
if ('true' === $value) {
return true;
}
if ('yes' === $value) {
return true;
}
if (1 === $value) {
return true;
}
if ('1' === $value) {
return true;
}
if (true === $value) {
return true;
}
return false;
}
/**
* @param string|null $string
*
* @return Carbon|null
*/
public function dateFromValue(?string $string): ?Carbon
{
if (null === $string) {
return null;
}
if ('' === $string) {
return null;
}
try {
$carbon = new Carbon($string);
} catch (Exception $e) {
Log::debug(sprintf('Invalid date: %s: %s', $string, $e->getMessage()));
return null;
}
return $carbon;
}
/**
* Return floating value.
@ -131,67 +60,14 @@ class Request extends FormRequest
/**
* Parse to integer
*
* @param string|null $string
*
* @return int|null
*/
public function integerFromValue(?string $string): ?int
{
if (null === $string) {
return null;
}
if ('' === $string) {
return null;
}
return (int) $string;
}
/**
* Parse and clean a string, but keep the newlines.
*
* @param string|null $string
*
* @return string|null
*/
public function nlStringFromValue(?string $string): ?string
{
if (null === $string) {
return null;
}
$result = app('steam')->nlCleanString($string);
return '' === $result ? null : $result;
}
/**
* Parse and clean a string.
*
* @param string|null $string
*
* @return string|null
*/
public function stringFromValue(?string $string): ?string
{
if (null === $string) {
return null;
}
$result = app('steam')->cleanString($string);
return '' === $result ? null : $result;
}
/**
* Return date time or NULL.
@ -229,40 +105,4 @@ class Request extends FormRequest
return $result;
}
/**
* @param Validator $validator
*/
protected function validateAutoBudgetAmount(Validator $validator): void
{
$data = $validator->getData();
$type = $data['auto_budget_type'] ?? '';
$amount = $data['auto_budget_amount'] ?? '';
$period = (string) ($data['auto_budget_period'] ?? '');
$currencyId = $data['auto_budget_currency_id'] ?? '';
$currencyCode = $data['auto_budget_currency_code'] ?? '';
if (is_numeric($type)) {
$type = (int) $type;
}
if (0 === $type || 'none' === $type || '' === $type) {
return;
}
// basic float check:
if ('' === $amount) {
$validator->errors()->add('auto_budget_amount', (string) trans('validation.amount_required_for_auto_budget'));
}
if (1 !== bccomp((string) $amount, '0')) {
$validator->errors()->add('auto_budget_amount', (string) trans('validation.auto_budget_amount_positive'));
}
if ('' === $period) {
$validator->errors()->add('auto_budget_period', (string) trans('validation.auto_budget_period_mandatory'));
}
if ('' === $currencyCode && '' === $currencyId) {
$validator->errors()->add('auto_budget_amount', (string) trans('validation.require_currency_info'));
}
}
}

View File

@ -64,6 +64,107 @@ trait ConvertsDataTypes
return (int) $this->get($field);
}
/**
* Parse and clean a string, but keep the newlines.
*
* @param string|null $string
*
* @return string|null
*/
protected function nlStringFromValue(?string $string): ?string
{
if (null === $string) {
return null;
}
$result = app('steam')->nlCleanString($string);
return '' === $result ? null : $result;
}
/**
* @param $array
*
* @return array|null
*/
protected function arrayFromValue($array): ?array
{
if (is_array($array)) {
return $array;
}
if (null === $array) {
return null;
}
if (is_string($array)) {
return explode(',', $array);
}
return null;
}
/**
* @param string|null $string
*
* @return Carbon|null
*/
protected function dateFromValue(?string $string): ?Carbon
{
if (null === $string) {
return null;
}
if ('' === $string) {
return null;
}
try {
$carbon = new Carbon($string);
} catch (Exception $e) {
Log::debug(sprintf('Invalid date: %s: %s', $string, $e->getMessage()));
return null;
}
return $carbon;
}
/**
* Parse and clean a string.
*
* @param string|null $string
*
* @return string|null
*/
protected function stringFromValue(?string $string): ?string
{
if (null === $string) {
return null;
}
$result = app('steam')->cleanString($string);
return '' === $result ? null : $result;
}
/**
* Parse to integer
*
* @param string|null $string
*
* @return int|null
*/
protected function integerFromValue(?string $string): ?int
{
if (null === $string) {
return null;
}
if ('' === $string) {
return null;
}
return (int) $string;
}
/**
* Return string value, but keep newlines.
*
@ -113,6 +214,36 @@ trait ConvertsDataTypes
return app('steam')->nlCleanString((string) ($this->get($field) ?? ''));
}
/**
* @param string $value
*
* @return bool
*/
protected function convertBoolean(?string $value): bool
{
if (null === $value) {
return false;
}
if ('true' === $value) {
return true;
}
if ('yes' === $value) {
return true;
}
if (1 === $value) {
return true;
}
if ('1' === $value) {
return true;
}
if (true === $value) {
return true;
}
return false;
}
/**
* Return string value, or NULL if empty.
*

View File

@ -362,8 +362,10 @@ class Steam
* Remove weird chars from strings.
*
* @param string $string
* TODO migrate to trait.
*
* @return string
* @deprecated
*/
public function cleanString(string $string): string
{
@ -425,8 +427,10 @@ class Steam
* Remove weird chars from strings, but keep newlines and tabs.
*
* @param string $string
* TODO migrate to trait.
*
* @return string
* @deprecated
*/
public function nlCleanString(string $string): string
{

View File

@ -0,0 +1,65 @@
<?php
/**
* ValidatesAutoBudgetRequest.php
* Copyright (c) 2020 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\Validation\AutoBudget;
use Illuminate\Validation\Validator;
/**
* Trait ValidatesAutoBudgetRequest
*/
trait ValidatesAutoBudgetRequest
{
/**
* @param Validator $validator
*/
protected function validateAutoBudgetAmount(Validator $validator): void
{
$data = $validator->getData();
$type = $data['auto_budget_type'] ?? '';
$amount = $data['auto_budget_amount'] ?? '';
$period = (string) ($data['auto_budget_period'] ?? '');
$currencyId = $data['auto_budget_currency_id'] ?? '';
$currencyCode = $data['auto_budget_currency_code'] ?? '';
if (is_numeric($type)) {
$type = (int) $type;
}
if (0 === $type || 'none' === $type || '' === $type) {
return;
}
// basic float check:
if ('' === $amount) {
$validator->errors()->add('auto_budget_amount', (string) trans('validation.amount_required_for_auto_budget'));
}
if (1 !== bccomp((string) $amount, '0')) {
$validator->errors()->add('auto_budget_amount', (string) trans('validation.auto_budget_amount_positive'));
}
if ('' === $period) {
$validator->errors()->add('auto_budget_period', (string) trans('validation.auto_budget_period_mandatory'));
}
if ('' === $currencyCode && '' === $currencyId) {
$validator->errors()->add('auto_budget_amount', (string) trans('validation.require_currency_info'));
}
}
}