fix
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Category;
|
||||
use App\Models\MusicCategory;
|
||||
use App\Traits\StoresUploads;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
@@ -14,6 +15,12 @@ class CategoryController extends Controller
|
||||
|
||||
public function index(Request $request)
|
||||
{
|
||||
// Playlist categories live in their own table (music_categories); serve
|
||||
// them here too so the front has one /categories?type=... entry point.
|
||||
if ($request->input('type') === Category::TYPE_PLAYLIST) {
|
||||
return response()->json($this->playlistCategories($request));
|
||||
}
|
||||
|
||||
$query = Category::query()->withCount('subcategories');
|
||||
|
||||
if ($request->filled('type')) {
|
||||
@@ -29,6 +36,37 @@ public function index(Request $request)
|
||||
);
|
||||
}
|
||||
|
||||
// Music categories normalized to the generic category shape.
|
||||
private function playlistCategories(Request $request)
|
||||
{
|
||||
$query = MusicCategory::query()->with('image')->withCount('subcategories');
|
||||
|
||||
if (!$request->boolean('include_inactive')) {
|
||||
$query->where('is_active', true);
|
||||
}
|
||||
|
||||
if ($request->boolean('with_subcategories')) {
|
||||
$query->with('subcategories.image');
|
||||
}
|
||||
|
||||
return $query->orderBy('order')->get()->map(function ($c) use ($request) {
|
||||
return [
|
||||
'id' => $c->id,
|
||||
'name' => $c->name,
|
||||
'type' => Category::TYPE_PLAYLIST,
|
||||
'description' => $c->description,
|
||||
'icon' => $c->image?->path,
|
||||
'icon_url' => $c->image?->url,
|
||||
'order' => $c->order,
|
||||
'is_active' => $c->is_active,
|
||||
'subcategories_count' => $c->subcategories_count,
|
||||
'subcategories' => $request->boolean('with_subcategories') ? $c->subcategories : null,
|
||||
'created_at' => $c->created_at,
|
||||
'updated_at' => $c->updated_at,
|
||||
];
|
||||
});
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
{
|
||||
$data = $request->validate([
|
||||
|
||||
Reference in New Issue
Block a user