From d991df89c875afdbf93336d5edc622358153b245 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sat, 8 Apr 2023 06:28:45 +0200 Subject: [PATCH] Fix #7311 --- .../Models/BudgetLimit/ShowController.php | 6 +- app/Api/V1/Requests/Data/SameDateRequest.php | 66 +++++++++++++++++++ 2 files changed, 69 insertions(+), 3 deletions(-) create mode 100644 app/Api/V1/Requests/Data/SameDateRequest.php diff --git a/app/Api/V1/Controllers/Models/BudgetLimit/ShowController.php b/app/Api/V1/Controllers/Models/BudgetLimit/ShowController.php index 6f26c13bab..9ce3fcb602 100644 --- a/app/Api/V1/Controllers/Models/BudgetLimit/ShowController.php +++ b/app/Api/V1/Controllers/Models/BudgetLimit/ShowController.php @@ -24,7 +24,7 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers\Models\BudgetLimit; use FireflyIII\Api\V1\Controllers\Controller; -use FireflyIII\Api\V1\Requests\Data\DateRequest; +use FireflyIII\Api\V1\Requests\Data\SameDateRequest; use FireflyIII\Exceptions\FireflyException; use FireflyIII\Models\Budget; use FireflyIII\Models\BudgetLimit; @@ -108,12 +108,12 @@ class ShowController extends Controller * * Display a listing of the budget limits for this budget. * - * @param DateRequest $request + * @param SameDateRequest $request * * @return JsonResponse * @throws FireflyException */ - public function indexAll(DateRequest $request): JsonResponse + public function indexAll(SameDateRequest $request): JsonResponse { $manager = $this->getManager(); $manager->parseIncludes('budget'); diff --git a/app/Api/V1/Requests/Data/SameDateRequest.php b/app/Api/V1/Requests/Data/SameDateRequest.php new file mode 100644 index 0000000000..549bf58563 --- /dev/null +++ b/app/Api/V1/Requests/Data/SameDateRequest.php @@ -0,0 +1,66 @@ +. + */ + +declare(strict_types=1); + +namespace FireflyIII\Api\V1\Requests\Data; + +use FireflyIII\Support\Request\ChecksLogin; +use FireflyIII\Support\Request\ConvertsDataTypes; +use Illuminate\Foundation\Http\FormRequest; + +/** + * Request class for end points that require date parameters. + * + * Class SameDateRequest + */ +class SameDateRequest extends FormRequest +{ + use ConvertsDataTypes; + use ChecksLogin; + + /** + * Get all data from the request. + * + * @return array + */ + public function getAll(): array + { + return [ + 'start' => $this->getCarbonDate('start'), + 'end' => $this->getCarbonDate('end'), + ]; + } + + /** + * The rules that the incoming request must be matched against. + * + * @return array + */ + public function rules(): array + { + return [ + 'start' => 'required|date', + 'end' => 'required|date|after_or_equal:start', + ]; + } +}