Skip to content

Commit fc63f0a

Browse files
committed
wip
1 parent 86b8d2a commit fc63f0a

24 files changed

+214
-670
lines changed

routes/actions.php

+7-10
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,19 @@
66
use DuncanMcClean\SimpleCommerce\Http\Controllers\DigitalProducts\DownloadController;
77
use DuncanMcClean\SimpleCommerce\Http\Controllers\Payments\CallbackController;
88
use DuncanMcClean\SimpleCommerce\Http\Controllers\Payments\WebhookController;
9-
use DuncanMcClean\SimpleCommerce\Http\Middleware\EnsureFormParametersArriveIntact;
109
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken;
1110
use Illuminate\Support\Facades\Route;
1211

1312
Route::name('simple-commerce.')->group(function () {
14-
Route::middleware(EnsureFormParametersArriveIntact::class)->group(function () {
15-
Route::get('cart', [CartController::class, 'index'])->name('cart.index');
16-
Route::patch('cart', [CartController::class, 'update'])->name('cart.update');
17-
Route::delete('cart', [CartController::class, 'destroy'])->name('cart.update');
13+
Route::get('cart', [CartController::class, 'index'])->name('cart.index');
14+
Route::patch('cart', [CartController::class, 'update'])->name('cart.update');
15+
Route::delete('cart', [CartController::class, 'destroy'])->name('cart.destroy');
1816

19-
Route::post('cart/line-items', [CartLineItemsController::class, 'store'])->name('cart.line-items.store');
20-
Route::patch('cart/line-items/{lineItem}', [CartLineItemsController::class, 'update'])->name('cart.line-items.update');
21-
Route::delete('cart/line-items/{lineItem}', [CartLineItemsController::class, 'destroy'])->name('cart.line-items.destroy');
17+
Route::post('cart/line-items', [CartLineItemsController::class, 'store'])->name('cart.line-items.store');
18+
Route::patch('cart/line-items/{lineItem}', [CartLineItemsController::class, 'update'])->name('cart.line-items.update');
19+
Route::delete('cart/line-items/{lineItem}', [CartLineItemsController::class, 'destroy'])->name('cart.line-items.destroy');
2220

23-
Route::post('checkout', CheckoutController::class)->name('checkout');
24-
});
21+
Route::post('checkout', CheckoutController::class)->name('checkout');
2522

2623
Route::name('payments.')
2724
->prefix('payments')

src/Http/Controllers/BaseActionController.php

-20
This file was deleted.

src/Http/Controllers/CartController.php

+11-3
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
use Illuminate\Support\Arr;
1010
use Statamic\Exceptions\NotFoundHttpException;
1111

12-
class CartController extends BaseActionController
12+
class CartController
1313
{
1414
use Concerns\HandlesCustomerInformation;
1515

@@ -36,7 +36,11 @@ public function update(UpdateCartRequest $request)
3636

3737
$cart->save();
3838

39-
return new CartResource($cart->fresh());
39+
if ($request->ajax() || $request->wantsJson()) {
40+
return new CartResource($cart->fresh());
41+
}
42+
43+
return $request->_redirect ? redirect($request->_redirect) : back();
4044
}
4145

4246
public function destroy(Request $request)
@@ -45,6 +49,10 @@ public function destroy(Request $request)
4549

4650
Cart::forgetCurrentCart();
4751

48-
return [];
52+
if ($request->ajax() || $request->wantsJson()) {
53+
return [];
54+
}
55+
56+
return $request->_redirect ? redirect($request->_redirect) : back();
4957
}
5058
}

src/Http/Controllers/CartLineItemsController.php

+18-6
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
use Illuminate\Http\Request;
1212
use Statamic\Exceptions\NotFoundHttpException;
1313

14-
class CartLineItemsController extends BaseActionController
14+
class CartLineItemsController
1515
{
1616
use Concerns\HandlesCustomerInformation, Concerns\ValidatesStock, Concerns\HandlePrerequisiteProducts;
1717

@@ -21,7 +21,7 @@ public function store(AddLineItemRequest $request)
2121
$product = Product::find($request->product);
2222

2323
$data = $request->collect()->except([
24-
'_redirect', '_error_redirect', '_request', 'product', 'variant', 'quantity', 'first_name', 'last_name'. 'email', 'customer',
24+
'_redirect', '_error_redirect', 'product', 'variant', 'quantity', 'first_name', 'last_name'. 'email', 'customer',
2525
]);
2626

2727
$this->validateStock($request, $cart);
@@ -63,7 +63,11 @@ public function store(AddLineItemRequest $request)
6363

6464
$cart->save();
6565

66-
return new CartResource($cart->fresh());
66+
if ($request->ajax() || $request->wantsJson()) {
67+
return new CartResource($cart->fresh());
68+
}
69+
70+
return $request->_redirect ? redirect($request->_redirect) : back();
6771
}
6872

6973
public function update(UpdateLineItemRequest $request, string $lineItem)
@@ -74,7 +78,7 @@ public function update(UpdateLineItemRequest $request, string $lineItem)
7478
throw_if(! $lineItem, NotFoundHttpException::class);
7579

