Passed
Pull Request — master (#26)
by Paweł
03:43
created

AdminSettingsController   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 1
Metric Value
wmc 4
eloc 17
c 2
b 0
f 1
dl 0
loc 26
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A index() 0 24 4
1
<?php
2
3
namespace App\Controller;
4
5
use App\Form\AdminSettingsType;
6
use SWP\Bundle\SettingsBundle\Manager\SettingsManagerInterface;
7
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
8
use Symfony\Component\HttpFoundation\RedirectResponse;
9
use Symfony\Component\HttpFoundation\Request;
10
use Symfony\Component\HttpFoundation\Response;
11
12
class AdminSettingsController extends AbstractController
13
{
14
    public function index(Request $request, SettingsManagerInterface $settingsManager): Response
15
    {
16
        $form = $this->createForm(AdminSettingsType::class, [
17
            'new_user_email_template' => $settingsManager->get('new_user_email_template'),
18
            'new_user_email_title' => $settingsManager->get('new_user_email_title'),
19
            'email_from_address' => $settingsManager->get('email_from_address'),
20
            'email_from_name' => $settingsManager->get('email_from_name'),
21
        ]);
22
23
        if (Request::METHOD_POST === $request->getMethod()) {
24
            $form->handleRequest($request);
25
            if ($form->isSubmitted() && $form->isValid()) {
26
                $data = $form->getData();
27
                $settingsManager->set('new_user_email_template', $data['new_user_email_template']);
28
                $settingsManager->set('new_user_email_title', $data['new_user_email_title']);
29
                $settingsManager->set('email_from_address', $data['email_from_address']);
30
                $settingsManager->set('email_from_name', $data['email_from_name']);
31
32
                return new RedirectResponse($this->generateUrl('admin_settings'));
33
            }
34
        }
35
36
        return $this->render('settings/index.html.twig', [
37
            'form' => $form->createView(),
38
        ]);
39
    }
40
}
41