1 | <?php |
||||
2 | |||||
3 | namespace Lenius\LaravelEcommerce\Http\Controllers; |
||||
4 | |||||
5 | use Illuminate\Contracts\Foundation\Application; |
||||
6 | use Illuminate\Contracts\View\Factory; |
||||
7 | use Illuminate\Contracts\View\View; |
||||
8 | use Illuminate\Http\RedirectResponse; |
||||
9 | use Illuminate\Http\Request; |
||||
10 | use Lenius\Basket\Item; |
||||
11 | use Lenius\Basket\ItemInterface; |
||||
12 | use Lenius\LaravelEcommerce\Facades\Cart; |
||||
13 | |||||
14 | class EcommerceController extends Controller |
||||
15 | { |
||||
16 | 4 | public static function routes(): void |
|||
17 | { |
||||
18 | 4 | $router = app()->make('router'); |
|||
19 | |||||
20 | 4 | $router->get('cart/show', [self::class, 'index'])->name('ecommerce.cart.show'); |
|||
21 | 4 | $router->get('cart/debug', [self::class, 'debug'])->name('ecommerce.cart.debug'); |
|||
22 | 4 | $router->get('cart/demo', [self::class, 'demo'])->name('ecommerce.cart.demo'); |
|||
23 | 4 | $router->get('cart/destroy', [self::class, 'destroy'])->name('ecommerce.cart.destroy'); |
|||
24 | 4 | $router->post('cart/update', [self::class, 'update'])->name('ecommerce.cart.update'); |
|||
25 | |||||
26 | 4 | $router->any('cart/{id}/add', [self::class, 'add'])->name('ecommerce.cart.item.add'); |
|||
27 | 4 | $router->get('cart/{id}/dec', [self::class, 'dec'])->name('ecommerce.cart.item.dec'); |
|||
28 | 4 | $router->get('cart/{id}/inc', [self::class, 'inc'])->name('ecommerce.cart.item.inc'); |
|||
29 | 4 | $router->get('cart/{id}/remove', [self::class, 'remove'])->name('ecommerce.cart.item.remove'); |
|||
30 | } |
||||
31 | |||||
32 | public function index(): Factory|View|Application |
||||
33 | { |
||||
34 | return view('ecommerce::cart'); |
||||
35 | } |
||||
36 | |||||
37 | 1 | public function add(Request $request, string $id): RedirectResponse |
|||
0 ignored issues
–
show
The parameter
$request is not used and could be removed.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
This check looks for parameters that have been defined for a function or method, but which are not used in the method body. ![]() |
|||||
38 | { |
||||
39 | 1 | $item = [ |
|||
40 | 1 | 'id' => 1, |
|||
41 | 1 | 'number' => 'zxy', |
|||
42 | 1 | 'name' => 'My product', |
|||
43 | 1 | 'stock' => 'In stock', |
|||
44 | 1 | 'unit' => 'M', |
|||
45 | 1 | 'tax' => 25, |
|||
46 | 1 | 'price' => 100, |
|||
47 | 1 | 'weight' => 100, |
|||
48 | 1 | 'quantity' => 1, |
|||
49 | 1 | 'type' => 'item', |
|||
50 | 1 | 'link' => '', |
|||
51 | 1 | ]; |
|||
52 | |||||
53 | 1 | Cart::insert(new Item($item)); |
|||
54 | |||||
55 | 1 | return redirect()->route('ecommerce.cart.show'); |
|||
56 | } |
||||
57 | |||||
58 | 4 | public function debug(): array |
|||
59 | { |
||||
60 | 4 | return [ |
|||
61 | 4 | 'items' => Cart::contents(), |
|||
62 | 4 | 'sum' => Cart::total(false), |
|||
63 | 4 | 'tax' => Cart::tax(), |
|||
64 | 4 | 'total' => Cart::total(), |
|||
65 | 4 | 'weight' => Cart::weight(), |
|||
66 | 4 | 'total_items' => Cart::totalItems(), |
|||
67 | 4 | ]; |
|||
68 | } |
||||
69 | |||||
70 | 1 | public function destroy(): RedirectResponse |
|||
71 | { |
||||
72 | 1 | Cart::destroy(); |
|||
73 | |||||
74 | 1 | return redirect()->route('ecommerce.cart.show'); |
|||
75 | } |
||||
76 | |||||
77 | public function update(Request $request): RedirectResponse |
||||
78 | { |
||||
79 | $items = $request->input('quantity'); |
||||
80 | |||||
81 | if ($items) { |
||||
82 | /* @var ItemInterface $item */ |
||||
83 | foreach ($items as $itemIdentifier => $quantity) { |
||||
84 | if ($item = Cart::item($itemIdentifier)) { |
||||
85 | if ($quantity > 0) { |
||||
86 | $item->quantity = (int) $quantity; |
||||
87 | } else { |
||||
88 | Cart::remove($itemIdentifier); |
||||
89 | } |
||||
90 | } |
||||
91 | } |
||||
92 | } |
||||
93 | |||||
94 | return redirect()->route('ecommerce.cart.show'); |
||||
95 | } |
||||
96 | |||||
97 | 1 | public function inc(string $itemIdentifier): RedirectResponse |
|||
98 | { |
||||
99 | 1 | Cart::inc($itemIdentifier); |
|||
100 | |||||
101 | 1 | return redirect()->route('ecommerce.cart.show'); |
|||
102 | } |
||||
103 | |||||
104 | 1 | public function dec(string $itemIdentifier): RedirectResponse |
|||
105 | { |
||||
106 | 1 | Cart::dec($itemIdentifier); |
|||
107 | |||||
108 | 1 | return redirect()->route('ecommerce.cart.show'); |
|||
109 | } |
||||
110 | |||||
111 | public function remove(string $itemIdentifier): RedirectResponse |
||||
112 | { |
||||
113 | if (Cart::item($itemIdentifier)) { |
||||
114 | Cart::remove($itemIdentifier); |
||||
115 | } |
||||
116 | |||||
117 | return redirect()->route('ecommerce.cart.show'); |
||||
118 | } |
||||
119 | |||||
120 | 3 | public function demo(): RedirectResponse |
|||
121 | { |
||||
122 | 3 | $item = [ |
|||
123 | 3 | 'id' => 1, |
|||
124 | 3 | 'number' => 'zxy', |
|||
125 | 3 | 'name' => 'My product', |
|||
126 | 3 | 'stock' => 'In stock', |
|||
127 | 3 | 'unit' => 'M', |
|||
128 | 3 | 'tax' => 25, |
|||
129 | 3 | 'price' => 100, |
|||
130 | 3 | 'weight' => 100, |
|||
131 | 3 | 'quantity' => 1, |
|||
132 | 3 | 'type' => 'item', |
|||
133 | 3 | 'link' => '', |
|||
134 | 3 | ]; |
|||
135 | |||||
136 | 3 | Cart::insert(new Item($item)); |
|||
137 | |||||
138 | 3 | return redirect()->route('ecommerce.cart.show'); |
|||
139 | } |
||||
140 | } |
||||
141 |
This check looks for parameters that have been defined for a function or method, but which are not used in the method body.