HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: //home/xedaptot/iphim.naniguide.com/app/Http/Controllers/UserWatchlistController.php
<?php

namespace App\Http\Controllers;

use Common\Core\BaseController;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;

class UserWatchlistController extends BaseController
{
    public function __construct()
    {
        $this->middleware('auth');
    }

    public function __invoke()
    {
        $list = Auth::user()
            ->watchlist()
            ->firstOrFail();

        $items = DB::table('channelables')
            ->where('channel_id', $list->id)
            ->pluck('channelable_type', 'channelable_id')
            ->map(
                fn($modelType, $itemId) => [
                    'id' => $itemId,
                    'type' => $modelType,
                ],
            )
            ->groupBy('type')
            ->map(
                fn($group) => $group->mapWithKeys(
                    fn($item) => [
                        $item['id'] => true,
                    ],
                ),
            );

        return $this->success([
            'watchlist' => [
                'id' => $list->id,
                'items' => $items,
            ],
        ]);
    }
}