HEX
Server: nginx/1.28.1
System: Linux 10-41-63-61 6.8.0-31-generic #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 00:40:06 UTC 2024 x86_64
User: www (1001)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/wwwroot//www.shooperm.com/app/Http/Controllers/Frontend/CompareController.php
<?php

namespace App\Http\Controllers\Frontend;

use App\Http\Controllers\Controller;
use App\Services\CompareService;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Session;
use Modules\UserActivityLog\Traits\LogActivity;

class CompareController extends Controller
{

    protected $compareService;

    public function __construct(CompareService $compareService)
    {
        $this->compareService = $compareService;
        $this->middleware('maintenance_mode');
    }

    public function index(){

        if(auth()->check()){
            $products = $this->compareService->getProduct(auth()->user()->id);
        }else{
            $products = $this->compareService->getProduct(null);
        }
        return view(theme('pages.compare'),compact('products'));
    }

    public function store(Request $request){

        if(auth()->check()){
            $compare = $this->compareService->store($request->except('_token'), auth()->user()->id);
        }else{
            $compare = $this->compareService->store($request->except('_token'), null);
        }
        LogActivity::successLog('compare store successful.');
        $totalItems = $this->countCompare();
        return response()->json([
            'msg' => 'done',
            'totalItems' => $totalItems
        ]);
    }

    private function countCompare(){
        $totalItems = 0;
        if(auth()->check()){
            $totalItems = $this->compareService->totalCompareItem(auth()->user()->id);
        }else{
            $totalItems = $this->compareService->totalCompareItem(null);
        }
        return $totalItems;
    }

    public function removeItem(Request $request){


        if(auth()->check()){
            $this->compareService->removeItem($request->product_sku_id, auth()->user()->id);
            $products = $this->compareService->getProduct(auth()->user()->id);
        }else{
            $this->compareService->removeItem($request->product_sku_id, null);
            $products = $this->compareService->getProduct(null);
        }

        LogActivity::successLog('item remove successful.');
        $totalItems = $this->countCompare();
        return response()->json([
            'page' => (string)view(theme('partials._compare_list'), compact('products')),
            'totalItems' => $totalItems
        ]);

    }

    public function reset(Request $request){

        if(auth()->check()){
            $this->compareService->reset(auth()->user()->id);
            $products = $this->compareService->getProduct(auth()->user()->id);
        }else{
            $this->compareService->reset(null);
            $products = $this->compareService->getProduct(null);
        }
        LogActivity::successLog('compare reset successful.');
        
        $totalItems = $this->countCompare();
        return response()->json([
            'page' => (string)view(theme('partials._compare_list'), compact('products')),
            'totalItems' => $totalItems
        ]);
    }


}