Completed
Push — middleware-wip-tmp2 ( 51115e...a3478c )
by Romain
02:39
created

StepDispatchingMiddleware::process()   B

Complexity

Conditions 5
Paths 3

Size

Total Lines 28
Code Lines 18

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 28
rs 8.439
cc 5
eloc 18
nc 3
nop 0
1
<?php
2
/*
3
 * 2017 Romain CANON <[email protected]>
4
 *
5
 * This file is part of the TYPO3 FormZ project.
6
 * It is free software; you can redistribute it and/or modify it
7
 * under the terms of the GNU General Public License, either
8
 * version 3 of the License, or any later version.
9
 *
10
 * For the full copyright and license information, see:
11
 * http://www.gnu.org/licenses/gpl-3.0.html
12
 */
13
14
namespace Romm\Formz\Middleware\Item\Step;
15
16
use Romm\Formz\Middleware\Item\DefaultMiddleware;
17
use Romm\Formz\Middleware\State\PresetMiddlewareInterface;
18
19
/**
20
 * @todo
21
 */
22
class StepDispatchingMiddleware extends DefaultMiddleware implements PresetMiddlewareInterface
23
{
24
    /**
25
     * @var int
26
     */
27
    protected $priority = self::PRIORITY_STEP;
28
29
    /**
30
     * @todo
31
     */
32
    protected function process()
33
    {
34
        $formObject = $this->getFormObject();
35
        $result = $formObject->getFormResult();
36
37
        if ($formObject->getConfiguration()->hasSteps()
38
            && $formObject->formWasSubmitted()
39
            && false === $result->hasErrors()
40
        ) {
41
            $currentStep = $this->getCurrentStep();
42
            
43
            if ($currentStep->hasNextStep()) {
44
                $nextStep = $currentStep->getNextStep()->getDefault();
45
46
                $this->redirect()
47
                    ->toPage($nextStep->getPageUid())
48
                    ->toExtension($nextStep->getExtension())
49
                    ->toController($nextStep->getController())
50
                    ->toAction($nextStep->getAction())
51
                    ->withArguments([
52
                        'fz-hash' => [
53
                            $formObject->getName() => $formObject->getFormHash()
54
                        ]
55
                    ])
56
                    ->dispatch();
57
            }
58
        }
59
    }
60
}
61