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

Update::updateConfig()   A

Complexity

Conditions 5
Paths 12

Size

Total Lines 23
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 5
eloc 16
nc 12
nop 0
dl 0
loc 23
rs 9.4222
c 0
b 0
f 0
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
}