IndexController::indexAction()   B
last analyzed

Complexity

Conditions 5
Paths 6

Size

Total Lines 26
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Importance

Changes 4
Bugs 4 Features 0
Metric Value
c 4
b 4
f 0
dl 0
loc 26
rs 8.439
cc 5
eloc 16
nc 6
nop 0
1
<?php
2
3
/**
4
 * Created by PhpStorm.
5
 * User: mockie
6
 * Date: 9/4/14
7
 * Time: 12:28 PM
8
 * Website : http://mockie.net
9
 * Email : [email protected].
10
 */
11
namespace LearnZF2Ajax\Controller;
12
13
use LearnZF2Ajax\Model\LoginInputFilter;
14
use Zend\Form\FormInterface;
15
use Zend\Mvc\Controller\AbstractActionController;
16
use Zend\View\Model\JsonModel;
17
18
class IndexController extends AbstractActionController
19
{
20
    protected $acceptCriteria = [
21
        'Zend\View\Model\JsonModel' => ['application/json'],
22
        'Zend\View\Model\ViewModel' => ['text/html'],
23
    ];
24
25
    /**
26
     * @var FormInterface
27
     */
28
    protected $loginForm;
29
30
    public function __construct(FormInterface $loginForm)
31
    {
32
        $this->loginForm = $loginForm;
33
    }
34
35
    public function indexAction()
36
    {
37
        $result = ['result' => false, 'message' => ''];
38
        $viewModel = $this->acceptableviewmodelselector($this->acceptCriteria);
39
40
        $request = $this->getRequest();
41
        if ($request->isPost()) {
42
            $login = new LoginInputFilter();
43
            $this->loginForm->setInputFilter($login->getInputFilter());
44
            $this->loginForm->setData($request->getPost());
45
46
            if ($this->loginForm->isValid()) {
47
                $result = ['result' => true, 'message' => 'Ajax request success'];
48
            } else {
49
                $result = ['result' => false, 'message' => $this->loginForm->getMessages()];
50
            }
51
        }
52
53
        if (!$viewModel instanceof JsonModel && $request->isXmlHttpRequest()) {
54
            $viewModel = new JsonModel();
55
        }
56
57
        $viewModel->setVariables(['form' => $this->loginForm, 'data' => $result]);
58
59
        return $viewModel;
60
    }
61
}
62