refactor: move duplicate validation to DuplicateMediaRequest FormRequest
This commit is contained in:
parent
29bc7deb21
commit
5e1f9eaa82
2 changed files with 28 additions and 9 deletions
|
|
@ -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) {
|
||||
|
|
|
|||
25
app/Http/Requests/App/Media/DuplicateMediaRequest.php
Normal file
25
app/Http/Requests/App/Media/DuplicateMediaRequest.php
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Http\Requests\App\Media;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class DuplicateMediaRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'targets' => ['required', 'array', 'max:50'],
|
||||
'targets.*.model' => ['required', 'string', Rule::in(['postPlatform', 'workspace', 'user'])],
|
||||
'targets.*.model_id' => ['required', 'string'],
|
||||
];
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue