diff --git a/app/Api/V1/Requests/AccountStoreRequest.php b/app/Api/V1/Requests/AccountStoreRequest.php index 1809dd95c6..44b6efa10c 100644 --- a/app/Api/V1/Requests/AccountStoreRequest.php +++ b/app/Api/V1/Requests/AccountStoreRequest.php @@ -26,14 +26,18 @@ namespace FireflyIII\Api\V1\Requests; use FireflyIII\Models\Location; use FireflyIII\Rules\IsBoolean; +use FireflyIII\Support\Request\AppendsLocationData; +use FireflyIII\Support\Request\ConvertsDataTypes; +use Illuminate\Foundation\Http\FormRequest; /** * Class AccountStoreRequest * * @codeCoverageIgnore */ -class AccountStoreRequest extends Request +class AccountStoreRequest extends FormRequest { + use ConvertsDataTypes, AppendsLocationData; /** * Authorize logged in users. diff --git a/app/Api/V1/Requests/AccountUpdateRequest.php b/app/Api/V1/Requests/AccountUpdateRequest.php index 2c52b8c2c2..69e3c2ccff 100644 --- a/app/Api/V1/Requests/AccountUpdateRequest.php +++ b/app/Api/V1/Requests/AccountUpdateRequest.php @@ -26,15 +26,18 @@ namespace FireflyIII\Api\V1\Requests; use FireflyIII\Models\Location; use FireflyIII\Rules\IsBoolean; +use FireflyIII\Support\Request\AppendsLocationData; +use FireflyIII\Support\Request\ConvertsDataTypes; +use Illuminate\Foundation\Http\FormRequest; /** * Class AccountUpdateRequest * * @codeCoverageIgnore */ -class AccountUpdateRequest extends Request +class AccountUpdateRequest extends FormRequest { - + use ConvertsDataTypes, AppendsLocationData; /** * Authorize logged in users. * diff --git a/app/Api/V1/Requests/AttachmentStoreRequest.php b/app/Api/V1/Requests/AttachmentStoreRequest.php index ab74872dd2..07bcc26445 100644 --- a/app/Api/V1/Requests/AttachmentStoreRequest.php +++ b/app/Api/V1/Requests/AttachmentStoreRequest.php @@ -24,13 +24,14 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests; use FireflyIII\Rules\IsValidAttachmentModel; +use Illuminate\Foundation\Http\FormRequest; /** * Class AttachmentStoreRequest * * @codeCoverageIgnore */ -class AttachmentStoreRequest extends Request +class AttachmentStoreRequest extends FormRequest { /** * Authorize logged in users. diff --git a/app/Api/V1/Requests/AttachmentUpdateRequest.php b/app/Api/V1/Requests/AttachmentUpdateRequest.php index 60a69c612b..abad296b1d 100644 --- a/app/Api/V1/Requests/AttachmentUpdateRequest.php +++ b/app/Api/V1/Requests/AttachmentUpdateRequest.php @@ -23,12 +23,14 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests; +use Illuminate\Foundation\Http\FormRequest; + /** * ClassAttachmentUpdateRequest * * @codeCoverageIgnore */ -class AttachmentUpdateRequest extends Request +class AttachmentUpdateRequest extends FormRequest { /** * Authorize logged in users. diff --git a/app/Api/V1/Requests/AvailableBudgetRequest.php b/app/Api/V1/Requests/AvailableBudgetRequest.php index 93bac0676a..1869c6f411 100644 --- a/app/Api/V1/Requests/AvailableBudgetRequest.php +++ b/app/Api/V1/Requests/AvailableBudgetRequest.php @@ -23,12 +23,14 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests; +use Illuminate\Foundation\Http\FormRequest; + /** * Class AvailableBudgetRequest * * @codeCoverageIgnore */ -class AvailableBudgetRequest extends Request +class AvailableBudgetRequest extends FormRequest { /** * Authorize logged in users. diff --git a/app/Api/V1/Requests/BillRequest.php b/app/Api/V1/Requests/BillRequest.php index 27f014a4ca..80bada67fd 100644 --- a/app/Api/V1/Requests/BillRequest.php +++ b/app/Api/V1/Requests/BillRequest.php @@ -25,6 +25,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests; use FireflyIII\Rules\IsBoolean; +use Illuminate\Foundation\Http\FormRequest; use Illuminate\Validation\Validator; /** @@ -34,7 +35,7 @@ use Illuminate\Validation\Validator; * * @codeCoverageIgnore */ -class BillRequest extends Request +class BillRequest extends FormRequest { /** diff --git a/app/Api/V1/Requests/BudgetLimitRequest.php b/app/Api/V1/Requests/BudgetLimitRequest.php index 85ab848b1a..277538b20b 100644 --- a/app/Api/V1/Requests/BudgetLimitRequest.php +++ b/app/Api/V1/Requests/BudgetLimitRequest.php @@ -23,13 +23,15 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests; +use Illuminate\Foundation\Http\FormRequest; + /** * Class BudgetLimitRequest * * @codeCoverageIgnore * TODO AFTER 4.8,0: split this into two request classes. */ -class BudgetLimitRequest extends Request +class BudgetLimitRequest extends FormRequest { /** * Authorize logged in users. diff --git a/app/Api/V1/Requests/BudgetStoreRequest.php b/app/Api/V1/Requests/BudgetStoreRequest.php index 21799684ac..3120eb2894 100644 --- a/app/Api/V1/Requests/BudgetStoreRequest.php +++ b/app/Api/V1/Requests/BudgetStoreRequest.php @@ -24,6 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests; use FireflyIII\Rules\IsBoolean; +use Illuminate\Foundation\Http\FormRequest; use Illuminate\Validation\Validator; /** @@ -31,7 +32,7 @@ use Illuminate\Validation\Validator; * * @codeCoverageIgnore */ -class BudgetStoreRequest extends Request +class BudgetStoreRequest extends FormRequest { /** * Authorize logged in users. diff --git a/app/Api/V1/Requests/BudgetUpdateRequest.php b/app/Api/V1/Requests/BudgetUpdateRequest.php index 0861c5be25..30a14ee263 100644 --- a/app/Api/V1/Requests/BudgetUpdateRequest.php +++ b/app/Api/V1/Requests/BudgetUpdateRequest.php @@ -24,6 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests; use FireflyIII\Rules\IsBoolean; +use Illuminate\Foundation\Http\FormRequest; use Illuminate\Validation\Validator; /** @@ -31,7 +32,7 @@ use Illuminate\Validation\Validator; * * @codeCoverageIgnore */ -class BudgetUpdateRequest extends Request +class BudgetUpdateRequest extends FormRequest { /** * Authorize logged in users. diff --git a/app/Api/V1/Requests/CategoryRequest.php b/app/Api/V1/Requests/CategoryRequest.php index ea9715aecf..cf1f551c78 100644 --- a/app/Api/V1/Requests/CategoryRequest.php +++ b/app/Api/V1/Requests/CategoryRequest.php @@ -24,6 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests; use FireflyIII\Models\Category; +use Illuminate\Foundation\Http\FormRequest; /** * Class CategoryRequest @@ -31,7 +32,7 @@ use FireflyIII\Models\Category; * @codeCoverageIgnore * TODO AFTER 4.8,0: split this into two request classes. */ -class CategoryRequest extends Request +class CategoryRequest extends FormRequest { /** * Authorize logged in users. diff --git a/app/Api/V1/Requests/ConfigurationRequest.php b/app/Api/V1/Requests/ConfigurationRequest.php index cb10f7ef1e..7b31f762e2 100644 --- a/app/Api/V1/Requests/ConfigurationRequest.php +++ b/app/Api/V1/Requests/ConfigurationRequest.php @@ -25,13 +25,14 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests; use FireflyIII\Rules\IsBoolean; +use Illuminate\Foundation\Http\FormRequest; /** * Class ConfigurationRequest * * @codeCoverageIgnore */ -class ConfigurationRequest extends Request +class ConfigurationRequest extends FormRequest { /** diff --git a/app/Api/V1/Requests/CurrencyRequest.php b/app/Api/V1/Requests/CurrencyRequest.php index 8d1b0c04d4..408adea150 100644 --- a/app/Api/V1/Requests/CurrencyRequest.php +++ b/app/Api/V1/Requests/CurrencyRequest.php @@ -24,6 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests; use FireflyIII\Rules\IsBoolean; +use Illuminate\Foundation\Http\FormRequest; /** @@ -32,7 +33,7 @@ use FireflyIII\Rules\IsBoolean; * @codeCoverageIgnore * TODO AFTER 4.8,0: split this into two request classes. */ -class CurrencyRequest extends Request +class CurrencyRequest extends FormRequest { /** * Authorize logged in users. diff --git a/app/Api/V1/Requests/DataDestroyRequest.php b/app/Api/V1/Requests/DataDestroyRequest.php index 2b14817c3d..16a2f6904f 100644 --- a/app/Api/V1/Requests/DataDestroyRequest.php +++ b/app/Api/V1/Requests/DataDestroyRequest.php @@ -23,10 +23,12 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests; +use Illuminate\Foundation\Http\FormRequest; + /** * Class DataDestroyRequest */ -class DataDestroyRequest extends Request +class DataDestroyRequest extends FormRequest { /** * Authorize logged in users. diff --git a/app/Api/V1/Requests/DateRequest.php b/app/Api/V1/Requests/DateRequest.php index 71fa03ed53..57ce319f1f 100644 --- a/app/Api/V1/Requests/DateRequest.php +++ b/app/Api/V1/Requests/DateRequest.php @@ -25,12 +25,14 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests; +use Illuminate\Foundation\Http\FormRequest; + /** * Request class for end points that require date parameters. * * Class DateRequest */ -class DateRequest extends Request +class DateRequest extends FormRequest { /** * Authorize logged in users. diff --git a/app/Api/V1/Requests/LinkTypeRequest.php b/app/Api/V1/Requests/LinkTypeRequest.php index a4cf478832..bf997be848 100644 --- a/app/Api/V1/Requests/LinkTypeRequest.php +++ b/app/Api/V1/Requests/LinkTypeRequest.php @@ -24,6 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests; use FireflyIII\Models\LinkType; +use Illuminate\Foundation\Http\FormRequest; use Illuminate\Validation\Rule; /** @@ -33,7 +34,7 @@ use Illuminate\Validation\Rule; * @codeCoverageIgnore * TODO AFTER 4.8,0: split this into two request classes. */ -class LinkTypeRequest extends Request +class LinkTypeRequest extends FormRequest { /** * Authorize logged in users. diff --git a/app/Api/V1/Requests/ObjectGroupUpdateRequest.php b/app/Api/V1/Requests/ObjectGroupUpdateRequest.php index 57cabc7fe8..119c0e9765 100644 --- a/app/Api/V1/Requests/ObjectGroupUpdateRequest.php +++ b/app/Api/V1/Requests/ObjectGroupUpdateRequest.php @@ -24,12 +24,14 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests; +use Illuminate\Foundation\Http\FormRequest; + /** * Class AccountObjectGroupUpdateRequestUpdateRequest * * @codeCoverageIgnore */ -class ObjectGroupUpdateRequest extends Request +class ObjectGroupUpdateRequest extends FormRequest { /** diff --git a/app/Api/V1/Requests/PiggyBankRequest.php b/app/Api/V1/Requests/PiggyBankRequest.php index 68934d4475..d2a40e1abb 100644 --- a/app/Api/V1/Requests/PiggyBankRequest.php +++ b/app/Api/V1/Requests/PiggyBankRequest.php @@ -27,6 +27,7 @@ use FireflyIII\Models\PiggyBank; use FireflyIII\Rules\IsAssetAccountId; use FireflyIII\Rules\LessThanPiggyTarget; use FireflyIII\Rules\ZeroOrMore; +use Illuminate\Foundation\Http\FormRequest; /** * @@ -35,7 +36,7 @@ use FireflyIII\Rules\ZeroOrMore; * @codeCoverageIgnore * TODO AFTER 4.8,0: split this into two request classes. */ -class PiggyBankRequest extends Request +class PiggyBankRequest extends FormRequest { /** * Authorize logged in users. diff --git a/app/Api/V1/Requests/PiggyBankStoreRequest.php b/app/Api/V1/Requests/PiggyBankStoreRequest.php index 8d32203aa9..327f683edc 100644 --- a/app/Api/V1/Requests/PiggyBankStoreRequest.php +++ b/app/Api/V1/Requests/PiggyBankStoreRequest.php @@ -24,6 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests; use FireflyIII\Rules\ZeroOrMore; +use Illuminate\Foundation\Http\FormRequest; /** * @@ -31,7 +32,7 @@ use FireflyIII\Rules\ZeroOrMore; * * @codeCoverageIgnore */ -class PiggyBankStoreRequest extends Request +class PiggyBankStoreRequest extends FormRequest { /** * Authorize logged in users. diff --git a/app/Api/V1/Requests/PreferenceRequest.php b/app/Api/V1/Requests/PreferenceRequest.php index 75ef675d5a..5ba0a7fb01 100644 --- a/app/Api/V1/Requests/PreferenceRequest.php +++ b/app/Api/V1/Requests/PreferenceRequest.php @@ -23,13 +23,15 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests; +use Illuminate\Foundation\Http\FormRequest; + /** * * Class PreferenceRequest * * @codeCoverageIgnore */ -class PreferenceRequest extends Request +class PreferenceRequest extends FormRequest { diff --git a/app/Api/V1/Requests/RecurrenceStoreRequest.php b/app/Api/V1/Requests/RecurrenceStoreRequest.php index 3e739976ab..016e95bdc0 100644 --- a/app/Api/V1/Requests/RecurrenceStoreRequest.php +++ b/app/Api/V1/Requests/RecurrenceStoreRequest.php @@ -26,17 +26,19 @@ namespace FireflyIII\Api\V1\Requests; use Carbon\Carbon; use FireflyIII\Rules\BelongsUser; use FireflyIII\Rules\IsBoolean; +use FireflyIII\Support\Request\GetRecurrenceData; use FireflyIII\Validation\CurrencyValidation; use FireflyIII\Validation\RecurrenceValidation; use FireflyIII\Validation\TransactionValidation; +use Illuminate\Foundation\Http\FormRequest; use Illuminate\Validation\Validator; /** * Class RecurrenceStoreRequest */ -class RecurrenceStoreRequest extends Request +class RecurrenceStoreRequest extends FormRequest { - use RecurrenceValidation, TransactionValidation, CurrencyValidation; + use RecurrenceValidation, TransactionValidation, CurrencyValidation, GetRecurrenceData; /** * Authorize logged in users. diff --git a/app/Api/V1/Requests/RecurrenceUpdateRequest.php b/app/Api/V1/Requests/RecurrenceUpdateRequest.php index aaa2b1e766..ab9469ebb7 100644 --- a/app/Api/V1/Requests/RecurrenceUpdateRequest.php +++ b/app/Api/V1/Requests/RecurrenceUpdateRequest.php @@ -29,12 +29,13 @@ use FireflyIII\Rules\IsBoolean; use FireflyIII\Validation\CurrencyValidation; use FireflyIII\Validation\RecurrenceValidation; use FireflyIII\Validation\TransactionValidation; +use Illuminate\Foundation\Http\FormRequest; use Illuminate\Validation\Validator; /** * Class RecurrenceUpdateRequest */ -class RecurrenceUpdateRequest extends Request +class RecurrenceUpdateRequest extends FormRequest { use RecurrenceValidation, TransactionValidation, CurrencyValidation; diff --git a/app/Api/V1/Requests/RuleGroupRequest.php b/app/Api/V1/Requests/RuleGroupRequest.php index 4bee1a7aff..58d54be023 100644 --- a/app/Api/V1/Requests/RuleGroupRequest.php +++ b/app/Api/V1/Requests/RuleGroupRequest.php @@ -25,6 +25,7 @@ namespace FireflyIII\Api\V1\Requests; use FireflyIII\Models\RuleGroup; use FireflyIII\Rules\IsBoolean; +use Illuminate\Foundation\Http\FormRequest; /** @@ -32,7 +33,7 @@ use FireflyIII\Rules\IsBoolean; * Class RuleGroupRequest * TODO AFTER 4.8,0: split this into two request classes. */ -class RuleGroupRequest extends Request +class RuleGroupRequest extends FormRequest { /** * Authorize logged in users. diff --git a/app/Api/V1/Requests/RuleGroupTestRequest.php b/app/Api/V1/Requests/RuleGroupTestRequest.php index bdd01747c4..8c12b8ee2e 100644 --- a/app/Api/V1/Requests/RuleGroupTestRequest.php +++ b/app/Api/V1/Requests/RuleGroupTestRequest.php @@ -30,13 +30,14 @@ use Carbon\Carbon; use FireflyIII\Models\Account; use FireflyIII\Models\AccountType; use FireflyIII\Repositories\Account\AccountRepositoryInterface; +use Illuminate\Foundation\Http\FormRequest; use Illuminate\Support\Collection; use Log; /** * Class RuleGroupTestRequest */ -class RuleGroupTestRequest extends Request +class RuleGroupTestRequest extends FormRequest { /** * Authorize logged in users. diff --git a/app/Api/V1/Requests/RuleGroupTriggerRequest.php b/app/Api/V1/Requests/RuleGroupTriggerRequest.php index 6672fcc35e..d01a45d99b 100644 --- a/app/Api/V1/Requests/RuleGroupTriggerRequest.php +++ b/app/Api/V1/Requests/RuleGroupTriggerRequest.php @@ -30,13 +30,14 @@ use Carbon\Carbon; use FireflyIII\Models\Account; use FireflyIII\Models\AccountType; use FireflyIII\Repositories\Account\AccountRepositoryInterface; +use Illuminate\Foundation\Http\FormRequest; use Illuminate\Support\Collection; use Log; /** * Class RuleGroupTriggerRequest */ -class RuleGroupTriggerRequest extends Request +class RuleGroupTriggerRequest extends FormRequest { /** * Authorize logged in users. diff --git a/app/Api/V1/Requests/RuleStoreRequest.php b/app/Api/V1/Requests/RuleStoreRequest.php index bdbac61824..febed3ac51 100644 --- a/app/Api/V1/Requests/RuleStoreRequest.php +++ b/app/Api/V1/Requests/RuleStoreRequest.php @@ -24,6 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests; use FireflyIII\Rules\IsBoolean; +use Illuminate\Foundation\Http\FormRequest; use Illuminate\Validation\Validator; use function is_array; @@ -32,7 +33,7 @@ use function is_array; * Class RuleStoreRequest * */ -class RuleStoreRequest extends Request +class RuleStoreRequest extends FormRequest { /** * Authorize logged in users. diff --git a/app/Api/V1/Requests/RuleTestRequest.php b/app/Api/V1/Requests/RuleTestRequest.php index e506ce9d81..d145987e21 100644 --- a/app/Api/V1/Requests/RuleTestRequest.php +++ b/app/Api/V1/Requests/RuleTestRequest.php @@ -30,13 +30,14 @@ use Carbon\Carbon; use FireflyIII\Models\Account; use FireflyIII\Models\AccountType; use FireflyIII\Repositories\Account\AccountRepositoryInterface; +use Illuminate\Foundation\Http\FormRequest; use Illuminate\Support\Collection; use Log; /** * Class RuleTestRequest */ -class RuleTestRequest extends Request +class RuleTestRequest extends FormRequest { /** * Authorize logged in users. diff --git a/app/Api/V1/Requests/RuleTriggerRequest.php b/app/Api/V1/Requests/RuleTriggerRequest.php index d05f4f7dfe..426a1bb23a 100644 --- a/app/Api/V1/Requests/RuleTriggerRequest.php +++ b/app/Api/V1/Requests/RuleTriggerRequest.php @@ -29,13 +29,14 @@ use Carbon\Carbon; use FireflyIII\Models\Account; use FireflyIII\Models\AccountType; use FireflyIII\Repositories\Account\AccountRepositoryInterface; +use Illuminate\Foundation\Http\FormRequest; use Illuminate\Support\Collection; use Log; /** * Class RuleTriggerRequest */ -class RuleTriggerRequest extends Request +class RuleTriggerRequest extends FormRequest { /** * Authorize logged in users. diff --git a/app/Api/V1/Requests/RuleUpdateRequest.php b/app/Api/V1/Requests/RuleUpdateRequest.php index e1f8186883..ab7f3be55b 100644 --- a/app/Api/V1/Requests/RuleUpdateRequest.php +++ b/app/Api/V1/Requests/RuleUpdateRequest.php @@ -24,6 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests; use FireflyIII\Rules\IsBoolean; +use Illuminate\Foundation\Http\FormRequest; use Illuminate\Validation\Validator; use function is_array; @@ -32,7 +33,7 @@ use function is_array; * Class RuleUpdateRequest * */ -class RuleUpdateRequest extends Request +class RuleUpdateRequest extends FormRequest { /** * Authorize logged in users. diff --git a/app/Api/V1/Requests/TagStoreRequest.php b/app/Api/V1/Requests/TagStoreRequest.php index d942b7ac4e..5748233c9e 100644 --- a/app/Api/V1/Requests/TagStoreRequest.php +++ b/app/Api/V1/Requests/TagStoreRequest.php @@ -24,6 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests; use FireflyIII\Models\Location; +use Illuminate\Foundation\Http\FormRequest; /** * Class TagStoreRequest @@ -31,7 +32,7 @@ use FireflyIII\Models\Location; * @codeCoverageIgnore * */ -class TagStoreRequest extends Request +class TagStoreRequest extends FormRequest { /** diff --git a/app/Api/V1/Requests/TagUpdateRequest.php b/app/Api/V1/Requests/TagUpdateRequest.php index 6173e5aa1b..a65c7f2c8d 100644 --- a/app/Api/V1/Requests/TagUpdateRequest.php +++ b/app/Api/V1/Requests/TagUpdateRequest.php @@ -25,6 +25,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests; use FireflyIII\Models\Location; +use Illuminate\Foundation\Http\FormRequest; /** * Class TagUpdateRequest @@ -32,7 +33,7 @@ use FireflyIII\Models\Location; * @codeCoverageIgnore * */ -class TagUpdateRequest extends Request +class TagUpdateRequest extends FormRequest { /** diff --git a/app/Api/V1/Requests/TransactionLinkRequest.php b/app/Api/V1/Requests/TransactionLinkRequest.php index 9086c2cdd5..230c9a9b0b 100644 --- a/app/Api/V1/Requests/TransactionLinkRequest.php +++ b/app/Api/V1/Requests/TransactionLinkRequest.php @@ -26,13 +26,14 @@ namespace FireflyIII\Api\V1\Requests; use FireflyIII\Repositories\Journal\JournalRepositoryInterface; use FireflyIII\Repositories\LinkType\LinkTypeRepositoryInterface; use FireflyIII\User; +use Illuminate\Foundation\Http\FormRequest; use Illuminate\Validation\Validator; /** * * Class TransactionLinkRequest */ -class TransactionLinkRequest extends Request +class TransactionLinkRequest extends FormRequest { /** * Authorize logged in users. diff --git a/app/Api/V1/Requests/TransactionStoreRequest.php b/app/Api/V1/Requests/TransactionStoreRequest.php index 5355928588..90b3749514 100644 --- a/app/Api/V1/Requests/TransactionStoreRequest.php +++ b/app/Api/V1/Requests/TransactionStoreRequest.php @@ -31,13 +31,14 @@ use FireflyIII\Support\NullArrayObject; use FireflyIII\Validation\CurrencyValidation; use FireflyIII\Validation\GroupValidation; use FireflyIII\Validation\TransactionValidation; +use Illuminate\Foundation\Http\FormRequest; use Illuminate\Validation\Validator; use Log; /** * Class TransactionStoreRequest */ -class TransactionStoreRequest extends Request +class TransactionStoreRequest extends FormRequest { use TransactionValidation, GroupValidation, CurrencyValidation; diff --git a/app/Api/V1/Requests/TransactionUpdateRequest.php b/app/Api/V1/Requests/TransactionUpdateRequest.php index 88d44b13af..824e652426 100644 --- a/app/Api/V1/Requests/TransactionUpdateRequest.php +++ b/app/Api/V1/Requests/TransactionUpdateRequest.php @@ -30,13 +30,14 @@ use FireflyIII\Rules\IsBoolean; use FireflyIII\Rules\IsDateOrTime; use FireflyIII\Validation\GroupValidation; use FireflyIII\Validation\TransactionValidation; +use Illuminate\Foundation\Http\FormRequest; use Illuminate\Validation\Validator; use Log; /** * Class TransactionUpdateRequest */ -class TransactionUpdateRequest extends Request +class TransactionUpdateRequest extends FormRequest { use TransactionValidation, GroupValidation; diff --git a/app/Api/V1/Requests/UserStoreRequest.php b/app/Api/V1/Requests/UserStoreRequest.php index e9b55980fe..b9d6d4c2fe 100644 --- a/app/Api/V1/Requests/UserStoreRequest.php +++ b/app/Api/V1/Requests/UserStoreRequest.php @@ -27,12 +27,13 @@ namespace FireflyIII\Api\V1\Requests; use FireflyIII\Repositories\User\UserRepositoryInterface; use FireflyIII\Rules\IsBoolean; use FireflyIII\User; +use Illuminate\Foundation\Http\FormRequest; /** * Class UserStoreRequest */ -class UserStoreRequest extends Request +class UserStoreRequest extends FormRequest { /** * Authorize logged in users. diff --git a/app/Api/V1/Requests/UserUpdateRequest.php b/app/Api/V1/Requests/UserUpdateRequest.php index 7dc41b7806..6b3b915f29 100644 --- a/app/Api/V1/Requests/UserUpdateRequest.php +++ b/app/Api/V1/Requests/UserUpdateRequest.php @@ -27,12 +27,13 @@ namespace FireflyIII\Api\V1\Requests; use FireflyIII\Repositories\User\UserRepositoryInterface; use FireflyIII\Rules\IsBoolean; use FireflyIII\User; +use Illuminate\Foundation\Http\FormRequest; /** * Class UserUpdateRequest */ -class UserUpdateRequest extends Request +class UserUpdateRequest extends FormRequest { /** * Authorize logged in users. diff --git a/app/Http/Requests/Request.php b/app/Http/Requests/Request.php index ca6e9227c1..33a62089cb 100644 --- a/app/Http/Requests/Request.php +++ b/app/Http/Requests/Request.php @@ -25,6 +25,7 @@ namespace FireflyIII\Http\Requests; use Carbon\Carbon; use Carbon\Exceptions\InvalidDateException; use Exception; +use FireflyIII\Support\Request\ConvertsDataTypes; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Validation\Validator; use Log; @@ -37,6 +38,7 @@ use Log; */ class Request extends FormRequest { + use ConvertsDataTypes; /** * @param $array * @@ -127,17 +129,7 @@ class Request extends FormRequest return (float) $res; } - /** - * Return integer value. - * - * @param string $field - * - * @return int - */ - public function integer(string $field): int - { - return (int) $this->get($field); - } + /** * Parse to integer @@ -158,17 +150,7 @@ class Request extends FormRequest return (int) $string; } - /** - * Return string value, but keep newlines. - * - * @param string $field - * - * @return string - */ - public function nlString(string $field): string - { - return app('steam')->nlCleanString((string) ($this->get($field) ?? '')); - } + /** * Parse and clean a string, but keep the newlines. @@ -188,74 +170,10 @@ class Request extends FormRequest } - /** - * Return integer value, or NULL when it's not set. - * - * @param string $field - * - * @return int|null - */ - public function nullableInteger(string $field): ?int - { - if (!$this->has($field)) { - return null; - } - $value = (string) $this->get($field); - if ('' === $value) { - return null; - } - return (int) $value; - } - /** - * Return string value, but keep newlines, or NULL if empty. - * - * @param string $field - * - * @return string - */ - public function nullableNlString(string $field): ?string - { - if (!$this->has($field)) { - return null; - } - return app('steam')->nlCleanString((string) ($this->get($field) ?? '')); - } - - /** - * Return string value, or NULL if empty. - * - * @param string $field - * - * @return string|null - */ - public function nullableString(string $field): ?string - { - if (!$this->has($field)) { - return null; - } - $res = trim(app('steam')->cleanString((string) ($this->get($field) ?? ''))); - if ('' === $res) { - return null; - } - - return $res; - } - - /** - * Return string value. - * - * @param string $field - * - * @return string - */ - public function string(string $field): string - { - return app('steam')->cleanString((string) ($this->get($field) ?? '')); - } /** * Parse and clean a string. @@ -275,86 +193,6 @@ class Request extends FormRequest } - /** - * Read the submitted Request data and add new or updated Location data to the array. - * - * @param array $data - * - * @param string|null $prefix - * - * @return array - */ - protected function appendLocationData(array $data, ?string $prefix): array - { - Log::debug(sprintf('Now in appendLocationData("%s")', $prefix), $data); - $data['store_location'] = false; - $data['update_location'] = false; - $data['longitude'] = null; - $data['latitude'] = null; - $data['zoom_level'] = null; - - $longitudeKey = $this->getLocationKey($prefix, 'longitude'); - $latitudeKey = $this->getLocationKey($prefix, 'latitude'); - $zoomLevelKey = $this->getLocationKey($prefix, 'zoom_level'); - $hasLocationKey = $this->getLocationKey($prefix, 'has_location'); - $hasLocation = $this->boolean($hasLocationKey); - - // for a POST (store), all fields must be present and accounted for: - if ( - ('POST' === $this->method() && $this->routeIs('*.store')) - && ($this->has($longitudeKey) && $this->has($latitudeKey) && $this->has($zoomLevelKey)) - ) { - Log::debug('Method is POST and all fields present.'); - $data['store_location'] = $this->boolean($hasLocationKey); - $data['longitude'] = $this->nullableString($longitudeKey); - $data['latitude'] = $this->nullableString($latitudeKey); - $data['zoom_level'] = $this->nullableString($zoomLevelKey); - } - if ( - ($this->has($longitudeKey) && $this->has($latitudeKey) && $this->has($zoomLevelKey)) - && ( - ('PUT' === $this->method() && $this->routeIs('*.update')) - || ('POST' === $this->method() && $this->routeIs('*.update')) - ) - ) { - Log::debug('Method is PUT and all fields present.'); - $data['update_location'] = true; - $data['longitude'] = $this->nullableString($longitudeKey); - $data['latitude'] = $this->nullableString($latitudeKey); - $data['zoom_level'] = $this->nullableString($zoomLevelKey); - } - if (false === $hasLocation || null === $data['longitude'] || null === $data['latitude'] || null === $data['zoom_level']) { - Log::debug('One of the fields is NULL or hasLocation is false, wont save.'); - $data['store_location'] = false; - $data['update_location'] = true; // update is always true, but the values are null: - $data['longitude'] = null; - $data['latitude'] = null; - $data['zoom_level'] = null; - } - Log::debug(sprintf('Returning longitude: "%s", latitude: "%s", zoom level: "%s"', $data['longitude'], $data['latitude'], $data['zoom_level'])); - - return $data; - } - - /** - * Return date or NULL. - * - * @param string $field - * - * @return Carbon|null - */ - protected function date(string $field): ?Carbon - { - $result = null; - try { - $result = $this->get($field) ? new Carbon($this->get($field)) : null; - } catch (Exception $e) { - Log::debug(sprintf('Exception when parsing date. Not interesting: %s', $e->getMessage())); - } - - return $result; - } - /** * Return date time or NULL. * @@ -424,20 +262,7 @@ class Request extends FormRequest } } - /** - * @param string|null $prefix - * @param string $key - * - * @return string - */ - private function getLocationKey(?string $prefix, string $key): string - { - if (null === $prefix) { - return $key; - } - return sprintf('%s_%s', $prefix, $key); - } } diff --git a/app/Support/Request/AppendsLocationData.php b/app/Support/Request/AppendsLocationData.php new file mode 100644 index 0000000000..c6e19a5a23 --- /dev/null +++ b/app/Support/Request/AppendsLocationData.php @@ -0,0 +1,153 @@ +. + */ + +declare(strict_types=1); + +namespace FireflyIII\Support\Request; + +use Log; + +/** + * Trait AppendsLocationData + */ +trait AppendsLocationData +{ + /** + * Abstract method stolen from "InteractsWithInput". + * + * @param null $key + * @param bool $default + * + * @return mixed + */ + abstract public function boolean($key = null, $default = false); + + /** + * Abstract method. + * + * @param $key + * + * @return bool + */ + abstract public function has($key); + + /** + * Abstract method. + * + * @return string + */ + abstract public function method(); + + /** + * Abstract method. + * + * @param mixed ...$patterns + * + * @return mixed + */ + abstract public function routeIs(...$patterns); + + /** + * Read the submitted Request data and add new or updated Location data to the array. + * + * @param array $data + * + * @param string|null $prefix + * + * @return array + */ + protected function appendLocationData(array $data, ?string $prefix): array + { + Log::debug(sprintf('Now in appendLocationData("%s")', $prefix), $data); + $data['store_location'] = false; + $data['update_location'] = false; + $data['longitude'] = null; + $data['latitude'] = null; + $data['zoom_level'] = null; + + $longitudeKey = $this->getLocationKey($prefix, 'longitude'); + $latitudeKey = $this->getLocationKey($prefix, 'latitude'); + $zoomLevelKey = $this->getLocationKey($prefix, 'zoom_level'); + $hasLocationKey = $this->getLocationKey($prefix, 'has_location'); + $hasLocation = $this->boolean($hasLocationKey); + + // for a POST (store), all fields must be present and accounted for: + if ( + ('POST' === $this->method() && $this->routeIs('*.store')) + && ($this->has($longitudeKey) && $this->has($latitudeKey) && $this->has($zoomLevelKey)) + ) { + Log::debug('Method is POST and all fields present.'); + $data['store_location'] = $this->boolean($hasLocationKey); + $data['longitude'] = $this->nullableString($longitudeKey); + $data['latitude'] = $this->nullableString($latitudeKey); + $data['zoom_level'] = $this->nullableString($zoomLevelKey); + } + if ( + ($this->has($longitudeKey) && $this->has($latitudeKey) && $this->has($zoomLevelKey)) + && ( + ('PUT' === $this->method() && $this->routeIs('*.update')) + || ('POST' === $this->method() && $this->routeIs('*.update')) + ) + ) { + Log::debug('Method is PUT and all fields present.'); + $data['update_location'] = true; + $data['longitude'] = $this->nullableString($longitudeKey); + $data['latitude'] = $this->nullableString($latitudeKey); + $data['zoom_level'] = $this->nullableString($zoomLevelKey); + } + if (false === $hasLocation || null === $data['longitude'] || null === $data['latitude'] || null === $data['zoom_level']) { + Log::debug('One of the fields is NULL or hasLocation is false, wont save.'); + $data['store_location'] = false; + $data['update_location'] = true; // update is always true, but the values are null: + $data['longitude'] = null; + $data['latitude'] = null; + $data['zoom_level'] = null; + } + Log::debug(sprintf('Returning longitude: "%s", latitude: "%s", zoom level: "%s"', $data['longitude'], $data['latitude'], $data['zoom_level'])); + + return $data; + } + + /** + * Abstract method to ensure filling later. + * + * @param string $field + * + * @return string|null + */ + abstract protected function nullableString(string $field): ?string; + + /** + * @param string|null $prefix + * @param string $key + * + * @return string + */ + private function getLocationKey(?string $prefix, string $key): string + { + if (null === $prefix) { + return $key; + } + + return sprintf('%s_%s', $prefix, $key); + } + +} diff --git a/app/Api/V1/Requests/Search/TransferRequest.php b/app/Support/Request/ConvertAPIDataTypes.php similarity index 51% rename from app/Api/V1/Requests/Search/TransferRequest.php rename to app/Support/Request/ConvertAPIDataTypes.php index be910f9c39..3c6acabc22 100644 --- a/app/Api/V1/Requests/Search/TransferRequest.php +++ b/app/Support/Request/ConvertAPIDataTypes.php @@ -1,7 +1,6 @@ check(); - } - /** - * @return array - */ - public function rules(): array - { - return [ - 'source' => ['required', new IsTransferAccount], - 'destination' => ['required', new IsTransferAccount], - 'amount' => 'required|numeric|gt:0', - 'description' => 'required|min:1', - 'date' => 'required|date', - ]; - } } diff --git a/app/Support/Request/ConvertsDataTypes.php b/app/Support/Request/ConvertsDataTypes.php new file mode 100644 index 0000000000..4e8ab9ec92 --- /dev/null +++ b/app/Support/Request/ConvertsDataTypes.php @@ -0,0 +1,147 @@ +. + */ + +declare(strict_types=1); + +namespace FireflyIII\Support\Request; + +use Carbon\Carbon; +use Exception; +use Log; + +/** + * Trait ConvertsDataTypes + */ +trait ConvertsDataTypes +{ + + /** + * Return date or NULL. + * + * @param string $field + * + * @return Carbon|null + */ + protected function date(string $field): ?Carbon + { + $result = null; + try { + $result = $this->get($field) ? new Carbon($this->get($field)) : null; + } catch (Exception $e) { + Log::debug(sprintf('Exception when parsing date. Not interesting: %s', $e->getMessage())); + } + + return $result; + } + + /** + * Return integer value. + * + * @param string $field + * + * @return int + */ + protected function integer(string $field): int + { + return (int) $this->get($field); + } + + /** + * Return string value, but keep newlines. + * + * @param string $field + * + * @return string + */ + protected function nlString(string $field): string + { + return app('steam')->nlCleanString((string) ($this->get($field) ?? '')); + } + + /** + * Return integer value, or NULL when it's not set. + * + * @param string $field + * + * @return int|null + */ + protected function nullableInteger(string $field): ?int + { + if (!$this->has($field)) { + return null; + } + + $value = (string) $this->get($field); + if ('' === $value) { + return null; + } + + return (int) $value; + } + + /** + * Return string value, but keep newlines, or NULL if empty. + * + * @param string $field + * + * @return string + */ + protected function nullableNlString(string $field): ?string + { + if (!$this->has($field)) { + return null; + } + + return app('steam')->nlCleanString((string) ($this->get($field) ?? '')); + } + + /** + * Return string value, or NULL if empty. + * + * @param string $field + * + * @return string|null + */ + protected function nullableString(string $field): ?string + { + if (!$this->has($field)) { + return null; + } + $res = trim(app('steam')->cleanString((string) ($this->get($field) ?? ''))); + if ('' === $res) { + return null; + } + + return $res; + } + + /** + * Return string value. + * + * @param string $field + * + * @return string + */ + protected function string(string $field): string + { + return app('steam')->cleanString((string) ($this->get($field) ?? '')); + } +} diff --git a/app/Api/V1/Requests/Request.php b/app/Support/Request/GetRecurrenceData.php similarity index 89% rename from app/Api/V1/Requests/Request.php rename to app/Support/Request/GetRecurrenceData.php index a3e0899551..a58f223391 100644 --- a/app/Api/V1/Requests/Request.php +++ b/app/Support/Request/GetRecurrenceData.php @@ -1,8 +1,7 @@