Passed
Pull Request — master (#58)
by Stone
04:29 queued 02:04
created

Config::update()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 27
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 3
eloc 16
nc 3
nop 0
dl 0
loc 27
rs 9.7333
c 0
b 0
f 0
1
<?php
2
3
namespace App\Controllers\Ajax;
4
5
use App\Models\ConfigModel;
6
use Core\AjaxController;
7
use Core\JsonException;
8
use Core\Traits\StringFunctions;
9
10
class Config extends AjaxController
11
{
12
    use StringFunctions;
13
14
    /**
15
     * Update the site configuration via Ajax post
16
     * @throws JsonException
17
     */
18
    public function update()
19
    {
20
        //security checks
21
        $this->onlyAdmin();
22
        $this->onlyPost();
23
        //preparing our return results
24
        $result = array();
25
        $result['successId'] = [];
26
        $result['errorId'] = [];
27
        $result['success'] = true;
28
        $configUpdateJson = $this->container->getRequest()->getData('config-update');
29
        $configUpdate = json_decode($configUpdateJson);
30
31
        $configModel = new ConfigModel($this->container);
32
33
        foreach ($configUpdate as $update) {
34
35
36
            if (!$configModel->updateConfig($update->name, $update->value)) {
37
                $result['success'] = false;
38
                $result['errorId'][] = $update->name;
39
            } else {
40
                $result['successId'][] = $update->name;
41
            }
42
        }
43
44
        echo json_encode($result);
45
    }
46
}