first upload all files
This commit is contained in:
79
Modules/Cart/Http/Controllers/CartItemController.php
Normal file
79
Modules/Cart/Http/Controllers/CartItemController.php
Normal file
@@ -0,0 +1,79 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Cart\Http\Controllers;
|
||||
|
||||
use Modules\Cart\Facades\Cart;
|
||||
use Illuminate\Pipeline\Pipeline;
|
||||
use Illuminate\Routing\Controller;
|
||||
use Modules\Coupon\Checkers\MaximumSpend;
|
||||
use Modules\Coupon\Checkers\MinimumSpend;
|
||||
use Modules\Cart\Http\Requests\StoreCartItemRequest;
|
||||
use Modules\Coupon\Exceptions\MaximumSpendException;
|
||||
use Modules\Coupon\Exceptions\MinimumSpendException;
|
||||
use Modules\Cart\Http\Middleware\CheckProductIsInStock;
|
||||
|
||||
class CartItemController extends Controller
|
||||
{
|
||||
private $checkers = [
|
||||
MinimumSpend::class,
|
||||
MaximumSpend::class,
|
||||
];
|
||||
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware(CheckProductIsInStock::class)->only(['store', 'update']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Modules\Cart\Http\Requests\StoreCartItemRequest $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(StoreCartItemRequest $request)
|
||||
{
|
||||
Cart::store($request->product_id, $request->qty, $request->options ?? []);
|
||||
|
||||
return Cart::instance();
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param mixed $cartItemId
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update($cartItemId)
|
||||
{
|
||||
Cart::updateQuantity($cartItemId, request('qty'));
|
||||
|
||||
try {
|
||||
resolve(Pipeline::class)
|
||||
->send(Cart::coupon())
|
||||
->through($this->checkers)
|
||||
->thenReturn();
|
||||
} catch (MinimumSpendException | MaximumSpendException $e) {
|
||||
Cart::removeCoupon();
|
||||
}
|
||||
|
||||
return Cart::instance();
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param string $cartItemId
|
||||
* @return \Illuminhtate\Http\Response
|
||||
*/
|
||||
public function destroy($cartItemId)
|
||||
{
|
||||
Cart::remove($cartItemId);
|
||||
|
||||
return Cart::instance();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user