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/ChannelItemController.php
<?php

namespace App\Http\Controllers;

use App\Models\Channel;
use Common\Core\BaseController;
use Illuminate\Support\Str;

class ChannelItemController extends BaseController
{
    public function add(Channel $channel)
    {
        $this->authorize('update', $channel);

        $data = $this->validate(request(), [
            'itemId' => 'required|integer',
            'itemType' => 'required|string',
        ]);

        $relationName = Str::plural($data['itemType']);

        $channel->$relationName()->sync(
            [
                $data['itemId'] => [
                    'order' => $channel->$relationName()->count() + 1,
                ],
            ],
            false,
        );
        $channel->touch();

        return $this->success(['channel' => $channel]);
    }

    public function remove(Channel $channel)
    {
        $this->authorize('update', $channel);

        $data = $this->validate(request(), [
            'itemId' => 'required|integer',
            'itemType' => 'required|string',
        ]);

        $relationName = Str::plural($data['itemType']);
        $channel->$relationName()->detach($data['itemId']);
        $channel->touch();

        return $this->success(['channel' => $channel]);
    }
}