From 5e1f9eaa82463b7ddd0a04785cc5887f6e413e61 Mon Sep 17 00:00:00 2001 From: Paulo Castellano Date: Wed, 1 Apr 2026 13:01:07 -0300 Subject: [PATCH] refactor: move duplicate validation to DuplicateMediaRequest FormRequest --- app/Http/Controllers/App/MediaController.php | 12 +++------ .../App/Media/DuplicateMediaRequest.php | 25 +++++++++++++++++++ 2 files changed, 28 insertions(+), 9 deletions(-) create mode 100644 app/Http/Requests/App/Media/DuplicateMediaRequest.php diff --git a/app/Http/Controllers/App/MediaController.php b/app/Http/Controllers/App/MediaController.php index 310e691e..916a83d4 100644 --- a/app/Http/Controllers/App/MediaController.php +++ b/app/Http/Controllers/App/MediaController.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers\App; +use App\Http\Requests\App\Media\DuplicateMediaRequest; use App\Http\Requests\App\Media\StoreChunkedMediaRequest; use App\Http\Requests\App\Media\StoreMediaRequest; use App\Models\Media; @@ -15,7 +16,6 @@ use Illuminate\Database\Eloquent\Relations\Relation; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; -use Illuminate\Validation\Rule; class MediaController extends Controller { @@ -114,18 +114,12 @@ public function reorder(Request $request): JsonResponse return response()->json(['success' => true]); } - public function duplicate(Media $media, Request $request): JsonResponse + public function duplicate(Media $media, DuplicateMediaRequest $request): JsonResponse { $sourceModel = $media->mediable; $this->authorizeModelOwnership($sourceModel, $request); - $request->validate([ - 'targets' => ['required', 'array', 'max:50'], - 'targets.*.model' => ['required', 'string', Rule::in(['postPlatform', 'workspace', 'user'])], - 'targets.*.model_id' => ['required', 'string'], - ]); - - $targets = $request->input('targets', []); + $targets = $request->validated('targets', []); $duplicates = []; foreach ($targets as $target) { diff --git a/app/Http/Requests/App/Media/DuplicateMediaRequest.php b/app/Http/Requests/App/Media/DuplicateMediaRequest.php new file mode 100644 index 00000000..e7fed1ab --- /dev/null +++ b/app/Http/Requests/App/Media/DuplicateMediaRequest.php @@ -0,0 +1,25 @@ + ['required', 'array', 'max:50'], + 'targets.*.model' => ['required', 'string', Rule::in(['postPlatform', 'workspace', 'user'])], + 'targets.*.model_id' => ['required', 'string'], + ]; + } +}