Passed
Pull Request — dev (#47)
by Stone
02:52
created

Update   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 33
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 18
dl 0
loc 33
rs 10
c 0
b 0
f 0
wmc 5

1 Method

Rating   Name   Duplication   Size   Complexity  
A updateConfig() 0 23 5
1
<?php
2
3
namespace App\Controllers\Admin;
4
5
use App\Models\ConfigModel;
6
use Core\AdminController;
7
use Core\Traits\StringFunctions;
8
9
10
class Update extends AdminController
11
{
12
13
    use StringFunctions;
14
15
    /**
16
     * gets the information in post and sets the corresponding site config details
17
     * this is pure php with no ajax
18
     * @throws \Exception
19
     */
20
    public function updateConfig()
21
    {
22
        $this->onlyAdmin();
23
        if (!$this->container->getRequest()->isPost()) {
24
            $this->alertBox->setAlert('Only post messages allowed', 'error');
25
            $this->container->getResponse()->redirect('admin');
26
        }
27
        $configModel = new ConfigModel($this->container);
28
        $posts = $this->container->getRequest()->getDataFull();
29
30
        $success = true;
31
        foreach ($posts as $key => $config) {
32
            $configId = $this->removeFromBeginning($key, 'config-');
33
            if (!$configModel->updateConfig($configId, $config)) {
34
                $success = false;
35
            }
36
        }
37
        if ($success) {
38
            $this->alertBox->setAlert('Configuration updates successfully');
39
        } else {
40
            $this->alertBox->setAlert('error in configuration update', 'error');
41
        }
42
        $this->container->getResponse()->redirect('admin/config');
43
    }
44
}