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

AdminSettingsController::index()   A

Complexity

Conditions 4
Paths 3

Size

Total Lines 24
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 1
Metric Value
eloc 16
c 2
b 0
f 1
dl 0
loc 24
rs 9.7333
cc 4
nc 3
nop 2
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