CartController::addAction()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 2
c 0
b 0
f 0
dl 0
loc 5
rs 10
cc 1
nc 1
nop 2
1
<?php
2
3
/**
4
 * This file is part of the Spryker Commerce OS.
5
 * For full license information, please view the LICENSE file that was distributed with this source code.
6
 */
7
8
declare(strict_types = 1);
9
10
namespace Pyz\Yves\CartPage\Controller;
11
12
use SprykerShop\Yves\CartPage\Controller\CartController as SprykerCartController;
13
use SprykerShop\Yves\CartPage\Plugin\Router\CartPageRouteProviderPlugin;
14
use Symfony\Component\HttpFoundation\RedirectResponse;
15
use Symfony\Component\HttpFoundation\Request;
16
17
/**
18
 * @method \SprykerShop\Yves\CartPage\CartPageFactory getFactory()
19
 */
20
class CartController extends SprykerCartController
21
{
22
    /**
23
     * @var string
24
     */
25
    public const REQUEST_HEADER_REFERER = 'referer';
26
27
    /**
28
     * @param \Symfony\Component\HttpFoundation\Request $request
29
     * @param string $sku
30
     *
31
     * @return \Symfony\Component\HttpFoundation\RedirectResponse
32
     */
33
    public function addAction(Request $request, $sku): RedirectResponse // phpcs:ignore
34
    {
35
        parent::addAction($request, $sku);
36
37
        return $this->redirect($request);
38
    }
39
40
    /**
41
     * @param \Symfony\Component\HttpFoundation\Request $request
42
     * @param string $sku
43
     *
44
     * @return \Symfony\Component\HttpFoundation\RedirectResponse
45
     */
46
    public function removeAction(Request $request, $sku): RedirectResponse // phpcs:ignore
47
    {
48
        parent::removeAction($request, $sku);
49
50
        return $this->redirect($request);
51
    }
52
53
    /**
54
     * @param \Symfony\Component\HttpFoundation\Request $request
55
     *
56
     * @return \Symfony\Component\HttpFoundation\RedirectResponse
57
     */
58
    protected function redirect(Request $request): RedirectResponse
59
    {
60
        if ($request->headers->has(static::REQUEST_HEADER_REFERER)) {
61
            return $this->redirectResponseExternal($request->headers->get(static::REQUEST_HEADER_REFERER));
62
        }
63
64
        return $this->redirectResponseInternal(CartPageRouteProviderPlugin::ROUTE_NAME_CART);
65
    }
66
}
67