37 lines
987 B
PHP
37 lines
987 B
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Http\Resources\FavouriteProductResource;
|
|
use App\Models\FavouriteProduct;
|
|
use App\Models\Product;
|
|
use App\Models\User;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Log;
|
|
|
|
class FavouriteProductController extends Controller
|
|
{
|
|
public function index()
|
|
{
|
|
return FavouriteProductResource::collection(FavouriteProduct::all());
|
|
}
|
|
|
|
public function toggle(Request $request, Product $product)
|
|
{
|
|
/**
|
|
* @var User $user
|
|
*/
|
|
$user = $request->user();
|
|
|
|
$changes = $user->favoriteProducts()->toggle($product);
|
|
Log::info('hi again');
|
|
// If changes has any item, that means a product has been attached.
|
|
$isFavorite = count($changes['attached']) > 0;
|
|
|
|
return response()->json([
|
|
'message' => $isFavorite ? 'Product added to favorites' : 'Product removed from favorites',
|
|
'isFavorite' => $isFavorite,
|
|
]);
|
|
}
|
|
}
|