feat: add image to playlist
This commit is contained in:
@@ -3,11 +3,14 @@
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\MusicPlaylist;
|
||||
use App\Traits\HandlesImageUpload;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class MusicPlaylistController extends Controller
|
||||
{
|
||||
use HandlesImageUpload;
|
||||
|
||||
public function index(Request $request, $categoryId = null)
|
||||
{
|
||||
$query = MusicPlaylist::with(['categories', 'subcategories', 'image']);
|
||||
@@ -42,6 +45,7 @@ public function store(Request $request)
|
||||
'name' => 'required|string|max:255',
|
||||
'description' => 'nullable|string',
|
||||
'image_id' => 'nullable|exists:images,id',
|
||||
'image' => 'nullable|file|extensions:jpg,jpeg,png,gif,webp,bmp,svg|max:8192',
|
||||
'order' => 'nullable|integer',
|
||||
'is_active' => 'nullable|boolean',
|
||||
]);
|
||||
@@ -55,6 +59,9 @@ public function store(Request $request)
|
||||
|
||||
$data['slug'] = Str::slug($data['name']);
|
||||
|
||||
// An uploaded image file takes precedence over a provided image_id.
|
||||
$data['image_id'] = $this->uploadedImageId($request) ?? ($data['image_id'] ?? null);
|
||||
|
||||
$playlist = MusicPlaylist::create($data);
|
||||
|
||||
$playlist->categories()->sync($data['category_ids'] ?? []);
|
||||
@@ -119,6 +126,7 @@ public function update(Request $request, $id)
|
||||
'name' => 'sometimes|string|max:255',
|
||||
'description' => 'nullable|string',
|
||||
'image_id' => 'nullable|exists:images,id',
|
||||
'image' => 'nullable|file|extensions:jpg,jpeg,png,gif,webp,bmp,svg|max:8192',
|
||||
'order' => 'nullable|integer',
|
||||
'is_active' => 'nullable|boolean',
|
||||
]);
|
||||
@@ -127,6 +135,11 @@ public function update(Request $request, $id)
|
||||
$data['slug'] = Str::slug($data['name']);
|
||||
}
|
||||
|
||||
// An uploaded image file takes precedence over a provided image_id.
|
||||
if (($uploadedImageId = $this->uploadedImageId($request)) !== null) {
|
||||
$data['image_id'] = $uploadedImageId;
|
||||
}
|
||||
|
||||
$playlist->update($data);
|
||||
|
||||
if (array_key_exists('category_ids', $data)) {
|
||||
|
||||
Reference in New Issue
Block a user