7680
$data = $request->collect()->except([
77-
'_redirect', '_error_redirect', '_request', 'product', 'variant', 'quantity', 'first_name', 'last_name'. 'email', 'customer',
81+
'_redirect', '_error_redirect', 'product', 'variant', 'quantity', 'first_name', 'last_name'. 'email', 'customer',
7882
]);
7983

8084
$this->validateStock($request, $cart, $lineItem);
@@ -89,7 +93,11 @@ public function update(UpdateLineItemRequest $request, string $lineItem)
8993

9094
$cart->save();
9195

92-
return new CartResource($cart->fresh());
96+
if ($request->ajax() || $request->wantsJson()) {
97+
return new CartResource($cart->fresh());
98+
}
99+
100+
return $request->_redirect ? redirect($request->_redirect) : back();
93101
}
94102

95103
public function destroy(Request $request, string $lineItem)
@@ -104,6 +112,10 @@ public function destroy(Request $request, string $lineItem)
104112
$cart->lineItems()->remove($lineItem->id());
105113
$cart->save();
106114

107-
return new CartResource($cart->fresh());
115+
if ($request->ajax() || $request->wantsJson()) {
116+
return new CartResource($cart->fresh());
117+
}
118+
119+
return $request->_redirect ? redirect($request->_redirect) : back();
108120
}
109121
}

src/Http/Controllers/CheckoutController.php

+6-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
use DuncanMcClean\SimpleCommerce\Orders\Blueprint;
1212
use Illuminate\Http\Request;
1313

14-
class CheckoutController extends BaseActionController
14+
class CheckoutController
1515
{
1616
use Concerns\HandlesCustomerInformation, Concerns\ValidatesStock;
1717

@@ -42,6 +42,10 @@ public function __invoke(Request $request)
4242

4343
Cart::forgetCurrentCart();
4444

45-
return $this->formSuccess($request, new CartResource(Cart::current()));
45+
if ($request->ajax() || $request->wantsJson()) {
46+
return new CartResource($cart);
47+
}
48+
49+
return $request->_redirect ? redirect($request->_redirect) : back();
4650
}
4751
}

src/Http/Controllers/Payments/CallbackController.php

+1-2
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,13 @@
66
use DuncanMcClean\SimpleCommerce\Exceptions\GatewayDoesNotExist;
77
use DuncanMcClean\SimpleCommerce\Facades\Gateway;
88
use DuncanMcClean\SimpleCommerce\Facades\Order;
9-
use DuncanMcClean\SimpleCommerce\Http\Controllers\BaseActionController;
109
use DuncanMcClean\SimpleCommerce\Orders\Cart\Drivers\CartDriver;
1110
use DuncanMcClean\SimpleCommerce\Orders\OrderStatus;
1211
use DuncanMcClean\SimpleCommerce\Orders\PaymentStatus;
1312
use DuncanMcClean\SimpleCommerce\SimpleCommerce;
1413
use Illuminate\Http\Request;
1514

16-
class CallbackController extends BaseActionController
15+
class CallbackController
1716
{
1817
public function __invoke(Request $request, $gateway)
1918
{

src/Http/Controllers/Payments/WebhookController.php

+1-2
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,10 @@
55
use DuncanMcClean\SimpleCommerce\Events\GatewayWebhookReceived;
66
use DuncanMcClean\SimpleCommerce\Exceptions\GatewayDoesNotExist;
77
use DuncanMcClean\SimpleCommerce\Facades\Gateway;
8-
use DuncanMcClean\SimpleCommerce\Http\Controllers\BaseActionController;
98
use DuncanMcClean\SimpleCommerce\SimpleCommerce;
109
use Illuminate\Http\Request;
1110

12-
class WebhookController extends BaseActionController
11+
class WebhookController
1312
{
1413
public function __invoke(Request $request, $gateway)
1514
{

src/Http/Middleware/EnsureFormParametersArriveIntact.php

-73
This file was deleted.

src/Http/Requests/AcceptsFormRequests.php

-39
This file was deleted.

src/Http/Requests/Cart/AddLineItemRequest.php

-4
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,15 @@
22

33
namespace DuncanMcClean\SimpleCommerce\Http\Requests\Cart;
44

5-
use DuncanMcClean\SimpleCommerce\Facades\Cart;
65
use DuncanMcClean\SimpleCommerce\Facades\Product;
76
use DuncanMcClean\SimpleCommerce\Products\ProductType;
87
use Illuminate\Foundation\Http\FormRequest;
98
use Illuminate\Validation\Rule;
10-
use Statamic\Exceptions\NotFoundHttpException;
119

1210
class AddLineItemRequest extends FormRequest
1311
{
1412
public function authorize()
1513
{
16-
throw_if(! Cart::hasCurrentCart(), NotFoundHttpException::class);
17-
1814
return true;
1915
}
2016

src/Http/Requests/Coupon/DestroyRequest.php

-18
This file was deleted.

src/Http/Requests/Coupon/StoreRequest.php

-21
This file was deleted.

src/Http/Requests/Customer/IndexRequest.php

-18
This file was deleted.

0 commit comments

Comments
 (0)