ControllerHelper::redirectToPostedUrl()   B
last analyzed

Complexity

Conditions 5
Paths 7

Size

Total Lines 25
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 30

Importance

Changes 0
Metric Value
dl 0
loc 25
ccs 0
cts 21
cp 0
rs 8.439
c 0
b 0
f 0
cc 5
eloc 16
nc 7
nop 3
crap 30
1
<?php
2
3
/**
4
 * @copyright  Copyright (c) Flipbox Digital Limited
5
 * @license    https://github.com/flipbox/spark/blob/master/LICENSE
6
 * @link       https://github.com/flipbox/spark
7
 */
8
9
namespace flipbox\spark\helpers;
10
11
use Craft;
12
use craft\web\Controller as CraftWebController;
13
use yii\web\Controller as WebController;
14
use yii\web\Response;
15
16
/**
17
 * @author Flipbox Factory <[email protected]>
18
 * @since 1.0.0
19
 */
20
class ControllerHelper
21
{
22
    /**
23
     * @param WebController $controller
24
     * @param null $object
25
     * @param string|null $default
26
     * @return \yii\web\Response|\craft\web\Response
27
     */
28
    public static function redirectToPostedUrl(
29
        WebController $controller,
30
        $object = null,
31
        string $default = null
32
    ): Response {
33
        if ($controller instanceof CraftWebController) {
34
            return $controller->redirectToPostedUrl($object, $default);
35
        }
36
37
        $url = Craft::$app->getRequest()->getValidatedBodyParam('redirect');
38
39
        if ($url === null) {
40
            if ($default !== null) {
41
                $url = $default;
42
            } else {
43
                $url = Craft::$app->getRequest()->getPathInfo();
44
            }
45
        }
46
47
        if ($object) {
48
            $url = Craft::$app->getView()->renderObjectTemplate($url, $object);
49
        }
50
51
        return $controller->redirect($url);
52
    }
53
}
54