PHP 8.2.30
Preview: ReviewController.php Size: 2.00 KB
/home/byroehnu/cnggold.com.ng/app/Http/Controllers/Frontend/ReviewController.php

<?php

namespace App\Http\Controllers\Frontend;

use App\Http\Controllers\Controller;
use App\Http\Requests\Frontend\ReviewStoreRequest;
use App\Models\OrderItem;
use App\Models\Review;
use App\Models\Setting;
use App\Repositories\Frontend\ReviewRepository;
use Illuminate\Support\Facades\Auth;
use Inertia\Inertia;

class ReviewController extends Controller
{
    public function index()
    {
        if (Setting::pull("is_enabled_ecommerce") === "0") {
            abort(404);
        }

        $userId = Auth::id();

        $purchasedProducts = OrderItem::query()
            ->select('order_items.product_id', 'order_items.product_name', 'order_items.product_image')
            ->join('orders', 'order_items.order_id', '=', 'orders.id')
            ->where('orders.user_id', $userId)
            ->where('orders.payment_status', '2')
            ->distinct('order_items.product_id')
            ->paginate(10);

        $userReviews = Review::where('user_id', $userId)
            ->select('product_id', 'rating', 'is_approved')
            ->get()
            ->keyBy('product_id');

        $purchasedProducts->getCollection()->transform(function ($product) use ($userReviews) {
            $product->already_reviewed = isset($userReviews[$product->product_id]);

            if ($product->already_reviewed) {
                $product->rating = $userReviews[$product->product_id]->rating;
                $product->is_approved = $userReviews[$product->product_id]->is_approved;
            } else {
                $product->rating = 0;
                $product->is_approved = false;
            }

            return $product;
        });

        return Inertia::render('User/Reviews/Index', [
            'products' => $purchasedProducts,
        ]);
    }

    public function makeReview(ReviewStoreRequest $request, $productId, ReviewRepository $repository)
    {
        $repository->makeReview($request, $productId);

        return redirect()->route('user.review.index')->with('success', 'Review submitted successfully');
    }
}

Directory Contents

Dirs: 0 × Files: 19

Name Size Perms Modified Actions
2.65 KB lrw-r--r-- 2025-06-13 11:19:53
Edit Download
2.26 KB lrw-r--r-- 2025-05-08 11:48:26
Edit Download
3.24 KB lrw-r--r-- 2025-05-15 11:24:11
Edit Download
551 B lrw-r--r-- 2025-04-19 04:22:18
Edit Download
1.72 KB lrw-r--r-- 2025-05-08 11:48:26
Edit Download
6.22 KB lrw-r--r-- 2025-07-19 07:29:54
Edit Download
4.00 KB lrw-r--r-- 2025-05-15 11:24:11
Edit Download
2.63 KB lrw-r--r-- 2025-05-08 11:48:26
Edit Download
3.47 KB lrw-r--r-- 2025-05-08 11:48:26
Edit Download
2.36 KB lrw-r--r-- 2025-07-19 07:29:54
Edit Download
1.63 KB lrw-r--r-- 2025-04-15 10:33:57
Edit Download
2.00 KB lrw-r--r-- 2025-05-08 11:48:26
Edit Download
1.44 KB lrw-r--r-- 2025-04-19 04:22:18
Edit Download
2.13 KB lrw-r--r-- 2025-05-08 11:48:26
Edit Download
408 B lrw-r--r-- 2025-04-19 04:22:18
Edit Download
532 B lrw-r--r-- 2025-04-08 04:12:56
Edit Download
2.09 KB lrw-r--r-- 2025-04-30 16:51:31
Edit Download
1.91 KB lrw-r--r-- 2025-04-13 07:02:31
Edit Download
2.96 KB lrw-r--r-- 2025-05-08 11:48:26
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).