Current File : /home/masbinta/public_html/core/app/Http/Controllers/Front/ProductReviewController.php
<?php

namespace App\Http\Controllers\Front;

use App\Models\Product;
use Illuminate\Http\Request;
use App\Models\ProductReview;
use App\Http\Controllers\Controller;
use App\Models\Order;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Session;

class ProductReviewController extends Controller
{
    public function reviewsubmit(Request $request)
    {


       
        if($request->review || $request->comment){
            if(ProductReview::where('user_id',Auth::user()->id)->where('product_id',$request->product_id)->exists()){
                $exists =    ProductReview::where('user_id',Auth::user()->id)->where('product_id',$request->product_id)->first();
               
                if($request->review){
                    $exists->update([
                        'review' => $request->review,
                    ]);
                    $avgreview = ProductReview::where('product_id',$request->product_id)->avg('review');
                    Product::find($request->product_id)->update([
                        'rating' => $avgreview
                    ]);
                }if($request->comment){
                    $exists->update([
                        'comment' => $request->comment,
                    ]);
                }
                Session::flash('success', 'Review update successfully');
                return back();
            }else{
                $input = $request->all();
                $input['user_id'] = Auth::user()->id;
                $data = new ProductReview;
                $data->create($input);
                $avgreview = ProductReview::where('product_id',$request->product_id)->avg('review');
                Product::find($request->product_id)->update([
                    'rating' => $avgreview
                ]);
                Session::flash('success', 'Review submit successfully');
                return back();
            } 
        }else{
            Session::flash('error', 'Review submit not succesfull');
            return back();
        }
   
    }

    public function authcheck()
    {
        if(!Auth::user()){
            Session::put('link',url()->current());
            return redirect(route('user.login'));
        }
    }
}