AdminSettingsController   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 34
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 4
eloc 25
c 1
b 0
f 0
dl 0
loc 34
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A index() 0 32 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
            'new_course_email_template' => $settingsManager->get('new_course_email_template'),
20
            'new_course_email_title' => $settingsManager->get('new_course_email_title'),
21
            'password_reset_email_template' => $settingsManager->get('password_reset_email_template'),
22
            'password_reset_email_title' => $settingsManager->get('password_reset_email_title'),
23
            'email_from_address' => $settingsManager->get('email_from_address'),
24
            'email_from_name' => $settingsManager->get('email_from_name'),
25
        ]);
26
27
        if (Request::METHOD_POST === $request->getMethod()) {
28
            $form->handleRequest($request);
29
            if ($form->isSubmitted() && $form->isValid()) {
30
                $data = $form->getData();
31
                $settingsManager->set('new_user_email_template', $data['new_user_email_template']);
32
                $settingsManager->set('new_user_email_title', $data['new_user_email_title']);
33
                $settingsManager->set('new_course_email_template', $data['new_course_email_template']);
34
                $settingsManager->set('new_course_email_title', $data['new_course_email_title']);
35
                $settingsManager->set('password_reset_email_template', $data['password_reset_email_template']);
36
                $settingsManager->set('password_reset_email_title', $data['password_reset_email_title']);
37
                $settingsManager->set('email_from_address', $data['email_from_address']);
38
                $settingsManager->set('email_from_name', $data['email_from_name']);
39
40
                return new RedirectResponse($this->generateUrl('admin_settings'));
41
            }
42
        }
43
44
        return $this->render('settings/index.html.twig', [
45
            'form' => $form->createView(),
46
        ]);
47
    }
48
}
49