ldc-boutique-cnc-sable/app/Http/Controllers/Fo/Ajax/BasketController.php
2026-10-27 09:58:12 +01:00

60 lines
1.4 KiB
PHP

<?php
declare(strict_types=1);
namespace App\Http\Controllers\Fo\Ajax;
use App\Http\Controllers\Controller;
use App\Http\Requests\Basket\AddBasketRequest;
use App\Http\Requests\Basket\RemoveBasketRequest;
use App\Http\Resources\Fo\Ajax\BasketResource;
use Domain\Services\BasketService;
use Illuminate\Http\JsonResponse;
class BasketController extends Controller
{
public function __construct(
private readonly BasketService $basketService
) {
}
public function get(): BasketResource
{
return new BasketResource($this->basketService->getBasket());
}
public function add(AddBasketRequest $request): JsonResponse
{
$this->basketService->add(
$request->getProductId(),
$request->integer('qty')
);
return response()->json();
}
public function remove(RemoveBasketRequest $request): JsonResponse
{
$qty = $request->integer('qty');
if ($qty >= 1) {
$this->basketService->remove(
$request->getProductId(),
$qty
);
} else {
$this->basketService->removeLine(
$request->getProductId()
);
}
return response()->json();
}
public function empty(): JsonResponse
{
$this->basketService->empty();
return response()->json();
}
}