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'], + ]; + } +}