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/Modules/Review/Http/Controllers/ApproveSellerReviewController.php
<?php

namespace Modules\Review\Http\Controllers;

use Illuminate\Contracts\Support\Renderable;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use Modules\Review\Services\SellerReviewService;
use Modules\UserActivityLog\Traits\LogActivity;
use Yajra\DataTables\Facades\DataTables;

class ApproveSellerReviewController extends Controller
{
    protected $sellerReviewService;
    public function __construct(SellerReviewService $sellerReviewService)
    {
        $this->middleware('maintenance_mode');
        $this->sellerReviewService = $sellerReviewService;
    }

    public function index()
    {
        return view('review::seller_review.index');
    }

    public function getallData(){
        $review = $this->sellerReviewService->getAll();
        return DataTables::of($review)
        ->addIndexColumn()
        ->addColumn('seller', function($review){
            return isModuleActive('MultiVendor')?$review->seller->first_name:app('general_setting')->site_title;
        })
        ->addColumn('rating', function($review){
            return view('review::seller_review.components._rating_td',compact('review'));
        })
        ->addColumn('customer_feedback', function($review){
            return view('review::seller_review.components._customer_feedback_td',compact('review'));
        })
        ->addColumn('status', function($review){
            return view('review::seller_review.components._status_td',compact('review'));
        })
        ->addColumn('customer_time', function($review){
            return view('review::seller_review.components._customer_time_td',compact('review'));
        })
        ->addColumn('approve', function($review){
            return view('review::seller_review.components._all_approve_td',compact('review'));
        })
        ->rawColumns(['rating','customer_feedback','customer_time','approve'])
        ->toJson();
    }

    public function getPendingData(){
        $review = $this->sellerReviewService->getPendingAll();
        return DataTables::of($review)
        ->addIndexColumn()
        ->addColumn('seller', function($review){
            return isModuleActive('MultiVendor')?$review->seller->first_name:app('general_setting')->site_title;
        })
        ->addColumn('rating', function($review){
            return view('review::seller_review.components._rating_td',compact('review'));
        })
        ->addColumn('customer_feedback', function($review){
            return view('review::seller_review.components._customer_feedback_td',compact('review'));
        })
        ->addColumn('customer_time', function($review){
            return view('review::seller_review.components._customer_time_td',compact('review'));
        })
        ->addColumn('approve', function($review){
            return view('review::seller_review.components._pending_approve_td',compact('review'));
        })
        ->rawColumns(['rating','customer_feedback','customer_time','approve'])
        ->toJson();
    }

    public function getDeclinedData(){
        $review = $this->sellerReviewService->getDeclinedAll();
        return DataTables::of($review)
        ->addIndexColumn()
        ->addColumn('seller', function($review){
            return isModuleActive('MultiVendor')?$review->seller->first_name:app('general_setting')->site_title;
        })
        ->addColumn('rating', function($review){
            return view('review::seller_review.components._rating_td',compact('review'));
        })
        ->addColumn('customer_feedback', function($review){
            return view('review::seller_review.components._customer_feedback_td',compact('review'));
        })
        ->addColumn('customer_time', function($review){
            return view('review::seller_review.components._customer_time_td',compact('review'));
        })
        ->addColumn('approve', function($review){
            return view('review::seller_review.components._declined_approve_td',compact('review'));
        })
        ->rawColumns(['rating','customer_feedback','customer_time','approve'])
        ->toJson();
    }

    public function approve(Request $request){
        $this->sellerReviewService->approve($request->id);
        LogActivity::successLog('review approve successful.');
        return $this->reloadWithData();
    }
    public function approveAll(Request $request){
        $this->sellerReviewService->approveAll();

        LogActivity::successLog('review ll approve successful.');
        return $this->reloadWithData();
    }
    public function destroy(Request $request){

        $this->sellerReviewService->deleteById($request->except('_token'));

        LogActivity::successLog('review delete successful.');
        return $this->reloadWithData();
    }

    private function reloadWithData(){
        return response()->json([
            'allTableData' =>  (string)view('review::seller_review.components.all_list'),
            'pendingTableData' =>  (string)view('review::seller_review.components.pending_list'),
            'declinedTableData' =>  (string)view('review::seller_review.components.declined_list')
        ]);
    }
}