SettingsController   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 40
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Test Coverage

Coverage 0%

Importance

Changes 10
Bugs 0 Features 3
Metric Value
wmc 2
c 10
b 0
f 3
lcom 0
cbo 2
dl 0
loc 40
ccs 0
cts 24
cp 0
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
B indexAction() 0 32 2
1
<?php
2
/**
3
 * AnimeDb package
4
 *
5
 * @package   AnimeDb
6
 * @author    Peter Gribanov <[email protected]>
7
 * @copyright Copyright (c) 2011, Peter Gribanov
8
 * @license   http://opensource.org/licenses/GPL-3.0 GPL v3
9
 */
10
11
namespace AnimeDb\Bundle\MyAnimeListSyncBundle\Controller;
12
13
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
14
use Symfony\Component\HttpFoundation\Request;
15
use Symfony\Component\HttpFoundation\Response;
16
use AnimeDb\Bundle\MyAnimeListSyncBundle\Entity\Setting as SettingEntity;
17
use AnimeDb\Bundle\MyAnimeListSyncBundle\Form\Type\Setting as SettingForm;
18
use AnimeDb\Bundle\AnimeDbBundle\Manipulator\Parameters;
19
use Symfony\Component\Form\Form;
20
21
/**
22
 * Settings
23
 *
24
 * @package AnimeDb\Bundle\MyAnimeListSyncBundle\Controller
25
 * @author  Peter Gribanov <[email protected]>
26
 */
27
class SettingsController extends Controller
28
{
29
    /**
30
     * @param Request $request
31
     *
32
     * @return Response
33
     */
34
    public function indexAction(Request $request)
35
    {
36
        $entity = (new SettingEntity())
37
            ->setUserName($this->container->getParameter('anime_db.my_anime_list_sync.user.name'))
38
            ->setUserPassword($this->container->getParameter('anime_db.my_anime_list_sync.user.password'))
39
            ->setSyncInsert($this->container->getParameter('anime_db.my_anime_list_sync.sync.insert'))
40
            ->setSyncRemove($this->container->getParameter('anime_db.my_anime_list_sync.sync.remove'))
41
            ->setSyncUpdate($this->container->getParameter('anime_db.my_anime_list_sync.sync.update'));
42
43
        /* @var $form Form */
44
        $form = $this->createForm(new SettingForm(), $entity)->handleRequest($request);
45
46
        if ($form->isValid()) {
47
            // update params
48
            /* @var $manipulator Parameters */
49
            $manipulator = $this->get('anime_db.manipulator.parameters');
50
            $manipulator->setParameters([
51
                'anime_db.my_anime_list_sync.user.name' => $entity->getUserName(),
52
                'anime_db.my_anime_list_sync.user.password' => $entity->getUserPassword(),
53
                'anime_db.my_anime_list_sync.sync.insert' => $entity->getSyncInsert(),
54
                'anime_db.my_anime_list_sync.sync.remove' => $entity->getSyncRemove(),
55
                'anime_db.my_anime_list_sync.sync.update' => $entity->getSyncUpdate()
56
            ]);
57
58
            // clear cache
59
            $this->get('anime_db.cache_clearer')->clear();
60
        }
61
62
        return $this->render('AnimeDbMyAnimeListSyncBundle:Settings:index.html.twig', [
63
            'form'  => $form->createView()
64
        ]);
65
    }
66
}
67